Module: Modelizer
- Includes:
- Assertions, Helpers
- Defined in:
- lib/modelizer.rb,
lib/modelizer/assertions.rb,
lib/modelizer/validations.rb
Defined Under Namespace
Modules: Assertions, Helpers, Validations
Classes: FactoryContext, FixtureContext
Constant Summary
collapse
- VERSION =
"5.0.2"
Class Attribute Summary collapse
Class Method Summary
collapse
Methods included from Assertions
#assert_invalid
Methods included from Helpers
#build, #create, #use
Class Attribute Details
.glob ⇒ Object
Returns the value of attribute glob.
69
70
71
|
# File 'lib/modelizer.rb', line 69
def glob
@glob
end
|
Class Method Details
.cache ⇒ Object
74
75
76
|
# File 'lib/modelizer.rb', line 74
def self.cache
@cache ||= {}
end
|
.factories ⇒ Object
82
83
84
|
# File 'lib/modelizer.rb', line 82
def self.factories
@factories ||= {}
end
|
.factory(name, model, &initializer) ⇒ Object
78
79
80
|
# File 'lib/modelizer.rb', line 78
def self.factory name, model, &initializer
factories[name] = [model, initializer]
end
|
.fixture(name, model, &initializer) ⇒ Object
86
87
88
|
# File 'lib/modelizer.rb', line 86
def self.fixture name, model, &initializer
fixtures[name] = [model, initializer]
end
|
.fixtures ⇒ Object
90
91
92
|
# File 'lib/modelizer.rb', line 90
def self.fixtures
@fixtures ||= {}
end
|
.identify(name) ⇒ Object
94
95
96
|
# File 'lib/modelizer.rb', line 94
def self.identify name
Zlib.crc32(name.to_s) % (2 ** 30 - 1)
end
|
.ids ⇒ Object
98
99
100
|
# File 'lib/modelizer.rb', line 98
def self.ids
@ids ||= {}
end
|
.included(klass) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/modelizer.rb', line 41
def self.included klass
Dir[glob].sort.each { |f| instance_eval File.read(f), f, 1 }
instances = {}
context = FixtureContext.new instances
fixtures.each do |name, value|
instances[name] = value.first.new
end
instances.each do |name, obj|
_, *initializers = fixtures[name]
initializers.each { |i| context.instance_exec obj, &i }
obj.id = identify name
ids[name] = [obj.class, obj.id]
end
ActiveRecord::Base.transaction do
instances.each do |name, obj|
unless obj.save
raise "'#{name}' fixture can't be saved: #{obj.errors.full_messages}"
end
end
end
end
|