Module: MR::Factory

Extended by:
Assert::Factory, Factory
Included in:
Factory
Defined in:
lib/mr/factory.rb,
lib/mr/factory/config.rb,
lib/mr/factory/model_stack.rb,
lib/mr/factory/record_stack.rb,
lib/mr/factory/model_factory.rb,
lib/mr/factory/record_factory.rb,
lib/mr/factory/read_model_factory.rb

Defined Under Namespace

Modules: Config, WithAssociationsConfig Classes: ModelFactory, ModelStack, NoRecordClassError, PrimaryKeyProvider, ReadModelFactory, RecordFactory, RecordStack

Constant Summary collapse

NoAssociationError =
Class.new(ArgumentError)

Instance Method Summary collapse

Instance Method Details

#decimal(max = nil) ⇒ Object



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

def decimal(max = nil)
  self.type_cast(Assert::Factory::Random.float(max), :decimal)
end

#new(object_class, *args, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/mr/factory.rb', line 14

def new(object_class, *args, &block)
  if object_class < MR::Model
    ModelFactory.new(object_class, *args, &block)
  elsif object_class < MR::ReadModelStruct
    ReadModelFactory.new(object_class, *args, &block)
  elsif object_class < MR::Record
    RecordFactory.new(object_class, *args, &block)
  else
    raise ArgumentError, "takes a MR::Model, MR::Record, or MR::ReadModel"
  end
end

#primary_key(identifier = nil) ⇒ Object



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

def primary_key(identifier = nil)
  identifier    ||= 'MR::Factory'
  @primary_keys ||= {}
  @primary_keys[identifier.to_s] ||= PrimaryKeyProvider.new
  self.type_cast(@primary_keys[identifier.to_s].next, :primary_key)
end

#timestampObject



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

def timestamp
  self.datetime
end

#type_converterObject



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

def type_converter
  @type_converter ||= MR::TypeConverter.new
end