dslh 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
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: