blockenspiel 0.2.2-java → 0.3.0-java
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/Blockenspiel.rdoc +374 -0
- data/History.rdoc +9 -0
- data/README.rdoc +26 -252
- data/Rakefile +5 -3
- data/lib/blockenspiel/impl.rb +197 -49
- data/lib/blockenspiel/version.rb +1 -1
- data/lib/blockenspiel_unmixer.jar +0 -0
- data/tests/tc_basic.rb +3 -3
- data/tests/tc_behaviors.rb +8 -8
- data/tests/tc_dsl_attrs.rb +134 -0
- data/tests/tc_dsl_methods.rb +6 -6
- data/tests/tc_dynamic.rb +55 -27
- data/tests/tc_mixins.rb +8 -8
- metadata +7 -3
data/tests/tc_dynamic.rb
CHANGED
@@ -51,7 +51,7 @@ module Blockenspiel
|
|
51
51
|
# * Asserts that the simplest case works.
|
52
52
|
|
53
53
|
def test_simple
|
54
|
-
block_ =
|
54
|
+
block_ = ::Proc.new do
|
55
55
|
set_value(:a, 1)
|
56
56
|
end
|
57
57
|
hash_ = ::Hash.new
|
@@ -71,17 +71,17 @@ module Blockenspiel
|
|
71
71
|
|
72
72
|
def test_renaming
|
73
73
|
hash_ = ::Hash.new
|
74
|
-
dsl_definition_ =
|
74
|
+
dsl_definition_ = ::Proc.new do
|
75
75
|
add_method(:set_value, :dsl_method => :renamed_set_value) do |key_, value_|
|
76
76
|
hash_[key_] = value_
|
77
77
|
end
|
78
78
|
end
|
79
|
-
block1_ =
|
79
|
+
block1_ = ::Proc.new do
|
80
80
|
renamed_set_value(:a, 1)
|
81
81
|
assert_raise(::NoMethodError){ set_value(:b, 2) }
|
82
82
|
end
|
83
83
|
::Blockenspiel.invoke(block1_, &dsl_definition_)
|
84
|
-
block2_ =
|
84
|
+
block2_ = ::Proc.new do |dsl_|
|
85
85
|
dsl_.set_value(:c, 3)
|
86
86
|
assert_raise(::NoMethodError){ renamed_set_value(:d, 4) }
|
87
87
|
end
|
@@ -93,15 +93,53 @@ module Blockenspiel
|
|
93
93
|
end
|
94
94
|
|
95
95
|
|
96
|
-
# Test calls with blocks.
|
96
|
+
# Test calls with blocks passed the usual way.
|
97
|
+
# This works in MRI 1.8.7 or later. However, it does NOT currently
|
98
|
+
# work with JRuby 1.4 because of JRUBY-4180. So we disable this test
|
99
|
+
# for all versions of JRuby (for now) and for MRI < 1.8.7.
|
100
|
+
#
|
101
|
+
# * Asserts that a block passed the usual way works
|
102
|
+
# * Asserts that we can detect when a block has not been passed
|
103
|
+
|
104
|
+
if ::RUBY_PLATFORM != 'java' && ::RUBY_VERSION >= '1.8.7'
|
105
|
+
module_eval <<-END
|
106
|
+
def test_blocks_normal
|
107
|
+
hash_ = ::Hash.new
|
108
|
+
block_ = ::Proc.new do
|
109
|
+
set_value1(:a){ 1 }
|
110
|
+
set_value2(:b){ 2 }
|
111
|
+
set_value2(:c)
|
112
|
+
end
|
113
|
+
::Blockenspiel.invoke(block_) do
|
114
|
+
add_method(:set_value1) do |key_, &bl_|
|
115
|
+
hash_[key_] = bl_.call
|
116
|
+
end
|
117
|
+
add_method(:set_value2) do |key_, &bl_|
|
118
|
+
hash_[key_] = bl_ ? true : false
|
119
|
+
end
|
120
|
+
end
|
121
|
+
assert_equal(1, hash_[:a])
|
122
|
+
assert_equal(true, hash_[:b])
|
123
|
+
assert_equal(false, hash_[:c])
|
124
|
+
end
|
125
|
+
END
|
126
|
+
end
|
127
|
+
|
128
|
+
|
129
|
+
# Test calls with blocks passed as non-block parameters.
|
97
130
|
#
|
98
131
|
# * Asserts that a block passed "first" works.
|
99
132
|
# * Asserts that a block passed "last" works.
|
100
|
-
# * Asserts that a block passed "
|
133
|
+
# * Asserts that a block passed "true" works.
|
101
134
|
|
102
135
|
def test_blocks_first_and_last
|
103
136
|
hash_ = ::Hash.new
|
104
|
-
|
137
|
+
block_ = ::Proc.new do
|
138
|
+
set_value1(:a){ 1 }
|
139
|
+
set_value2(:b){ 2 }
|
140
|
+
set_value2(:c){ 3 }
|
141
|
+
end
|
142
|
+
::Blockenspiel.invoke(block_) do
|
105
143
|
add_method(:set_value1, :block => :first) do |bl_, key_|
|
106
144
|
hash_[key_] = bl_.call
|
107
145
|
end
|
@@ -112,12 +150,6 @@ module Blockenspiel
|
|
112
150
|
hash_[key_] = bl_.call
|
113
151
|
end
|
114
152
|
end
|
115
|
-
block_ = proc do
|
116
|
-
set_value1(:a){ 1 }
|
117
|
-
set_value2(:b){ 2 }
|
118
|
-
set_value2(:c){ 3 }
|
119
|
-
end
|
120
|
-
::Blockenspiel.invoke(block_, &dsl_definition_)
|
121
153
|
assert_equal(1, hash_[:a])
|
122
154
|
assert_equal(2, hash_[:b])
|
123
155
|
assert_equal(3, hash_[:c])
|
@@ -130,7 +162,11 @@ module Blockenspiel
|
|
130
162
|
|
131
163
|
def test_blocks_nil
|
132
164
|
hash_ = ::Hash.new
|
133
|
-
|
165
|
+
block_ = ::Proc.new do
|
166
|
+
set_value1(:a)
|
167
|
+
set_value2(:b)
|
168
|
+
end
|
169
|
+
::Blockenspiel.invoke(block_) do
|
134
170
|
add_method(:set_value1, :block => :first) do |bl_, key_|
|
135
171
|
assert_nil(bl_)
|
136
172
|
end
|
@@ -138,11 +174,6 @@ module Blockenspiel
|
|
138
174
|
assert_nil(bl_)
|
139
175
|
end
|
140
176
|
end
|
141
|
-
block_ = proc do
|
142
|
-
set_value1(:a)
|
143
|
-
set_value2(:b)
|
144
|
-
end
|
145
|
-
::Blockenspiel.invoke(block_, &dsl_definition_)
|
146
177
|
assert_nil(hash_[:a])
|
147
178
|
assert_nil(hash_[:b])
|
148
179
|
end
|
@@ -150,21 +181,18 @@ module Blockenspiel
|
|
150
181
|
|
151
182
|
# Test calls with blocks (legacy api)
|
152
183
|
#
|
153
|
-
# * Asserts that a block
|
154
|
-
# * Asserts that a block passed "last" works.
|
155
|
-
# * Asserts that a block passed "last" works.
|
184
|
+
# * Asserts that a block with receive_block works.
|
156
185
|
|
157
186
|
def test_blocks_legacy
|
158
187
|
hash_ = ::Hash.new
|
159
|
-
|
188
|
+
block_ = ::Proc.new do
|
189
|
+
set_value(:a){ 1 }
|
190
|
+
end
|
191
|
+
::Blockenspiel.invoke(block_) do
|
160
192
|
add_method(:set_value, :receive_block => true) do |key_, bl_|
|
161
193
|
hash_[key_] = bl_.call
|
162
194
|
end
|
163
195
|
end
|
164
|
-
block_ = proc do
|
165
|
-
set_value(:a){ 1 }
|
166
|
-
end
|
167
|
-
::Blockenspiel.invoke(block_, &dsl_definition_)
|
168
196
|
assert_equal(1, hash_[:a])
|
169
197
|
end
|
170
198
|
|
data/tests/tc_mixins.rb
CHANGED
@@ -97,7 +97,7 @@ module Blockenspiel
|
|
97
97
|
@my_instance_variable_test = :hello
|
98
98
|
assert(!self.respond_to?(:set_value))
|
99
99
|
assert(!self.respond_to?(:set_value2))
|
100
|
-
block_ =
|
100
|
+
block_ = ::Proc.new do
|
101
101
|
set_value('a', 1)
|
102
102
|
set_value2('b'){ 2 }
|
103
103
|
assert_equal(:hello, @my_instance_variable_test)
|
@@ -121,7 +121,7 @@ module Blockenspiel
|
|
121
121
|
assert(!self.respond_to?(:set_value))
|
122
122
|
assert(!self.respond_to?(:set_value2))
|
123
123
|
assert(!self.respond_to?(:set_value2_inmixin))
|
124
|
-
block_ =
|
124
|
+
block_ = ::Proc.new do
|
125
125
|
set_value('a', 1)
|
126
126
|
set_value2_inmixin('b'){ 2 }
|
127
127
|
assert(!self.respond_to?(:set_value2))
|
@@ -146,11 +146,11 @@ module Blockenspiel
|
|
146
146
|
assert(!self.respond_to?(:set_value))
|
147
147
|
assert(!self.respond_to?(:set_value2))
|
148
148
|
assert(!self.respond_to?(:set_value2_inmixin))
|
149
|
-
::Blockenspiel.invoke(
|
149
|
+
::Blockenspiel.invoke(::Proc.new do
|
150
150
|
set_value('a', 1)
|
151
151
|
set_value2('b'){ 2 }
|
152
152
|
assert(!self.respond_to?(:set_value2_inmixin))
|
153
|
-
::Blockenspiel.invoke(
|
153
|
+
::Blockenspiel.invoke(::Proc.new do
|
154
154
|
set_value('c', 1)
|
155
155
|
set_value2_inmixin('d'){ 2 }
|
156
156
|
end, Target2.new(hash_))
|
@@ -179,10 +179,10 @@ module Blockenspiel
|
|
179
179
|
assert(!self.respond_to?(:set_value))
|
180
180
|
assert(!self.respond_to?(:set_value2))
|
181
181
|
assert(!self.respond_to?(:set_value2_inmixin))
|
182
|
-
::Blockenspiel.invoke(
|
182
|
+
::Blockenspiel.invoke(::Proc.new do
|
183
183
|
set_value('a', 1)
|
184
184
|
set_value2_inmixin('b'){ 2 }
|
185
|
-
::Blockenspiel.invoke(
|
185
|
+
::Blockenspiel.invoke(::Proc.new do
|
186
186
|
set_value('c', 1)
|
187
187
|
set_value2_inmixin('d'){ 2 }
|
188
188
|
assert(!self.respond_to?(:set_value2))
|
@@ -208,12 +208,12 @@ module Blockenspiel
|
|
208
208
|
|
209
209
|
def test_threads_same_mixin
|
210
210
|
hash_ = ::Hash.new
|
211
|
-
block1_ =
|
211
|
+
block1_ = ::Proc.new do
|
212
212
|
set_value('a', 1)
|
213
213
|
sleep(0.5)
|
214
214
|
set_value2('b'){ 2 }
|
215
215
|
end
|
216
|
-
block2_ =
|
216
|
+
block2_ = ::Proc.new do
|
217
217
|
set_value('c', 3)
|
218
218
|
sleep(1)
|
219
219
|
set_value2('d'){ 4 }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blockenspiel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Daniel Azuma
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-04 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -21,6 +21,7 @@ extensions: []
|
|
21
21
|
|
22
22
|
extra_rdoc_files:
|
23
23
|
- README.rdoc
|
24
|
+
- Blockenspiel.rdoc
|
24
25
|
- History.rdoc
|
25
26
|
- ImplementingDSLblocks.rdoc
|
26
27
|
files:
|
@@ -30,16 +31,18 @@ files:
|
|
30
31
|
- lib/blockenspiel.rb
|
31
32
|
- lib/blockenspiel/impl.rb
|
32
33
|
- lib/blockenspiel/version.rb
|
34
|
+
- lib/blockenspiel_unmixer.jar
|
33
35
|
- tests/tc_basic.rb
|
34
36
|
- tests/tc_behaviors.rb
|
37
|
+
- tests/tc_dsl_attrs.rb
|
35
38
|
- tests/tc_dsl_methods.rb
|
36
39
|
- tests/tc_dynamic.rb
|
37
40
|
- tests/tc_mixins.rb
|
41
|
+
- Blockenspiel.rdoc
|
38
42
|
- History.rdoc
|
39
43
|
- ImplementingDSLblocks.rdoc
|
40
44
|
- README.rdoc
|
41
45
|
- Rakefile
|
42
|
-
- lib/blockenspiel_unmixer.jar
|
43
46
|
has_rdoc: true
|
44
47
|
homepage: http://virtuoso.rubyforge.org/blockenspiel
|
45
48
|
licenses: []
|
@@ -71,6 +74,7 @@ summary: Blockenspiel is a helper library designed to make it easy to implement
|
|
71
74
|
test_files:
|
72
75
|
- tests/tc_basic.rb
|
73
76
|
- tests/tc_behaviors.rb
|
77
|
+
- tests/tc_dsl_attrs.rb
|
74
78
|
- tests/tc_dsl_methods.rb
|
75
79
|
- tests/tc_dynamic.rb
|
76
80
|
- tests/tc_mixins.rb
|