dslh 0.2.5 → 0.2.6

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZmJmOGFiMjc5MjczZmI1Y2IzZjhiODJmNTYyZmI4YzViMmIzNzVkMQ==
5
- data.tar.gz: !binary |-
6
- Y2FhNjliMDRjMGMwMzhhM2Y4YTliMGU0YWNkMTA1NDQzODY4N2EyNg==
2
+ SHA1:
3
+ metadata.gz: fa4ee0d726af330efe68242aa1d5aa7d772266a4
4
+ data.tar.gz: d8235afa0db8146c8cc07da541914e03a83501c5
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YzkzOTFmODIwMjY5ZWY5YzM5MGFlMDlhYzA5Y2E1MTNhZDA3NTM4YTViZmVl
10
- MTUyZmYyMzdiZDIzZjhiNjcxNjk1YTkzMTU1OWVhYWE4YzNkOTZhNWFhZDVk
11
- N2JjM2M5ZWM1NDNlYmM3NTJlYWZlMWIwOTU2OTJmZjE1NDgxMzU=
12
- data.tar.gz: !binary |-
13
- NThiOTQwYjRmYTA3MjFlZTQwZDE5ZjMyNDk1MzM0OGUwZGI2YzA1YmU3MDJm
14
- Zjk0NjkzZjliNzNjMWIzMTMzZWIzNDc3Mzc2ZDEyNzZlODY2M2JkOWYwMzEw
15
- ZmMzMjc0N2JkYmZkOWFlMmIxOWIxZTQ4NjY2OTM3MzMwNGQ4Yzc=
6
+ metadata.gz: 90d02012002838b554aa3a502668d5f9d9a6468aca98996f2a48a70d86a49b74f86c825109af5955cff06a2eed962d7964b7447d5a8b9a16d0b1a58ddda39e84
7
+ data.tar.gz: 076e581bfec7598fd68f05624a61bd8d2c8ac58b5f52bafe6c9f24bed1741eb0066e01c9e9e89e82a089e5e7e0f0103b1dd6be744b760ff0b438ea4b1d1cb667
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  It define Hash as a DSL.
4
4
 
5
- [![Gem Version](https://badge.fury.io/rb/dslh.png?201403101612)](http://badge.fury.io/rb/dslh)
6
- [![Build Status](https://drone.io/github.com/winebarrel/dslh/status.png?201403101612)](https://drone.io/github.com/winebarrel/dslh/latest)
5
+ [![Gem Version](https://badge.fury.io/rb/dslh.png?201403151541)](http://badge.fury.io/rb/dslh)
6
+ [![Build Status](https://drone.io/github.com/winebarrel/dslh/status.png?201403151541)](https://drone.io/github.com/winebarrel/dslh/latest)
7
7
 
8
8
  ## Installation
9
9
 
data/lib/dslh.rb CHANGED
@@ -200,9 +200,13 @@ class Dslh
200
200
  end
201
201
 
202
202
  def method_missing(method_name, *args, &block)
203
+ if args.empty? and not block and not @__options__[:allow_empty_args]
204
+ super
205
+ end
206
+
203
207
  key_conv = @__options__[:key_conv]
204
208
  value_conv = @__options__[:value_conv]
205
- nested_hash = ScopeBlock.nest(binding, 'block', method_name)
209
+ nested_hash = block ? ScopeBlock.nest(binding, 'block', method_name) : nil
206
210
  method_name = key_conv.call(method_name) if key_conv
207
211
 
208
212
  if not @__options__[:allow_duplicate] and @__hash__.has_key?(method_name)
data/lib/dslh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Dslh
2
- VERSION = '0.2.5'
2
+ VERSION = '0.2.6'
3
3
  end
data/spec/dslh_spec.rb CHANGED
@@ -659,6 +659,63 @@ end
659
659
  }.to_not raise_error
660
660
  end
661
661
 
662
+ it 'does not allow empty args' do
663
+ expect {
664
+ Dslh.eval do
665
+ key1 'value'
666
+ key2 100
667
+
668
+ key3 do
669
+ key31 "value31" do
670
+ key311
671
+ key312 '200'
672
+ end
673
+
674
+ key32 do
675
+ key321 "value321" do
676
+ key3211 'XXX'
677
+ key3212 :XXX
678
+ end
679
+ key322 300
680
+ end
681
+ end
682
+ end
683
+ }.to raise_error(NameError)
684
+ end
685
+
686
+ it 'does allow empty args' do
687
+ expect {
688
+ h = Dslh.eval(:allow_empty_args => true) do
689
+ key1 'value'
690
+ key2 100
691
+
692
+ key3 do
693
+ key31 "value31" do
694
+ key311
695
+ key312 '200'
696
+ end
697
+
698
+ key32 do
699
+ key321 "value321" do
700
+ key3211 'XXX'
701
+ key3212 :XXX
702
+ end
703
+ key322 300
704
+ end
705
+ end
706
+ end
707
+
708
+ expect(h).to eq(
709
+ {:key1=>"value",
710
+ :key2=>100,
711
+ :key3=>
712
+ {:key31=>{"value31"=>{:key311=>nil, :key312=>"200"}},
713
+ :key32=>
714
+ {:key321=>{"value321"=>{:key3211=>"XXX", :key3212=>:XXX}}, :key322=>300}}}
715
+ )
716
+ }.to_not raise_error
717
+ end
718
+
662
719
  it 'should convert hash to dsl with value_conv' do
663
720
  h = {"glossary"=>
664
721
  {"title"=>"example glossary",
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dslh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-10 00:00:00.000000000 Z
11
+ date: 2014-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: 2.11.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.11.0
55
55
  description: It define Hash as a DSL.
@@ -82,17 +82,17 @@ require_paths:
82
82
  - lib
83
83
  required_ruby_version: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ! '>='
85
+ - - '>='
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - ! '>='
90
+ - - '>='
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0'
93
93
  requirements: []
94
94
  rubyforge_project:
95
- rubygems_version: 2.1.11
95
+ rubygems_version: 2.0.14
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: It define Hash as a DSL.
@@ -101,3 +101,4 @@ test_files:
101
101
  - spec/Drupal_Single_Instance.template
102
102
  - spec/dslh_spec.rb
103
103
  - spec/spec_helper.rb
104
+ has_rdoc: