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 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