representable 1.1.3 → 1.1.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.
- data/CHANGES.textile +4 -0
- data/lib/representable.rb +5 -1
- data/lib/representable/version.rb +1 -1
- data/test/representable_test.rb +22 -0
- metadata +16 -16
data/CHANGES.textile
CHANGED
data/lib/representable.rb
CHANGED
@@ -34,7 +34,7 @@ module Representable
|
|
34
34
|
extend ClassMethods::Accessors
|
35
35
|
|
36
36
|
def self.included(base)
|
37
|
-
base.representable_attrs.push(*representable_attrs) # "inherit".
|
37
|
+
base.representable_attrs.push(*representable_attrs.clone) # "inherit".
|
38
38
|
end
|
39
39
|
|
40
40
|
# Copies the representable_attrs to the extended object.
|
@@ -175,6 +175,10 @@ private
|
|
175
175
|
wrap
|
176
176
|
end
|
177
177
|
|
178
|
+
def clone
|
179
|
+
self.class.new(collect { |d| d.clone })
|
180
|
+
end
|
181
|
+
|
178
182
|
private
|
179
183
|
def infer_name_for(name)
|
180
184
|
name.to_s.split('::').last.
|
data/test/representable_test.rb
CHANGED
@@ -78,6 +78,21 @@ class RepresentableTest < MiniTest::Spec
|
|
78
78
|
# vd.name = "Van Halen"
|
79
79
|
# assert_equal "{\"name\":\"Van Halen\"}", vd.to_json
|
80
80
|
#end
|
81
|
+
|
82
|
+
it "doesn't share inherited properties between family members" do
|
83
|
+
parent = Module.new do
|
84
|
+
include Representable
|
85
|
+
property :id
|
86
|
+
end
|
87
|
+
|
88
|
+
child = Module.new do
|
89
|
+
include Representable
|
90
|
+
include parent
|
91
|
+
end
|
92
|
+
|
93
|
+
assert parent.representable_attrs.first != child.representable_attrs.first, "definitions shouldn't be identical"
|
94
|
+
end
|
95
|
+
|
81
96
|
end
|
82
97
|
end
|
83
98
|
|
@@ -284,6 +299,13 @@ class RepresentableTest < MiniTest::Spec
|
|
284
299
|
assert_equal "Descendents", @config.wrap_for(PunkRock)
|
285
300
|
end
|
286
301
|
end
|
302
|
+
|
303
|
+
describe "clone" do
|
304
|
+
it "clones all definitions" do
|
305
|
+
@config << Object.new
|
306
|
+
assert @config.first != @config.clone.first
|
307
|
+
end
|
308
|
+
end
|
287
309
|
end
|
288
310
|
|
289
311
|
describe "Represents" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: representable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &74660510 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *74660510
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &74660300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *74660300
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &74660090 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *74660090
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: test_xml
|
49
|
-
requirement: &
|
49
|
+
requirement: &74659880 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *74659880
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &74659630 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.8.1
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *74659630
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: mocha
|
71
|
-
requirement: &
|
71
|
+
requirement: &74659420 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *74659420
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: mongoid
|
82
|
-
requirement: &
|
82
|
+
requirement: &74659190 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *74659190
|
91
91
|
description: Maps representation documents from and to Ruby objects. Includes XML
|
92
92
|
and JSON support, plain properties, collections and compositions.
|
93
93
|
email:
|