natural_born_slugger 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa3d8f6bde6e73addc8dcb29b903855f00bae182
4
- data.tar.gz: df5d9d64af1f1e0b3b92e9cefee6ac7e36cc9c04
3
+ metadata.gz: 572abcdee0ca8c5067940e7b16abe64ab37128f7
4
+ data.tar.gz: e28d18631f7f0437332ce4f506e69151480429e8
5
5
  SHA512:
6
- metadata.gz: 293914ca0eecd85da467b4f166d5039978650335198245e9fe102d18973663aca910139220c22c82aca6d56a1e947ea946be9545cdea4628d0bbcc54a155c145
7
- data.tar.gz: 71d58b7bcaddfed8a2fbad2eb6ab8eb71e60b7e0636ac1725adb44ad989deb45c39ac767c897ac2f5fe8b06e4435ff4f27801e4abe8218cceccac58854d7041b
6
+ metadata.gz: d912737313cb81f51379a808eb7758eaeff6ddfb86d49153907a1865e07ef6037dbc446d58807ad2c1947ee89be2eca1b82e4dabc7e51c77290789076445d4f4
7
+ data.tar.gz: 870b9fc29b4698d00ab1c2fb64d7678eba222b2e5595e33c44c5e2fc07045a7d2803df0ed9b5c8bdb19217b9b4bd7e6e3461bf62b4931bd01fca145a5ab00291
@@ -88,24 +88,15 @@ module NaturalBornSlugger
88
88
  klass.composite_attributes ||= {}
89
89
  klass.composite_attributes[@name] = self
90
90
 
91
- # Define instance attribute getter
91
+ # Define instance attribute getter: calls setter
92
92
  klass.send :define_method, @name do
93
- name = __method__
94
- self.send "update_#{name}"
95
- end
96
-
97
- # Define instance attribute setter: ignores assignment and just triggers an update
98
- klass.send :define_method, "#{@name}=" do |value|
99
- name = __method__.to_s.gsub '=', ''
100
- self.send "update_#{name}"
101
- end
102
-
103
- # Update instance attribute
104
- klass.send :define_method, "update_#{@name}" do
105
- name = __method__.to_s.gsub 'update_', ''
93
+ name = __method__.to_s
106
94
  composer = self.class.composite_attributes[name]
107
95
  old_value = self.instance_variable_get("@#{name}")
108
96
  new_value = composer.evaluate(self)
97
+ if self.respond_to? "#{name}=".to_sym
98
+ new_value = self.send "#{name}=".to_sym, new_value
99
+ end
109
100
  self.instance_variable_set("@#{name}", new_value)
110
101
  composer.callback(self, old_value, new_value)
111
102
  new_value
@@ -1,3 +1,3 @@
1
1
  module NaturalBornSlugger
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -25,5 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rspec", "~> 2.13"
26
26
  spec.add_development_dependency "pry"
27
27
 
28
- spec.add_dependency 'activesupport', '~> 3.1'
28
+ spec.add_dependency 'activesupport', '>= 3.1'
29
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: natural_born_slugger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Keele
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-22 00:00:00.000000000 Z
11
+ date: 2013-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,14 +98,14 @@ dependencies:
98
98
  name: activesupport
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '3.1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '3.1'
111
111
  description: A gem for managing composed attributes, especially natural keys and url