fabrication 2.5.3 → 2.5.4

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.
@@ -19,7 +19,7 @@ class Fabrication::Generator::Base
19
19
  end
20
20
 
21
21
  def execute_callbacks(callbacks)
22
- callbacks.each { |callback| __instance.instance_eval(&callback) } if callbacks
22
+ callbacks.each { |callback| __instance.instance_exec(__instance, __transient_attributes, &callback) } if callbacks
23
23
  end
24
24
 
25
25
  def create(attributes=[], callbacks=[])
@@ -73,7 +73,7 @@ class Fabrication::Generator::Base
73
73
 
74
74
  protected
75
75
 
76
- attr_accessor :__klass, :__instance
76
+ attr_accessor :__klass, :__instance, :__transient_attributes
77
77
 
78
78
  def __attributes
79
79
  @__attributes ||= {}
@@ -86,15 +86,12 @@ class Fabrication::Generator::Base
86
86
  def post_initialize; end
87
87
 
88
88
  def process_attributes(attributes)
89
+ self.__transient_attributes = Hash.new
89
90
  attributes.each do |attribute|
90
- __transient_fields << attribute.name if attribute.transient?
91
91
  __attributes[attribute.name] = attribute.processed_value(__attributes)
92
+ __transient_attributes[attribute.name] = __attributes[attribute.name] if attribute.transient?
92
93
  end
93
- __attributes.reject! { |k| __transient_fields.include?(k) }
94
- end
95
-
96
- def __transient_fields
97
- @__transient_fields ||= []
94
+ __attributes.reject! { |k| __transient_attributes.keys.include?(k) }
98
95
  end
99
96
 
100
97
  end
@@ -5,7 +5,11 @@ class Fabrication::Generator::Mongoid < Fabrication::Generator::Base
5
5
  end
6
6
 
7
7
  def build_instance
8
- self.__instance = __klass.new(__attributes, without_protection: true)
8
+ if Gem::Version.new(Mongoid::VERSION) >= Gem::Version.new('2.3.0')
9
+ self.__instance = __klass.new(__attributes, without_protection: true)
10
+ else
11
+ self.__instance = __klass.new(__attributes)
12
+ end
9
13
  end
10
14
 
11
15
  end
@@ -1,3 +1,3 @@
1
1
  module Fabrication
2
- VERSION = '2.5.3'
2
+ VERSION = '2.5.4'
3
3
  end
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.5.3
4
+ version: 2.5.4
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-01-04 00:00:00.000000000 Z
12
+ date: 2013-01-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord