dslh 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dslh/version.rb +1 -1
- data/lib/dslh.rb +10 -1
- data/spec/dslh_spec.rb +30 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b673d3f47872a6187fcad5e8ca2129852d85f3b
|
4
|
+
data.tar.gz: 63f511214fb994063ce90fa20e86d003a6871f54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e0efa411f1ae09ce818e70ff172f0252f9e029311d5d9a56b2d43cc485b286cb34a1a89826eab752c8c0d2cd1871050d1d00e511062b354c907ed0ebeb6594a
|
7
|
+
data.tar.gz: 07ed4b621f2bf933511010ea1cd2b5a0c6a1caa1eeafa45cca8ca3d2e3bf52f8b3333dd99973b5a9580948447f0d05318638111d9fa14b0edd272cdda310e3e9
|
data/lib/dslh/version.rb
CHANGED
data/lib/dslh.rb
CHANGED
@@ -53,7 +53,16 @@ class Dslh
|
|
53
53
|
key_conv = @__options__[:key_conv] || @__options__[:conv]
|
54
54
|
value_conv = @__options__[:value_conv] || @__options__[:conv]
|
55
55
|
|
56
|
-
nested_hash =
|
56
|
+
nested_hash = nil
|
57
|
+
|
58
|
+
if block
|
59
|
+
hash_orig = @__hash__
|
60
|
+
@__hash__ = {}
|
61
|
+
self.instance_eval(&block)
|
62
|
+
nested_hash = @__hash__
|
63
|
+
@__hash__ = hash_orig
|
64
|
+
end
|
65
|
+
|
57
66
|
method_name = key_conv.call(method_name) if key_conv
|
58
67
|
|
59
68
|
if args.empty?
|
data/spec/dslh_spec.rb
CHANGED
@@ -271,4 +271,34 @@ describe Dslh do
|
|
271
271
|
:key2 => ["100", "200"]}
|
272
272
|
)
|
273
273
|
end
|
274
|
+
|
275
|
+
it 'should share context' do
|
276
|
+
h = Dslh.eval :value_conv => proc {|i| i.to_s } do
|
277
|
+
def func
|
278
|
+
123
|
279
|
+
end
|
280
|
+
|
281
|
+
var1 = 'FOO'
|
282
|
+
var2 = 'BAR'
|
283
|
+
var3 = 'ZOO'
|
284
|
+
|
285
|
+
key1 func
|
286
|
+
key2 do
|
287
|
+
key21 func
|
288
|
+
key22 do
|
289
|
+
key221 func
|
290
|
+
key222 var1
|
291
|
+
end
|
292
|
+
key23 var2
|
293
|
+
end
|
294
|
+
key3 var3
|
295
|
+
end
|
296
|
+
|
297
|
+
expect(h).to eq(
|
298
|
+
{:key1=>"123",
|
299
|
+
:key2=>
|
300
|
+
{:key21=>"123", :key22=>{:key221=>"123", :key222=>"FOO"}, :key23=>"BAR"},
|
301
|
+
:key3=>"ZOO"}
|
302
|
+
)
|
303
|
+
end
|
274
304
|
end
|