class Apiphobic::Resource::Model
Constants
- DEFAULT_PROCESSORS
Attributes
id[RW]
parameters[RW]
processors[R]
resource[RW]
Public Class Methods
new(resource:, id:, parameters:, **options)
click to toggle source
# File lib/apiphobic/resource/model.rb, line 30 def initialize(resource:, id:, parameters:, **options) self.id = id self.resource = resource self.parameters = parameters.dup self.processors = options.fetch(:processors, self.class::DEFAULT_PROCESSORS) end
Public Instance Methods
meta()
click to toggle source
# File lib/apiphobic/resource/model.rb, line 49 def meta @meta ||= processors.inject({}) do |metadata, processor| metadata.merge processor.meta(processed, parameters) end end
processed()
click to toggle source
# File lib/apiphobic/resource/model.rb, line 37 def processed @processed ||= begin processed = processors.inject(resource) do |processed_resource, processor| processor.processed(processed_resource, parameters) end return processed if instance_of?(::Apiphobic::Resource::Collection) processed.find_by(id: id) || processed.new end end
processors=(other)
click to toggle source
# File lib/apiphobic/resource/model.rb, line 55 def processors=(other) @processors = other.map do |processor| Object.const_get("::Apiphobic::Resource::Processors::#{processor.capitalize}") end end