dslh 0.1.3 → 0.1.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.
- 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
|