Class: ObjectGraph::ObjectGraph
- Inherits:
-
Object
- Object
- ObjectGraph::ObjectGraph
- Defined in:
- backend/app/model/ASModel_object_graph.rb
Instance Method Summary (collapse)
-
- (Object) add_objects(model, *ids)
-
- (Boolean) changed_since?(version)
-
- (Object) each(&block)
-
- (Object) ids_for(model)
-
- (ObjectGraph) initialize(hash = {})
constructor
A new instance of ObjectGraph.
-
- (Object) models
-
- (Object) version
Constructor Details
- (ObjectGraph) initialize(hash = {})
Returns a new instance of ObjectGraph
68 69 70 71 72 |
# File 'backend/app/model/ASModel_object_graph.rb', line 68 def initialize(hash = {}) @graph = Hash[hash.map {|model, ids| [model, Set.new(ids)] }] end |
Instance Method Details
- (Object) add_objects(model, *ids)
74 75 76 77 78 79 80 81 |
# File 'backend/app/model/ASModel_object_graph.rb', line 74 def add_objects(model, *ids) flat_ids = ids.flatten return if flat_ids.empty? @graph[model] ||= Set.new @graph[model].merge(flat_ids) self end |
- (Boolean) changed_since?(version)
87 88 89 |
# File 'backend/app/model/ASModel_object_graph.rb', line 87 def changed_since?(version) self.version != version end |
- (Object) each(&block)
95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'backend/app/model/ASModel_object_graph.rb', line 95 def each(&block) if block_given? @graph.keys.each do |model| block.call(model, @graph[model].to_a) end else Enumerator.new do |y| @graph.map {|model, ids| y << [model, ids.to_a] } end end end |
- (Object) ids_for(model)
91 92 93 |
# File 'backend/app/model/ASModel_object_graph.rb', line 91 def ids_for(model) @graph[model] ? @graph[model].to_a : [] end |
- (Object) models
109 110 111 |
# File 'backend/app/model/ASModel_object_graph.rb', line 109 def models @graph.keys end |
- (Object) version
83 84 85 |
# File 'backend/app/model/ASModel_object_graph.rb', line 83 def version @graph.hash end |