Class: MR::Factory::ReadModelFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/mr/factory/read_model_factory.rb

Defined Under Namespace

Classes: Config, Data

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(read_model_class, &block) ⇒ ReadModelFactory

Returns a new instance of ReadModelFactory.



12
13
14
15
16
17
18
19
# 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

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/mr/factory/read_model_factory.rb', line 10

def config
  @config
end

#read_model_classObject (readonly)

Returns the value of attribute read_model_class.



10
11
12
# File 'lib/mr/factory/read_model_factory.rb', line 10

def read_model_class
  @read_model_class
end

Instance Method Details

#read_model(args = nil) ⇒ Object Also known as: instance



27
28
29
# 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

#read_model_data(args = nil) ⇒ Object



21
22
23
24
25
# 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