Class: MR::Factory::RecordFactory

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

Defined Under Namespace

Classes: Config

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(record_class, &block) ⇒ RecordFactory

Returns a new instance of RecordFactory.



13
14
15
16
17
# File 'lib/mr/factory/record_factory.rb', line 13

def initialize(record_class, &block)
  @record_class = record_class
  @config       = Config.new(record_class)
  self.instance_eval(&block) if block
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



11
12
13
# File 'lib/mr/factory/record_factory.rb', line 11

def config
  @config
end

#record_classObject (readonly)

Returns the value of attribute record_class.



11
12
13
# File 'lib/mr/factory/record_factory.rb', line 11

def record_class
  @record_class
end

Instance Method Details

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



19
20
21
22
23
# File 'lib/mr/factory/record_factory.rb', line 19

def record(args = nil)
  @record_class.new.tap do |record|
    self.config.apply_args(record, args || {})
  end
end

#saved_dependencies_stack(args = nil) ⇒ Object Also known as: saved_deps_stack



50
51
52
# File 'lib/mr/factory/record_factory.rb', line 50

def saved_dependencies_stack(args = nil)
  self.stack(args).tap(&:create_deps)
end

#saved_dependencies_stack_record(args = nil) ⇒ Object Also known as: saved_deps_stack_record



55
56
57
# File 'lib/mr/factory/record_factory.rb', line 55

def saved_dependencies_stack_record(args = nil)
  self.saved_deps_stack(args).record
end

#saved_record(args = nil) ⇒ Object Also known as: saved_instance



26
27
28
29
30
# File 'lib/mr/factory/record_factory.rb', line 26

def saved_record(args = nil)
  record = self.record(args).tap(&:save!)
  record.reset_save_called if record.kind_of?(MR::FakeRecord)
  record
end

#saved_stack(args = nil) ⇒ Object



42
43
44
# File 'lib/mr/factory/record_factory.rb', line 42

def saved_stack(args = nil)
  self.stack(args).tap(&:create)
end

#saved_stack_record(args = nil) ⇒ Object



46
47
48
# File 'lib/mr/factory/record_factory.rb', line 46

def saved_stack_record(args = nil)
  self.saved_stack(args).record
end

#stack(args = nil) ⇒ Object Also known as: instance_stack



33
34
35
# File 'lib/mr/factory/record_factory.rb', line 33

def stack(args = nil)
  MR::Factory::RecordStack.for_record(self.record(args), self.config)
end

#stack_record(args = nil) ⇒ Object



38
39
40
# File 'lib/mr/factory/record_factory.rb', line 38

def stack_record(args = nil)
  self.stack(args).record
end