Module: UniverseCompiler::Entity::Marshalling
- Included in:
- SuperStack::MergePolicies::InheritanceMergePolicy, Base
- Defined in:
- lib/universe_compiler/entity/marshalling.rb
Instance Method Summary collapse
- #dereferenced_fields(fields_to_dereference = fields) ⇒ Object
- #fully_resolved? ⇒ Boolean
- #resolve_fields_references(from_fields = fields) ⇒ Object
- #resolve_fields_references!(from_fields = fields) ⇒ Object
- #traverse_fields(fields_to_process = fields) ⇒ Object
Instance Method Details
#dereferenced_fields(fields_to_dereference = fields) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/universe_compiler/entity/marshalling.rb', line 42 def dereferenced_fields(fields_to_dereference = fields) deep_map(fields_to_dereference) do |leaf| case leaf when UniverseCompiler::Entity::Base leaf.to_reference when Symbol, Numeric, NilClass, TrueClass, FalseClass leaf else leaf.clone end end end |
#fully_resolved? ⇒ Boolean
7 8 9 |
# File 'lib/universe_compiler/entity/marshalling.rb', line 7 def fully_resolved? fully_resolved || false end |
#resolve_fields_references(from_fields = fields) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/universe_compiler/entity/marshalling.rb', line 18 def resolve_fields_references(from_fields = fields) self.fully_resolved = true deep_map from_fields do |leaf| case leaf when UniverseCompiler::Entity::Reference res = leaf.to_entity raise_error: false if res res else self.fully_resolved = false leaf end else leaf end end end |
#resolve_fields_references!(from_fields = fields) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/universe_compiler/entity/marshalling.rb', line 11 def resolve_fields_references!(from_fields = fields) UniverseCompiler.logger.debug "Starting resolution for '#{to_composite_key}'." @fields = resolve_fields_references from_fields UniverseCompiler.logger.debug "Completed resolution for '#{to_composite_key}'." self end |
#traverse_fields(fields_to_process = fields) ⇒ Object
36 37 38 39 40 |
# File 'lib/universe_compiler/entity/marshalling.rb', line 36 def traverse_fields(fields_to_process = fields) deep_traverse(fields_to_process) do |leaf| yield leaf end end |