def_dsl 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 261b8110ab1aac82ab1db4c553d93761cce94976
4
+ data.tar.gz: e7143d0ab588b9c93ad750077260e5ba360a5238
5
+ SHA512:
6
+ metadata.gz: 9cf5009a0ad94abeb3f3c74a84a994f077452ef42303f95d2abbaee5998398478d8ef7a09c6eb6c2a16e1618e21e8408546f5e4f675e51333aa2f47e3cb8d99e
7
+ data.tar.gz: 46a1c3149973383fd39d21b4443a8c94c635108f8b6138229359da44f8e550d44b5b762575a91c13c54d8281334ad2abd94d4bfbcaf1a7b071f3e6a084e296ea
data/lib/def_dsl.rb CHANGED
@@ -83,6 +83,7 @@ module DefDsl
83
83
  value.is_a?(Array) ? value.last : value
84
84
  end
85
85
  def so2(name)
86
+ return [] unless @so.key? name
86
87
  value = @so[name]
87
88
  value.is_a?(Array) ? value : [value]
88
89
  end
@@ -1,3 +1,3 @@
1
1
  module DefDsl
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/exmaple_spec.rb CHANGED
@@ -11,8 +11,7 @@ describe [DefDsl,DefDSL].join' or ' do
11
11
  end
12
12
 
13
13
  extend DefDSL
14
- def_dsl Dir
15
- def_dsl File
14
+ def_dsl Dir, File
16
15
 
17
16
  file 'root.txt'
18
17
  dir 'dir' do
@@ -137,4 +136,63 @@ describe [DefDsl,DefDSL].join' or ' do
137
136
  end
138
137
  end
139
138
 
139
+
140
+ example 'lazy evaluation' do
141
+ pending
142
+ class My
143
+ class File < Struct.new :name; end
144
+ class Dir < Struct.new :name
145
+ Dir = Dir
146
+ File = File
147
+ end
148
+
149
+ extend DefDSL
150
+ def_dsl Dir, File
151
+
152
+ def initialize &block
153
+ @block = block
154
+ # block ? instance_eval(&block) : raise
155
+
156
+ # so.should == {file: so1(:file), dir: so1(:dir)}
157
+
158
+ # so1(:file).name.should == 'root.txt'
159
+ # so1(:dir).name.should == 'dir'
160
+ # (inner = so1(:dir).send(:so1,:dir)).name.should == 'inner'
161
+ # inner.send(:so2,:dir).map(&:name).should == ['empty']
162
+ # inner.send(:so2,:file).map(&:name).should == ['any']
163
+ end
164
+
165
+ def feed data
166
+ @so = nil
167
+ @data = data
168
+ instance_eval(&@block)
169
+ end
170
+ end
171
+
172
+ hook = nil
173
+
174
+ my = My.new do
175
+ file 'root.txt'
176
+ hook = @data
177
+
178
+ dir 'dir' do
179
+ raise 123
180
+ dir 'inner' do
181
+ dir 'empty'
182
+ file 'any'
183
+ end
184
+ end
185
+ end
186
+
187
+ my.feed 1
188
+ hook.should == 1
189
+ my.feed 2
190
+ hook.should == 2
191
+ end
192
+
193
+
194
+ example 'return [] if value.nil?' do
195
+ pending
196
+ end
197
+
140
198
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: def_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Alexander K
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-19 00:00:00.000000000 Z
11
+ date: 2013-04-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - '>='
60
53
  - !ruby/object:Gem::Version
@@ -82,33 +75,26 @@ files:
82
75
  homepage: https://github.com/sowcow/def_dsl
83
76
  licenses:
84
77
  - MIT
78
+ metadata: {}
85
79
  post_install_message:
86
80
  rdoc_options: []
87
81
  require_paths:
88
82
  - lib
89
83
  required_ruby_version: !ruby/object:Gem::Requirement
90
- none: false
91
84
  requirements:
92
85
  - - '>='
93
86
  - !ruby/object:Gem::Version
94
87
  version: '0'
95
- segments:
96
- - 0
97
- hash: -3785499367159931257
98
88
  required_rubygems_version: !ruby/object:Gem::Requirement
99
- none: false
100
89
  requirements:
101
90
  - - '>='
102
91
  - !ruby/object:Gem::Version
103
92
  version: '0'
104
- segments:
105
- - 0
106
- hash: -3785499367159931257
107
93
  requirements: []
108
94
  rubyforge_project:
109
- rubygems_version: 1.8.25
95
+ rubygems_version: 2.0.3
110
96
  signing_key:
111
- specification_version: 3
97
+ specification_version: 4
112
98
  summary: easy way to build dsl without use of dsl...
113
99
  test_files:
114
100
  - spec/exmaple_spec.rb