casting 0.4.1 → 0.5.0
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/casting.rb +4 -0
- data/lib/casting/version.rb +1 -1
- data/test/casting_test.rb +21 -19
- metadata +2 -2
data/lib/casting.rb
CHANGED
data/lib/casting/version.rb
CHANGED
data/test/casting_test.rb
CHANGED
@@ -36,6 +36,19 @@ describe Casting, '.delegating' do
|
|
36
36
|
client.greet
|
37
37
|
}
|
38
38
|
end
|
39
|
+
|
40
|
+
it 'responds to added methods inside the block' do
|
41
|
+
client = test_person.extend(Casting::Client)
|
42
|
+
client.delegate_missing_methods
|
43
|
+
|
44
|
+
assert !client.respond_to?(:greet)
|
45
|
+
|
46
|
+
Casting.delegating(client => TestPerson::Greeter) do
|
47
|
+
assert client.respond_to?(:greet)
|
48
|
+
end
|
49
|
+
|
50
|
+
assert !client.respond_to?(:greet)
|
51
|
+
end
|
39
52
|
end
|
40
53
|
|
41
54
|
describe Casting::Delegation do
|
@@ -81,15 +94,11 @@ describe Casting::Delegation do
|
|
81
94
|
|
82
95
|
it 'assigns arguments to the delegated method using with' do
|
83
96
|
client = test_person
|
84
|
-
attendant = TestPerson
|
85
|
-
attendant.extend(TestPerson::Verbose)
|
97
|
+
attendant = TestPerson::Verbose
|
86
98
|
|
87
99
|
delegation = Casting::Delegation.new('verbose', client).to(attendant)
|
88
100
|
|
89
|
-
|
90
|
-
delegation_output = delegation.with('hello', 'goodbye').call
|
91
|
-
|
92
|
-
assert_equal attendant_output, delegation_output
|
101
|
+
assert_equal 'hello,goodbye', delegation.with('hello', 'goodbye').call
|
93
102
|
end
|
94
103
|
|
95
104
|
it 'prefers `call` arguments over `with`' do
|
@@ -98,10 +107,7 @@ describe Casting::Delegation do
|
|
98
107
|
|
99
108
|
delegation = Casting::Delegation.new('verbose', client).to(attendant)
|
100
109
|
|
101
|
-
|
102
|
-
delegation_output = delegation.with('hello', 'goodbye').call('call','args')
|
103
|
-
|
104
|
-
assert_equal attendant_output, delegation_output
|
110
|
+
assert_equal 'call,args', delegation.with('hello', 'goodbye').call('call','args')
|
105
111
|
end
|
106
112
|
end
|
107
113
|
|
@@ -123,21 +129,17 @@ describe Casting::Client do
|
|
123
129
|
it 'adds a delegate method to call a method on an attendant' do
|
124
130
|
client = TestPerson.new
|
125
131
|
client.extend(Casting::Client)
|
126
|
-
attendant = TestPerson
|
127
|
-
|
128
|
-
assert_equal
|
132
|
+
attendant = TestPerson::Greeter
|
133
|
+
|
134
|
+
assert_equal 'hello', client.delegate('greet', attendant)
|
129
135
|
end
|
130
136
|
|
131
137
|
it 'passes additional parameters to the attendant' do
|
132
138
|
client = TestPerson.new
|
133
139
|
client.extend(Casting::Client)
|
134
|
-
attendant = TestPerson
|
135
|
-
attendant.extend(TestPerson::Verbose)
|
136
|
-
|
137
|
-
attendant_output = attendant.verbose('hello', 'goodbye')
|
138
|
-
client_output = client.delegate('verbose', attendant, 'hello', 'goodbye')
|
140
|
+
attendant = TestPerson::Verbose
|
139
141
|
|
140
|
-
assert_equal
|
142
|
+
assert_equal 'hello,goodbye', client.delegate('verbose', attendant, 'hello', 'goodbye')
|
141
143
|
end
|
142
144
|
|
143
145
|
it 'passes the object as the client for delegation' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: casting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
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-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redcard
|