attribution 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/attribution.gemspec +1 -1
- data/lib/attribution/version.rb +1 -1
- data/lib/attribution.rb +2 -2
- data/test/attribution_test.rb +19 -0
- metadata +3 -4
data/attribution.gemspec
CHANGED
data/lib/attribution/version.rb
CHANGED
data/lib/attribution.rb
CHANGED
@@ -209,7 +209,7 @@ module Attribution
|
|
209
209
|
|
210
210
|
# TODO: Support a more generic version of lazy-loading
|
211
211
|
begin
|
212
|
-
association_class = association_name.to_s.
|
212
|
+
association_class = association_name.to_s.classify.constantize
|
213
213
|
rescue NameError => ex
|
214
214
|
raise ArgumentError.new("Association #{association_name} in #{self.class} is invalid because #{association_name.to_s.classify} does not exist")
|
215
215
|
end
|
@@ -232,7 +232,7 @@ module Attribution
|
|
232
232
|
define_method("#{association_name}=") do |arg|
|
233
233
|
# TODO: put this in method
|
234
234
|
begin
|
235
|
-
association_class = association_name.to_s.
|
235
|
+
association_class = association_name.to_s.classify.constantize
|
236
236
|
rescue NameError => ex
|
237
237
|
raise ArgumentError.new("Association #{association_name} in #{self.class} is invalid because #{association_name.to_s.classify} does not exist")
|
238
238
|
end
|
data/test/attribution_test.rb
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
#TODO: support using a different class name than the association name
|
4
|
+
|
5
|
+
class Address
|
6
|
+
include Attribution
|
7
|
+
|
8
|
+
integer :id
|
9
|
+
string :street
|
10
|
+
string :city
|
11
|
+
string :state
|
12
|
+
string :zip
|
13
|
+
|
14
|
+
belongs_to :author
|
15
|
+
end
|
16
|
+
|
4
17
|
class Author
|
5
18
|
include Attribution
|
6
19
|
|
@@ -8,6 +21,7 @@ class Author
|
|
8
21
|
string :first_name
|
9
22
|
string :last_name
|
10
23
|
|
24
|
+
has_many :addresses
|
11
25
|
has_many :books
|
12
26
|
end
|
13
27
|
|
@@ -220,4 +234,9 @@ class AttributionTest < Test::Unit::TestCase
|
|
220
234
|
assert_equal nil, JSON.parse(book.to_json)['foo']
|
221
235
|
assert JSON.parse(book.to_json).key?('title'), 'to_json sohuld include attributes that have no value assigned to them'
|
222
236
|
end
|
237
|
+
|
238
|
+
def test_has_many_association_name
|
239
|
+
author = Author.new(addresses: [{id: 1}])
|
240
|
+
assert_equal [1], author.addresses.map(&:id)
|
241
|
+
end
|
223
242
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attribution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
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-05-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
104
|
rubyforge_project:
|
105
|
-
rubygems_version: 1.8.
|
105
|
+
rubygems_version: 1.8.25
|
106
106
|
signing_key:
|
107
107
|
specification_version: 3
|
108
108
|
summary: Add attributes to Ruby objects
|
@@ -110,4 +110,3 @@ test_files:
|
|
110
110
|
- test/attribution_model_test.rb
|
111
111
|
- test/attribution_test.rb
|
112
112
|
- test/test_helper.rb
|
113
|
-
has_rdoc:
|