motion-support 0.2.3 → 0.2.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/lib/motion-support/callbacks.rb +9 -0
- data/lib/motion-support/concern.rb +7 -0
- data/motion/_stdlib/array.rb +13 -0
- data/motion/_stdlib/enumerable.rb +9 -0
- data/motion/callbacks.rb +511 -0
- data/motion/concern.rb +122 -0
- data/motion/core_ext/kernel/singleton_class.rb +6 -0
- data/motion/version.rb +1 -1
- data/spec/motion-support/callback_spec.rb +702 -0
- data/spec/motion-support/concern_spec.rb +93 -0
- data/spec/motion-support/core_ext/kernel/singleton_class_spec.rb +9 -0
- metadata +17 -4
@@ -0,0 +1,93 @@
|
|
1
|
+
class ConcernTest
|
2
|
+
module Baz
|
3
|
+
extend MotionSupport::Concern
|
4
|
+
|
5
|
+
module ClassMethods
|
6
|
+
def baz
|
7
|
+
"baz"
|
8
|
+
end
|
9
|
+
|
10
|
+
def included_ran=(value)
|
11
|
+
@@included_ran = value
|
12
|
+
end
|
13
|
+
|
14
|
+
def included_ran
|
15
|
+
@@included_ran
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
included do
|
20
|
+
self.included_ran = true
|
21
|
+
end
|
22
|
+
|
23
|
+
def baz
|
24
|
+
"baz"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module Bar
|
29
|
+
extend MotionSupport::Concern
|
30
|
+
|
31
|
+
include Baz
|
32
|
+
|
33
|
+
def bar
|
34
|
+
"bar"
|
35
|
+
end
|
36
|
+
|
37
|
+
def baz
|
38
|
+
"bar+" + super
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
module Foo
|
43
|
+
extend MotionSupport::Concern
|
44
|
+
|
45
|
+
include Bar, Baz
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "Concern" do
|
50
|
+
before do
|
51
|
+
@klass = Class.new
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should be included normally" do
|
55
|
+
@klass.send(:include, ConcernTest::Baz)
|
56
|
+
@klass.new.baz.should == "baz"
|
57
|
+
@klass.included_modules.include?(ConcernTest::Baz).should.be.true
|
58
|
+
|
59
|
+
@klass.send(:include, ConcernTest::Baz)
|
60
|
+
@klass.new.baz.should == "baz"
|
61
|
+
@klass.included_modules.include?(ConcernTest::Baz).should.be.true
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should extend class methods" do
|
65
|
+
@klass.send(:include, ConcernTest::Baz)
|
66
|
+
@klass.baz.should == "baz"
|
67
|
+
(class << @klass; self.included_modules; end)[0].should == ConcernTest::Baz::ClassMethods
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should include instance methods" do
|
71
|
+
@klass.send(:include, ConcernTest::Baz)
|
72
|
+
@klass.new.baz.should == "baz"
|
73
|
+
@klass.included_modules.include?(ConcernTest::Baz).should.be.true
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should run included block" do
|
77
|
+
@klass.send(:include, ConcernTest::Baz)
|
78
|
+
@klass.included_ran.should.be.true
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should meet dependencies" do
|
82
|
+
@klass.send(:include, ConcernTest::Bar)
|
83
|
+
@klass.new.bar.should == "bar"
|
84
|
+
@klass.new.baz.should == "bar+baz"
|
85
|
+
@klass.baz.should == "baz"
|
86
|
+
@klass.included_modules.include?(ConcernTest::Bar).should.be.true
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should meet dependencies with multiple modules" do
|
90
|
+
@klass.send(:include, ConcernTest::Foo)
|
91
|
+
@klass.included_modules[0..2].should == [ConcernTest::Foo, ConcernTest::Bar, ConcernTest::Baz]
|
92
|
+
end
|
93
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
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-05-
|
12
|
+
date: 2013-05-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: motion-require
|
@@ -69,6 +69,8 @@ files:
|
|
69
69
|
- examples/Inflector/resources/Default-568h@2x.png
|
70
70
|
- examples/Inflector/spec/main_spec.rb
|
71
71
|
- lib/motion-support.rb
|
72
|
+
- lib/motion-support/callbacks.rb
|
73
|
+
- lib/motion-support/concern.rb
|
72
74
|
- lib/motion-support/core_ext.rb
|
73
75
|
- lib/motion-support/core_ext/array.rb
|
74
76
|
- lib/motion-support/core_ext/class.rb
|
@@ -82,9 +84,13 @@ files:
|
|
82
84
|
- lib/motion-support/core_ext/time.rb
|
83
85
|
- lib/motion-support/inflector.rb
|
84
86
|
- motion-support.gemspec
|
87
|
+
- motion/_stdlib/array.rb
|
85
88
|
- motion/_stdlib/cgi.rb
|
86
89
|
- motion/_stdlib/date.rb
|
90
|
+
- motion/_stdlib/enumerable.rb
|
87
91
|
- motion/_stdlib/time.rb
|
92
|
+
- motion/callbacks.rb
|
93
|
+
- motion/concern.rb
|
88
94
|
- motion/core_ext/array.rb
|
89
95
|
- motion/core_ext/array/access.rb
|
90
96
|
- motion/core_ext/array/conversions.rb
|
@@ -108,6 +114,7 @@ files:
|
|
108
114
|
- motion/core_ext/integer/inflections.rb
|
109
115
|
- motion/core_ext/integer/multiple.rb
|
110
116
|
- motion/core_ext/integer/time.rb
|
117
|
+
- motion/core_ext/kernel/singleton_class.rb
|
111
118
|
- motion/core_ext/metaclass.rb
|
112
119
|
- motion/core_ext/module/aliasing.rb
|
113
120
|
- motion/core_ext/module/anonymous.rb
|
@@ -155,6 +162,8 @@ files:
|
|
155
162
|
- motion/version.rb
|
156
163
|
- spec/motion-support/_helpers/constantize_test_cases.rb
|
157
164
|
- spec/motion-support/_helpers/inflector_test_cases.rb
|
165
|
+
- spec/motion-support/callback_spec.rb
|
166
|
+
- spec/motion-support/concern_spec.rb
|
158
167
|
- spec/motion-support/core_ext/array/access_spec.rb
|
159
168
|
- spec/motion-support/core_ext/array/conversion_spec.rb
|
160
169
|
- spec/motion-support/core_ext/array/extract_options_spec.rb
|
@@ -176,6 +185,7 @@ files:
|
|
176
185
|
- spec/motion-support/core_ext/hash/slice_spec.rb
|
177
186
|
- spec/motion-support/core_ext/integer/inflection_spec.rb
|
178
187
|
- spec/motion-support/core_ext/integer/multiple_spec.rb
|
188
|
+
- spec/motion-support/core_ext/kernel/singleton_class_spec.rb
|
179
189
|
- spec/motion-support/core_ext/metaclass_spec.rb
|
180
190
|
- spec/motion-support/core_ext/module/aliasing_spec.rb
|
181
191
|
- spec/motion-support/core_ext/module/anonymous_spec.rb
|
@@ -230,7 +240,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
230
240
|
version: '0'
|
231
241
|
segments:
|
232
242
|
- 0
|
233
|
-
hash:
|
243
|
+
hash: 1534794484317908353
|
234
244
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
235
245
|
none: false
|
236
246
|
requirements:
|
@@ -239,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
249
|
version: '0'
|
240
250
|
segments:
|
241
251
|
- 0
|
242
|
-
hash:
|
252
|
+
hash: 1534794484317908353
|
243
253
|
requirements: []
|
244
254
|
rubyforge_project:
|
245
255
|
rubygems_version: 1.8.25
|
@@ -249,6 +259,8 @@ summary: Commonly useful extensions to the standard library for RubyMotion
|
|
249
259
|
test_files:
|
250
260
|
- spec/motion-support/_helpers/constantize_test_cases.rb
|
251
261
|
- spec/motion-support/_helpers/inflector_test_cases.rb
|
262
|
+
- spec/motion-support/callback_spec.rb
|
263
|
+
- spec/motion-support/concern_spec.rb
|
252
264
|
- spec/motion-support/core_ext/array/access_spec.rb
|
253
265
|
- spec/motion-support/core_ext/array/conversion_spec.rb
|
254
266
|
- spec/motion-support/core_ext/array/extract_options_spec.rb
|
@@ -270,6 +282,7 @@ test_files:
|
|
270
282
|
- spec/motion-support/core_ext/hash/slice_spec.rb
|
271
283
|
- spec/motion-support/core_ext/integer/inflection_spec.rb
|
272
284
|
- spec/motion-support/core_ext/integer/multiple_spec.rb
|
285
|
+
- spec/motion-support/core_ext/kernel/singleton_class_spec.rb
|
273
286
|
- spec/motion-support/core_ext/metaclass_spec.rb
|
274
287
|
- spec/motion-support/core_ext/module/aliasing_spec.rb
|
275
288
|
- spec/motion-support/core_ext/module/anonymous_spec.rb
|