class Drillbit::Resource::Model

Constants

DEFAULT_PROCESSORS

Attributes

parameters[RW]
processors[R]
resource[RW]

Public Class Methods

new(resource:, parameters:, **options) click to toggle source
# File lib/drillbit/resource/model.rb, line 17
def initialize(resource:, parameters:, **options)
  self.resource   = resource
  self.parameters = parameters.dup
  self.processors = options.fetch(:processors, DEFAULT_PROCESSORS)
end

Public Instance Methods

meta() click to toggle source
# File lib/drillbit/resource/model.rb, line 29
def meta
  @meta ||= processors.inject({}) do |metadata, processor|
    metadata.merge processor.meta(processed, parameters)
  end
end
processed() click to toggle source
# File lib/drillbit/resource/model.rb, line 23
def processed
  @processed ||= processors.inject(resource) do |processed_resource, processor|
    processor.processed(processed_resource, parameters)
  end
end
processors=(other) click to toggle source
# File lib/drillbit/resource/model.rb, line 35
def processors=(other)
  @processors = other.map do |processor|
    Object.const_get "::Drillbit::Resource::Processors::#{processor.capitalize}"
  end
end