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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c4a01b781d577a7737b7b55519c525ef57c1dcc
4
- data.tar.gz: 584b9e8b0b599b902cbc409cd3feede61a3ee8c8
3
+ metadata.gz: 1b673d3f47872a6187fcad5e8ca2129852d85f3b
4
+ data.tar.gz: 63f511214fb994063ce90fa20e86d003a6871f54
5
5
  SHA512:
6
- metadata.gz: cd1dcc567b02b9c0c2130055d45cc4868300485bb5902afc529c4b8eb711b7e23833b7786cc7c7d5233409f3af1d92566b1e9fadcd866dd97e794a7925f8c858
7
- data.tar.gz: fdf5c4bd7e8b95bac5e36a1c6aa56436aa3bd43dfc282c1d31b6b03b54471e63ce2f94ae5fa572bdced5f5f72b1916fe62a40c5a6505a2178251f5a4ad287178
6
+ metadata.gz: 4e0efa411f1ae09ce818e70ff172f0252f9e029311d5d9a56b2d43cc485b286cb34a1a89826eab752c8c0d2cd1871050d1d00e511062b354c907ed0ebeb6594a
7
+ data.tar.gz: 07ed4b621f2bf933511010ea1cd2b5a0c6a1caa1eeafa45cca8ca3d2e3bf52f8b3333dd99973b5a9580948447f0d05318638111d9fa14b0edd272cdda310e3e9
data/lib/dslh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Dslh
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
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 = block ? Dslh.eval(@__options__, &block) : nil
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dslh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara