Module: ReactorSDK::ResourceMetadata
- Defined in:
- lib/reactor_sdk/resource_metadata.rb
Class Method Summary collapse
- .add_delegate_descriptor(payload, resource) ⇒ Object
- .add_name(payload, resource) ⇒ Object
- .add_position_fields(payload, resource) ⇒ Object
- .add_revision_id(payload, resource) ⇒ Object
- .base_payload(resource, kind:, attributes:, launch_raw:) ⇒ Object
- .decorate!(payload, resource, include_position: true, include_revision: true) ⇒ Object
- .delegate_descriptor(resource) ⇒ Object
- .revision_id_for(resource) ⇒ Object
- .summary(resource) ⇒ Object
Class Method Details
.add_delegate_descriptor(payload, resource) ⇒ Object
57 58 59 60 61 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 57 def add_delegate_descriptor(payload, resource) return unless resource.respond_to?(:delegate_descriptor_id) payload['delegate_descriptor_id'] = resource.delegate_descriptor_id end |
.add_name(payload, resource) ⇒ Object
53 54 55 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 53 def add_name(payload, resource) payload['name'] = resource.name if resource.respond_to?(:name) end |
.add_position_fields(payload, resource) ⇒ Object
63 64 65 66 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 63 def add_position_fields(payload, resource) payload['order'] = resource.order if resource.respond_to?(:order) && !resource.order.nil? payload['rule_order'] = resource.rule_order if resource.respond_to?(:rule_order) && !resource.rule_order.nil? end |
.add_revision_id(payload, resource) ⇒ Object
68 69 70 71 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 68 def add_revision_id(payload, resource) revision_id = revision_id_for(resource) payload['revision_id'] = revision_id if revision_id end |
.base_payload(resource, kind:, attributes:, launch_raw:) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 17 def base_payload(resource, kind:, attributes:, launch_raw:) decorate!( { 'kind' => kind, 'id' => resource.id, 'attributes' => attributes, 'launch_raw' => launch_raw }, resource, include_position: false, include_revision: false ) end |
.decorate!(payload, resource, include_position: true, include_revision: true) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 44 def decorate!(payload, resource, include_position: true, include_revision: true) add_name(payload, resource) add_delegate_descriptor(payload, resource) add_position_fields(payload, resource) if include_position add_revision_id(payload, resource) if include_revision payload end |
.delegate_descriptor(resource) ⇒ Object
31 32 33 34 35 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 31 def delegate_descriptor(resource) return '' unless resource.respond_to?(:delegate_descriptor_id) resource.delegate_descriptor_id.to_s end |
.revision_id_for(resource) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 37 def revision_id_for(resource) return resource.revision_id if resource.respond_to?(:revision_id) return resource.relationship_id('latest_revision') if resource.respond_to?(:relationship_id) nil end |
.summary(resource) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/reactor_sdk/resource_metadata.rb', line 7 def summary(resource) decorate!( { 'id' => resource.id, 'type' => resource.type }, resource ) end |