doodle 0.1.7 → 0.1.8
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/History.txt +38 -0
- data/lib/doodle.rb +192 -212
- data/lib/doodle/version.rb +1 -1
- data/spec/attributes_spec.rb +25 -24
- data/spec/bugs_spec.rb +2 -2
- data/spec/class_spec.rb +5 -5
- data/spec/conversion_spec.rb +1 -1
- data/spec/defaults_spec.rb +8 -8
- data/spec/doodle_context_spec.rb +2 -2
- data/spec/doodle_spec.rb +22 -22
- data/spec/from_spec.rb +43 -0
- data/spec/has_spec.rb +15 -6
- data/spec/inheritance_spec.rb +11 -12
- data/spec/init_spec.rb +6 -6
- data/spec/kind_spec.rb +17 -0
- data/spec/singleton_spec.rb +12 -12
- data/spec/specialized_attribute_class_spec.rb +4 -4
- data/spec/superclass_spec.rb +6 -6
- data/spec/validation2_spec.rb +4 -4
- data/spec/validation_spec.rb +5 -5
- metadata +4 -2
data/lib/doodle/version.rb
CHANGED
data/spec/attributes_spec.rb
CHANGED
@@ -33,7 +33,7 @@ describe Doodle::DoodleAttribute, 'basics' do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'should have attribute :ivar1 with default defined' do
|
36
|
-
@foo.
|
36
|
+
@foo.doodle.attributes[:ivar1].default.should == 'Hello'
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'should have default name' do
|
@@ -45,68 +45,69 @@ describe Doodle::DoodleAttribute, 'basics' do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'should have name required == false (because has default)' do
|
48
|
-
@foo.
|
48
|
+
@foo.doodle.attributes[:ivar1].required?.should == false
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'should have ivar2 required == true' do
|
52
|
-
@bar.
|
52
|
+
@bar.doodle.attributes[:ivar2].required?.should == true
|
53
53
|
end
|
54
54
|
|
55
55
|
it 'should have name.optional? == true (because has default)' do
|
56
|
-
@foo.
|
56
|
+
@foo.doodle.attributes[:ivar1].optional?.should == true
|
57
57
|
end
|
58
58
|
|
59
59
|
it 'should inherit attribute from parent' do
|
60
|
-
@bar.
|
60
|
+
@bar.doodle.attributes[:ivar1].should == @foo.doodle.attributes[:ivar1]
|
61
61
|
end
|
62
62
|
|
63
63
|
it 'should have ivar2.optional? == false' do
|
64
|
-
@bar.
|
64
|
+
@bar.doodle.attributes[:ivar2].optional?.should == false
|
65
65
|
end
|
66
66
|
|
67
|
-
# it "should have
|
68
|
-
#
|
69
|
-
# Bar.
|
67
|
+
# it "should have doodle.parents in correct order" do
|
68
|
+
# expected_doodle.parents = RUBY_VERSION <= "1.8.6" ? [Foo, Object] : [Foo, Object, BasicObject]
|
69
|
+
# Bar.doodle.parents.should == expected_doodle.parents
|
70
70
|
# end
|
71
71
|
|
72
|
-
it "should have Bar's singleton
|
73
|
-
@bar.singleton_class.
|
72
|
+
it "should have Bar's singleton doodle.parents in reverse order of definition" do
|
73
|
+
@bar.singleton_class.doodle.parents.should == []
|
74
74
|
end
|
75
75
|
|
76
76
|
it 'should have singleton_class attributes in order of definition' do
|
77
|
-
Bar.singleton_class.
|
77
|
+
Bar.singleton_class.doodle.attributes.keys.should == [:cvar2]
|
78
78
|
end
|
79
79
|
|
80
80
|
it 'should have inherited class_attributes in order of definition' do
|
81
|
-
Bar.class_attributes.keys.should == [:cvar1, :cvar2]
|
81
|
+
Bar.doodle.class_attributes.keys.should == [:cvar1, :cvar2]
|
82
82
|
end
|
83
83
|
|
84
84
|
it 'should have inherited class_attributes in order of definition' do
|
85
|
-
@bar.class_attributes.keys.should == [:cvar1, :cvar2]
|
85
|
+
@bar.doodle.class_attributes.keys.should == [:cvar1, :cvar2]
|
86
86
|
end
|
87
87
|
|
88
88
|
it 'should have local class attributes in order of definition' do
|
89
|
-
Bar.singleton_class.
|
89
|
+
Bar.singleton_class.doodle.attributes(false).keys.should == [:cvar2]
|
90
90
|
end
|
91
91
|
|
92
|
-
|
93
|
-
|
92
|
+
# bit iffy this test - testing implementation, not interface
|
93
|
+
it 'should not inherit singleton doodle.local_attributes' do
|
94
|
+
@bar.singleton_class.class_eval { doodle.collect_inherited(:local_attributes).map { |x| x[0]} }.should == []
|
94
95
|
end
|
95
96
|
|
96
97
|
it 'should not inherit singleton attributes#1' do
|
97
|
-
@bar.singleton_class.
|
98
|
+
@bar.singleton_class.doodle.attributes.map { |x| x[0]} .should == [:svar2]
|
98
99
|
end
|
99
100
|
|
100
101
|
it 'should not inherit singleton attributes#2' do
|
101
|
-
@bar.singleton_class.
|
102
|
+
@bar.singleton_class.doodle.attributes.keys.should == [:svar2]
|
102
103
|
end
|
103
104
|
|
104
105
|
it 'should not inherit singleton attributes#3' do
|
105
|
-
@bar.singleton_class.
|
106
|
+
@bar.singleton_class.doodle.attributes(false).keys.should == [:svar2]
|
106
107
|
end
|
107
108
|
|
108
109
|
it 'should show singleton attributes in attributes' do
|
109
|
-
@bar.
|
110
|
+
@bar.doodle.attributes.keys.should == [:ivar1, :ivar2, :svar2]
|
110
111
|
end
|
111
112
|
|
112
113
|
end
|
@@ -129,12 +130,12 @@ describe Doodle::DoodleAttribute, 'attribute order' do
|
|
129
130
|
end
|
130
131
|
|
131
132
|
# it 'should keep order of inherited attributes' do
|
132
|
-
#
|
133
|
-
# C.
|
133
|
+
# expected_doodle.parents = RUBY_VERSION <= "1.8.6" ? [B, A, Doodle, Object] : [B, A, Doodle, Object, BasicObject]
|
134
|
+
# C.doodle.parents.should == expected_doodle.parents
|
134
135
|
# end
|
135
136
|
|
136
137
|
it 'should keep order of inherited attributes' do
|
137
|
-
C.
|
138
|
+
C.doodle.attributes.keys.should == [:a, :b, :c]
|
138
139
|
end
|
139
140
|
end
|
140
141
|
end
|
data/spec/bugs_spec.rb
CHANGED
@@ -15,8 +15,8 @@ describe 'Doodle', 'inheriting validations' do
|
|
15
15
|
|
16
16
|
it 'should not duplicate validations when accessing them!' do
|
17
17
|
foo = Foo 2
|
18
|
-
foo.
|
19
|
-
foo.
|
18
|
+
foo.doodle.validations.size.should_be 1
|
19
|
+
foo.doodle.validations.size.should_be 1
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
data/spec/class_spec.rb
CHANGED
@@ -36,11 +36,11 @@ describe Doodle, 'class attributes' do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should list all class's own attributes" do
|
39
|
-
Foo.singleton_class.
|
39
|
+
Foo.singleton_class.doodle.attributes(false).keys.should_be [:metadata]
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should list all class's own attributes" do
|
43
|
-
Foo.singleton_class.
|
43
|
+
Foo.singleton_class.doodle.attributes.keys.should_be [:metadata]
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'should create Bar class attribute' do
|
@@ -73,14 +73,14 @@ describe Doodle, 'class attributes' do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
it "should list all class's own attributes" do
|
76
|
-
Bar.singleton_class.
|
76
|
+
Bar.singleton_class.doodle.attributes(false).keys.should_be [:doc]
|
77
77
|
end
|
78
78
|
|
79
79
|
it "should list all class's singleton attributes" do
|
80
|
-
Bar.singleton_class.
|
80
|
+
Bar.singleton_class.doodle.attributes.keys.should_be [:doc]
|
81
81
|
end
|
82
82
|
it "should list all class's class_attributes" do
|
83
|
-
Bar.class_attributes.keys.should_be [:metadata, :doc]
|
83
|
+
Bar.doodle.class_attributes.keys.should_be [:metadata, :doc]
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
data/spec/conversion_spec.rb
CHANGED
data/spec/defaults_spec.rb
CHANGED
@@ -17,22 +17,22 @@ describe Doodle, 'attributes with defaults' do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should have instance attribute default via class' do
|
20
|
-
Foo.
|
20
|
+
Foo.doodle.attributes[:name].default.should_be 'D1'
|
21
21
|
end
|
22
22
|
it 'should have instance attribute default via instance' do
|
23
|
-
@foo.
|
23
|
+
@foo.doodle.attributes[:name].default.should_be 'D1'
|
24
24
|
end
|
25
25
|
it 'should have class attribute default via class.meta' do
|
26
|
-
Foo.singleton_class.
|
26
|
+
Foo.singleton_class.doodle.attributes(false)[:metadata].default.should_be 'D2'
|
27
27
|
end
|
28
28
|
it 'should have class attribute default via class.meta' do
|
29
|
-
Foo.singleton_class.
|
29
|
+
Foo.singleton_class.doodle.attributes[:metadata].default.should_be 'D2'
|
30
30
|
end
|
31
|
-
it 'should have singleton attribute default via instance.singleton_class.
|
32
|
-
@foo.singleton_class.
|
31
|
+
it 'should have singleton attribute default via instance.singleton_class.doodle.attributes(false)' do
|
32
|
+
@foo.singleton_class.doodle.attributes(false)[:special].default.should_be 'D3'
|
33
33
|
end
|
34
|
-
it 'should have singleton attribute default via instance.singleton_class.
|
35
|
-
@foo.singleton_class.
|
34
|
+
it 'should have singleton attribute default via instance.singleton_class.doodle.attributes' do
|
35
|
+
@foo.singleton_class.doodle.attributes[:special].default.should_be 'D3'
|
36
36
|
end
|
37
37
|
it 'should have singleton attribute name by default' do
|
38
38
|
@foo.name.should_be 'D1'
|
data/spec/doodle_context_spec.rb
CHANGED
@@ -20,7 +20,7 @@ describe Doodle, "doodle_context" do
|
|
20
20
|
# during initialization - this is a way to capture that
|
21
21
|
# value for ues later
|
22
22
|
|
23
|
-
init {
|
23
|
+
init { doodle.parent }
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -38,7 +38,7 @@ describe Doodle, "doodle_context" do
|
|
38
38
|
|
39
39
|
sean = dad.children[0]
|
40
40
|
sean.dad.name.should_be 'Conn'
|
41
|
-
sean.
|
41
|
+
sean.doodle.parent.name.should_be 'Conn'
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
data/spec/doodle_spec.rb
CHANGED
@@ -24,15 +24,15 @@ describe Doodle, 'instance attributes' do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'should list instance attributes(false)' do
|
27
|
-
@foo.
|
27
|
+
@foo.doodle.attributes(false).keys.should_be []
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should list instance attributes' do
|
31
|
-
@foo.
|
31
|
+
@foo.doodle.attributes.keys.should_be [:name]
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should list all instance attributes(false) at class level' do
|
35
|
-
Foo.
|
35
|
+
Foo.doodle.attributes(false).keys.should_be [:name]
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -68,11 +68,11 @@ describe Doodle, 'class attributes(false)' do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it "should list all class's own attributes" do
|
71
|
-
Foo.singleton_class.
|
71
|
+
Foo.singleton_class.doodle.attributes(false).keys.should_be [:metadata]
|
72
72
|
end
|
73
73
|
|
74
74
|
it "should list all class's own attributes" do
|
75
|
-
Foo.singleton_class.
|
75
|
+
Foo.singleton_class.doodle.attributes.keys.should_be [:metadata]
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -137,27 +137,27 @@ describe Doodle, 'inherited class attributes(false)' do
|
|
137
137
|
end
|
138
138
|
|
139
139
|
it "should list class's own attributes" do
|
140
|
-
Foo.singleton_class.
|
140
|
+
Foo.singleton_class.doodle.attributes(false).keys.should_be [:metadata]
|
141
141
|
end
|
142
142
|
|
143
143
|
it "should list all class's own attributes" do
|
144
|
-
Foo.singleton_class.
|
144
|
+
Foo.singleton_class.doodle.attributes.keys.should_be [:metadata]
|
145
145
|
end
|
146
146
|
|
147
147
|
it "should list class's own attributes(false)" do
|
148
|
-
Bar.singleton_class.
|
148
|
+
Bar.singleton_class.doodle.attributes(false).keys.should_be [:doc]
|
149
149
|
end
|
150
150
|
|
151
151
|
it "should list all singleton class attributes" do
|
152
|
-
Bar.singleton_class.
|
152
|
+
Bar.singleton_class.doodle.attributes.keys.should_be [:doc]
|
153
153
|
end
|
154
154
|
|
155
155
|
it "should list all inherited meta class attributes" do
|
156
|
-
Bar.class_attributes.keys.should_be [:metadata, :doc]
|
156
|
+
Bar.doodle.class_attributes.keys.should_be [:metadata, :doc]
|
157
157
|
end
|
158
158
|
|
159
159
|
it "should list all inherited class's attributes" do
|
160
|
-
Bar.
|
160
|
+
Bar.doodle.attributes.keys.should_be [:name, :location]
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
@@ -188,15 +188,15 @@ describe Doodle, 'singleton class attributes' do
|
|
188
188
|
end
|
189
189
|
|
190
190
|
it 'should list singleton instance attributes(false)' do
|
191
|
-
@foo.singleton_class.
|
191
|
+
@foo.singleton_class.doodle.attributes(false).keys.should_be [:special]
|
192
192
|
end
|
193
193
|
|
194
194
|
it 'should list singleton instance attributes' do
|
195
|
-
@foo.singleton_class.
|
195
|
+
@foo.singleton_class.doodle.attributes.keys.should_be [:special]
|
196
196
|
end
|
197
197
|
|
198
198
|
it 'should list instance attributes' do
|
199
|
-
@foo.
|
199
|
+
@foo.doodle.attributes.keys.should_be [:name, :special]
|
200
200
|
end
|
201
201
|
|
202
202
|
end
|
@@ -245,19 +245,19 @@ describe Doodle, 'inherited singleton class attributes' do
|
|
245
245
|
end
|
246
246
|
|
247
247
|
it 'should list instance attributes' do
|
248
|
-
@foo.class.
|
249
|
-
@bar.class.
|
250
|
-
@bar2.class.
|
248
|
+
@foo.class.doodle.attributes(false).keys.should_be [:name]
|
249
|
+
@bar.class.doodle.attributes(false).keys.should_be [:info]
|
250
|
+
@bar2.class.doodle.attributes(false).keys.should_be [:info]
|
251
251
|
end
|
252
252
|
|
253
253
|
it 'should list instance meta attributes' do
|
254
|
-
@foo.singleton_class.
|
255
|
-
@bar.singleton_class.
|
254
|
+
@foo.singleton_class.doodle.attributes(false).keys.should_be [:special]
|
255
|
+
@bar.singleton_class.doodle.attributes(false).keys.should_be [:extra]
|
256
256
|
end
|
257
257
|
|
258
258
|
it 'should list singleton attributes only' do
|
259
|
-
@foo.singleton_class.
|
260
|
-
@bar.singleton_class.
|
259
|
+
@foo.singleton_class.doodle.attributes.keys.should_be [:special]
|
260
|
+
@bar.singleton_class.doodle.attributes.keys.should_be [:extra]
|
261
261
|
end
|
262
262
|
|
263
263
|
it 'should keep meta attributes separate' do
|
@@ -287,7 +287,7 @@ describe Doodle, 'inherited singleton class attributes' do
|
|
287
287
|
|
288
288
|
it 'should inherit singleton methods from class' do
|
289
289
|
@foo.singleton_class.respond_to?(:metadata).should_be true
|
290
|
-
@foo.singleton_class.
|
290
|
+
@foo.singleton_class.doodle.attributes[:metadata].should_be nil
|
291
291
|
@foo.singleton_class.metadata = 'foo meta'
|
292
292
|
@foo.singleton_class.instance_eval { @metadata }.should_be 'foo meta'
|
293
293
|
if RUBY_VERSION < '1.9.0'
|
data/spec/from_spec.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
+
|
3
|
+
describe 'Doodle', 'applying Doodle type conversions' do
|
4
|
+
temporary_constant :Foo, :Name do
|
5
|
+
before :each do
|
6
|
+
class Name < String
|
7
|
+
include Doodle::Core
|
8
|
+
from String do |s|
|
9
|
+
Name.new(s)
|
10
|
+
end
|
11
|
+
must "be > 3 chars long" do
|
12
|
+
size > 3
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Foo < Doodle
|
17
|
+
has Name do
|
18
|
+
must "start with A" do |s|
|
19
|
+
s =~ /^A/
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should convert a value based on conversions in doodle class' do
|
26
|
+
proc { foo = Foo 'Arthur' }.should_not raise_error
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should convert a value based on conversions in doodle class to the correct class' do
|
30
|
+
foo = Foo 'Arthur'
|
31
|
+
foo.name.class.should_be Name
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should apply validations from attribute' do
|
35
|
+
proc { Foo 'Zaphod' }.should raise_error(Doodle::ValidationError)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should apply validations from doodle type' do
|
39
|
+
proc { Foo 'Art' }.should raise_error(Doodle::ConversionError)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
data/spec/has_spec.rb
CHANGED
@@ -8,9 +8,9 @@ describe Doodle, 'has Class' do
|
|
8
8
|
class Foo < Doodle
|
9
9
|
has Bar
|
10
10
|
end
|
11
|
-
att = Foo.
|
11
|
+
att = Foo.doodle.attributes.values.first
|
12
12
|
att.name.should_be :bar
|
13
|
-
att.kind.should_be Bar
|
13
|
+
att.kind.should_be [Bar]
|
14
14
|
end
|
15
15
|
it "should allow overriding name of attribute when using 'has Bar'" do
|
16
16
|
class Bar
|
@@ -18,9 +18,9 @@ describe Doodle, 'has Class' do
|
|
18
18
|
class Foo < Doodle
|
19
19
|
has Bar, :name => :baz
|
20
20
|
end
|
21
|
-
att = Foo.
|
21
|
+
att = Foo.doodle.attributes.values.first
|
22
22
|
att.name.should_be :baz
|
23
|
-
att.kind.should_be Bar
|
23
|
+
att.kind.should_be [Bar]
|
24
24
|
end
|
25
25
|
it "should convert class name to snakecase when using CamelCase class constant" do
|
26
26
|
class AudioClip
|
@@ -28,9 +28,18 @@ describe Doodle, 'has Class' do
|
|
28
28
|
class Foo < Doodle
|
29
29
|
has AudioClip
|
30
30
|
end
|
31
|
-
att = Foo.
|
31
|
+
att = Foo.doodle.attributes.values.first
|
32
32
|
att.name.should_be :audio_clip
|
33
|
-
att.kind.should_be AudioClip
|
33
|
+
att.kind.should_be [AudioClip]
|
34
|
+
end
|
35
|
+
it "should apply validations for 'has Bar' as if 'has :bar, :kind => Bar' was used" do
|
36
|
+
class Bar
|
37
|
+
end
|
38
|
+
class Foo < Doodle
|
39
|
+
has Bar
|
40
|
+
end
|
41
|
+
proc { Foo.new(:bar => Bar.new) }.should_not raise_error
|
42
|
+
proc { Foo.new(:bar => "Hello") }.should raise_error(Doodle::ValidationError)
|
34
43
|
end
|
35
44
|
end
|
36
45
|
end
|
data/spec/inheritance_spec.rb
CHANGED
@@ -19,8 +19,7 @@ describe Doodle, "inheritance" do
|
|
19
19
|
|
20
20
|
it "should collect_inherited for instance" do
|
21
21
|
foo = Foo.new(:ivar => "foo")
|
22
|
-
foo.
|
23
|
-
foo.doodle_attributes.map{ |key, value| key}.should_be [:ivar]
|
22
|
+
foo.doodle.attributes.map{ |key, value| key}.should_be [:ivar]
|
24
23
|
end
|
25
24
|
|
26
25
|
it "should collect inherited for singleton" do
|
@@ -28,8 +27,8 @@ describe Doodle, "inheritance" do
|
|
28
27
|
class << foo
|
29
28
|
has :svar
|
30
29
|
end
|
31
|
-
foo.
|
32
|
-
foo.singleton_class.
|
30
|
+
foo.doodle.attributes.map{ |key, value| key}.should_be [:ivar, :svar]
|
31
|
+
foo.singleton_class.doodle.attributes.map{ |key, value| key}.should_be [:svar]
|
33
32
|
end
|
34
33
|
|
35
34
|
it "should collect singleton class attributes for singleton" do
|
@@ -38,7 +37,7 @@ describe Doodle, "inheritance" do
|
|
38
37
|
has :svar
|
39
38
|
end
|
40
39
|
foo.singleton_class.respond_to?(:cvar).should_be true
|
41
|
-
foo.
|
40
|
+
foo.doodle.attributes.map{ |key, value| key}.should_be [:ivar, :svar]
|
42
41
|
# is this what I want? not sure
|
43
42
|
# foo.class.singleton_class.should_be foo.singleton_class.superclass
|
44
43
|
# foo.singleton_class.singleton_class # => #<Class:#<Class:#<Foo:0xb7bc8dd0>>>
|
@@ -53,22 +52,22 @@ describe Doodle, "inheritance" do
|
|
53
52
|
class << bar
|
54
53
|
has :svar2
|
55
54
|
end
|
56
|
-
bar.
|
57
|
-
bar.singleton_class.
|
55
|
+
bar.doodle.attributes.map{ |key, value| key}.should_be [:ivar, :ivar2, :svar2]
|
56
|
+
bar.singleton_class.doodle.attributes.map{ |key, value| key}.should_be [:svar2]
|
58
57
|
end
|
59
58
|
|
60
59
|
it "should show instance attributes for class" do
|
61
|
-
Foo.
|
62
|
-
Bar.
|
60
|
+
Foo.doodle.attributes.map{ |key, value| key}.should_be [:ivar]
|
61
|
+
Bar.doodle.attributes.map{ |key, value| key}.should_be [:ivar, :ivar2]
|
63
62
|
end
|
64
63
|
|
65
64
|
it "should inherite class attributes for class" do
|
66
|
-
Foo.class_attributes.map{ |key, value| key}.should_be [:cvar]
|
67
|
-
Bar.class_attributes.map{ |key, value| key}.should_be [:cvar, :cvar2]
|
65
|
+
Foo.doodle.class_attributes.map{ |key, value| key}.should_be [:cvar]
|
66
|
+
Bar.doodle.class_attributes.map{ |key, value| key}.should_be [:cvar, :cvar2]
|
68
67
|
end
|
69
68
|
|
70
69
|
it "should not inherit class attributes via singleton_class" do
|
71
|
-
Bar.singleton_class.
|
70
|
+
Bar.singleton_class.doodle.attributes.map{ |key, value| key}.should_be [:cvar2]
|
72
71
|
end
|
73
72
|
end
|
74
73
|
end
|