class MR::Factory::ReadModelFactory

Attributes

config[R]
read_model_class[R]

Public Class Methods

new(read_model_class, &block) click to toggle source
# File lib/mr/factory/read_model_factory.rb, line 12
def initialize(read_model_class, &block)
  unless read_model_class < MR::ReadModelStruct
    raise ArgumentError, "takes a read model or read model struct"
  end
  @read_model_class = read_model_class
  @config           = Config.new(read_model_class)
  self.instance_eval(&block) if block
end

Public Instance Methods

instance(args = nil)
Alias for: read_model
read_model(args = nil) click to toggle source
# File lib/mr/factory/read_model_factory.rb, line 27
def read_model(args = nil)
  @read_model_class.new(self.read_model_data(args))
end
Also aliased as: instance
read_model_data(args = nil) click to toggle source
# File lib/mr/factory/read_model_factory.rb, line 21
def read_model_data(args = nil)
  Data.new.tap do |read_model_data|
    self.config.apply_args(read_model_data, args || {})
  end
end

Private Instance Methods

default_args(&block) click to toggle source
# File lib/mr/factory/read_model_factory.rb, line 34
def default_args(&block)
  self.config.set_default_args(&block)
end