fabrication 2.5.4 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/fabrication/generator/active_record.rb +4 -0
- data/lib/fabrication/generator/base.rb +12 -6
- data/lib/fabrication/generator/data_mapper.rb +5 -0
- data/lib/fabrication/generator/keymaker.rb +4 -0
- data/lib/fabrication/generator/mongoid.rb +4 -0
- data/lib/fabrication/generator/sequel.rb +4 -0
- data/lib/fabrication/schematic/evaluator.rb +26 -0
- data/lib/fabrication/version.rb +1 -1
- metadata +2 -2
@@ -12,23 +12,27 @@ class Fabrication::Generator::Base
|
|
12
12
|
else
|
13
13
|
build_instance
|
14
14
|
end
|
15
|
-
|
16
15
|
execute_callbacks(callbacks[:after_build])
|
17
|
-
|
16
|
+
execute_callbacks(callbacks[:before_validation])
|
17
|
+
validate_instance
|
18
|
+
execute_callbacks(callbacks[:after_validation])
|
18
19
|
__instance
|
19
20
|
end
|
20
21
|
|
21
|
-
def execute_callbacks(callbacks)
|
22
|
-
callbacks.each { |callback| __instance.instance_exec(__instance, __transient_attributes, &callback) } if callbacks
|
23
|
-
end
|
24
|
-
|
25
22
|
def create(attributes=[], callbacks=[])
|
26
23
|
build(attributes, callbacks)
|
24
|
+
execute_callbacks(callbacks[:before_save])
|
25
|
+
execute_callbacks(callbacks[:before_create])
|
27
26
|
persist
|
28
27
|
execute_callbacks(callbacks[:after_create])
|
28
|
+
execute_callbacks(callbacks[:after_save])
|
29
29
|
__instance
|
30
30
|
end
|
31
31
|
|
32
|
+
def execute_callbacks(callbacks)
|
33
|
+
callbacks.each { |callback| __instance.instance_exec(__instance, __transient_attributes, &callback) } if callbacks
|
34
|
+
end
|
35
|
+
|
32
36
|
def to_hash(attributes=[], callbacks=[])
|
33
37
|
process_attributes(attributes)
|
34
38
|
(Fabrication::Config.active_support? ? HashWithIndifferentAccess.new : {}).tap do |hash|
|
@@ -71,6 +75,8 @@ class Fabrication::Generator::Base
|
|
71
75
|
__attributes[method_name] || super
|
72
76
|
end
|
73
77
|
|
78
|
+
def validate_instance; end
|
79
|
+
|
74
80
|
protected
|
75
81
|
|
76
82
|
attr_accessor :__klass, :__instance, :__transient_attributes
|
@@ -8,9 +8,14 @@ class Fabrication::Generator::DataMapper < Fabrication::Generator::Base
|
|
8
8
|
self.__instance = __klass.new(__attributes)
|
9
9
|
end
|
10
10
|
|
11
|
+
def validate_instance
|
12
|
+
__instance.valid?
|
13
|
+
end
|
14
|
+
|
11
15
|
protected
|
12
16
|
|
13
17
|
def persist
|
14
18
|
__instance.save
|
15
19
|
end
|
20
|
+
|
16
21
|
end
|
@@ -13,15 +13,41 @@ class Fabrication::Schematic::Evaluator < BasicObject
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def after_build(&block)
|
16
|
+
::Kernel.puts "DEPRECATION WARNING: after_build callbacks will be removed in fabrication 2.7"
|
16
17
|
@_definition.callbacks[:after_build] ||= []
|
17
18
|
@_definition.callbacks[:after_build] << block
|
18
19
|
end
|
19
20
|
|
21
|
+
def before_validation(&block)
|
22
|
+
@_definition.callbacks[:before_validation] ||= []
|
23
|
+
@_definition.callbacks[:before_validation] << block
|
24
|
+
end
|
25
|
+
|
26
|
+
def after_validation(&block)
|
27
|
+
@_definition.callbacks[:after_validation] ||= []
|
28
|
+
@_definition.callbacks[:after_validation] << block
|
29
|
+
end
|
30
|
+
|
31
|
+
def before_save(&block)
|
32
|
+
@_definition.callbacks[:before_save] ||= []
|
33
|
+
@_definition.callbacks[:before_save] << block
|
34
|
+
end
|
35
|
+
|
36
|
+
def before_create(&block)
|
37
|
+
@_definition.callbacks[:before_create] ||= []
|
38
|
+
@_definition.callbacks[:before_create] << block
|
39
|
+
end
|
40
|
+
|
20
41
|
def after_create(&block)
|
21
42
|
@_definition.callbacks[:after_create] ||= []
|
22
43
|
@_definition.callbacks[:after_create] << block
|
23
44
|
end
|
24
45
|
|
46
|
+
def after_save(&block)
|
47
|
+
@_definition.callbacks[:after_save] ||= []
|
48
|
+
@_definition.callbacks[:after_save] << block
|
49
|
+
end
|
50
|
+
|
25
51
|
def on_init(&block)
|
26
52
|
@_definition.callbacks[:on_init] = block
|
27
53
|
end
|
data/lib/fabrication/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fabrication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|