activerecord-define_nils 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjM4MjhjMmRiODg1MzViMmU0ZmJhZTNkNDM0Njk1OTdkN2U2YzY3Mg==
5
+ data.tar.gz: !binary |-
6
+ MTY1OGFjNzhjNjUwNGY5Yzk5ZGJiMmE2NGM0ZDVkZGM2MGRjNGVkNw==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTVmMTk4MTFmY2NhMzk1OWRkMjY4OWI3ZDFmNmNhODRiOTI5Mjk1OGE2YzYx
10
+ NmUzYTgzZDM1YjcxOWJhOTE1MTM0MDYzZjRiZWEyZmU3OWJlY2RhNzAxZjVj
11
+ NGNhNmExMjZjZmIyODljNzRkZmI5YjJmZjUxNGI4YzIyOTE1NTU=
12
+ data.tar.gz: !binary |-
13
+ MWMyNThlNzMxOWE5NWViYmU4OWJhYjBlZTNkNTQ1OTFkNmU5MWEyMGE2NDIy
14
+ OGRlNTQxNjMwODE3OTlmZDRiZjllZDNkMmM2YTM2MDg0MmYzODcwNDhiZGEw
15
+ ZjE3NDJmZDIwYTlmMGE3MjgwYjFkMjE0MjJjMGM2MDI0MmNmNGY=
data/README.md CHANGED
@@ -47,6 +47,6 @@ Be sure to place `define_nils` above your `belongs_to` associations in the model
47
47
 
48
48
  ### License
49
49
 
50
- Copyright (c) 2012 Gary S. Weaver, released under the [MIT license][lic].
50
+ Copyright (c) 2013 Gary S. Weaver, released under the [MIT license][lic].
51
51
 
52
52
  [lic]: http://github.com/garysweaver/activerecord-define_nils/blob/master/LICENSE
@@ -23,7 +23,7 @@ module ActiveRecordDefineNils
23
23
  class_eval "def #{attr_name}; value = super(); self.nil_definitions && self.nil_definitions[#{attr_sym.inspect}] && self.nil_definitions[#{attr_sym.inspect}].include?(value) ? nil : value; end"
24
24
  end
25
25
  else
26
- raise ArgumentError.new("define_nils must at least supply :as and :for, but got #{options.inspect}")
26
+ raise ArgumentError.new("define_nils takes a hash with :as and :for keys, but got #{options.inspect}")
27
27
  end
28
28
  end
29
29
 
@@ -34,7 +34,7 @@ module ActiveRecordDefineNils
34
34
  self.nil_definitions.keys.each do |attr_sym|
35
35
  self.reflections.collect {|association_name, reflection|
36
36
  if reflection.macro == :belongs_to && reflection.foreign_key.to_sym == attr_sym
37
- class_eval "def #{association_name}; return nil if send(#{attr_sym.inspect}).nil?; super(); end"
37
+ class_eval "def #{association_name}; return nil if __send__(#{attr_sym.inspect}).nil?; super(); end"
38
38
  end
39
39
  }
40
40
  end
@@ -44,45 +44,39 @@ module ActiveRecordDefineNils
44
44
 
45
45
  def read_attribute(attr_name)
46
46
  value = super(attr_name)
47
- defined?(@define_nils_no_read_mod) ? value : (self.nil_definitions && self.nil_definitions[attr_name.to_sym] && self.nil_definitions[attr_name.to_sym].include?(value) ? nil : value)
47
+ (@define_nils_no_read_mod ||= false) ? value : (self.nil_definitions && self.nil_definitions[attr_name.to_sym] && self.nil_definitions[attr_name.to_sym].include?(value) ? nil : value)
48
48
  end
49
49
 
50
50
  private
51
51
 
52
52
  def create
53
- instance_variable_set(:@define_nils_no_read_mod, true)
54
- begin
55
- if self.nil_saved_as
56
- self.nil_saved_as.each do |column, translated_nil|
57
- if respond_to?(column) && respond_to?("#{column}=") && self.send(column).nil?
58
- write_attribute(column.to_s, translated_nil)
59
- end
53
+ @define_nils_no_read_mod = true
54
+ if self.nil_saved_as
55
+ self.nil_saved_as.each do |column, translated_nil|
56
+ if respond_to?(column) && respond_to?("#{column}=") && self.__send__(column).nil?
57
+ write_attribute(column.to_s, translated_nil)
60
58
  end
61
59
  end
62
-
63
- result = super
64
- ensure
65
- remove_instance_variable(:@define_nils_no_read_mod)
66
60
  end
67
- result
61
+
62
+ super
63
+ ensure
64
+ @define_nils_no_read_mod = false
68
65
  end
69
66
 
70
67
  def update(*args)
71
- instance_variable_set(:@define_nils_no_read_mod, true)
72
- begin
73
- if self.nil_saved_as
74
- self.nil_saved_as.each do |column, translated_nil|
75
- if respond_to?(column) && respond_to?("#{column}=") && self.send(column).nil?
76
- write_attribute(column.to_s, translated_nil)
77
- end
68
+ @define_nils_no_read_mod = true
69
+ if self.nil_saved_as
70
+ self.nil_saved_as.each do |column, translated_nil|
71
+ if respond_to?(column) && respond_to?("#{column}=") && self.__send__(column).nil?
72
+ write_attribute(column.to_s, translated_nil)
78
73
  end
79
74
  end
80
-
81
- result = super
82
- ensure
83
- remove_instance_variable(:@define_nils_no_read_mod)
84
75
  end
85
- result
76
+
77
+ super
78
+ ensure
79
+ @define_nils_no_read_mod = false
86
80
  end
87
81
  end
88
82
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordDefineNils
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-define_nils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gary S. Weaver
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-28 00:00:00.000000000 Z
11
+ date: 2013-04-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -44,26 +41,25 @@ files:
44
41
  homepage: https://github.com/garysweaver/activerecord-define_nils
45
42
  licenses:
46
43
  - MIT
44
+ metadata: {}
47
45
  post_install_message:
48
46
  rdoc_options: []
49
47
  require_paths:
50
48
  - lib
51
49
  required_ruby_version: !ruby/object:Gem::Requirement
52
- none: false
53
50
  requirements:
54
51
  - - ! '>='
55
52
  - !ruby/object:Gem::Version
56
53
  version: '0'
57
54
  required_rubygems_version: !ruby/object:Gem::Requirement
58
- none: false
59
55
  requirements:
60
56
  - - ! '>='
61
57
  - !ruby/object:Gem::Version
62
58
  version: '0'
63
59
  requirements: []
64
60
  rubyforge_project:
65
- rubygems_version: 1.8.24
61
+ rubygems_version: 2.0.3
66
62
  signing_key:
67
- specification_version: 3
63
+ specification_version: 4
68
64
  summary: Define nils for ActiveRecord 3.x/4.x.
69
65
  test_files: []