def_dsl 0.0.3 → 0.0.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 +7 -0
- data/lib/def_dsl.rb +1 -0
- data/lib/def_dsl/version.rb +1 -1
- data/spec/exmaple_spec.rb +60 -2
- metadata +5 -19
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
data/lib/def_dsl/version.rb
CHANGED
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.
|
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-
|
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:
|
95
|
+
rubygems_version: 2.0.3
|
110
96
|
signing_key:
|
111
|
-
specification_version:
|
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
|