alki-dsl 0.4.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.adoc +59 -9
- data/alki-dsl.gemspec +1 -1
- data/lib/alki/dsl/base.rb +17 -9
- data/lib/alki/dsl/class_helpers.rb +0 -10
- data/lib/alki/dsl/evaluator.rb +55 -33
- data/lib/alki/dsl/evaluator_instance.rb +17 -0
- data/lib/alki/dsl/merge.rb +2 -4
- data/lib/alki/dsl/version.rb +1 -1
- data/lib/alki/dsls/class.rb +3 -1
- data/lib/alki/dsls/dsl.rb +29 -3
- data/test/feature/config_test.rb +1 -10
- data/test/feature/merge_test.rb +65 -0
- data/test/feature/runtime_requires.rb +5 -0
- data/test/feature_test_helper.rb +8 -0
- data/test/fixtures/example/lib/alki_test/dsls/simple.rb +1 -1
- data/test/fixtures/example/merged.rb +3 -0
- data/test/integration/class_builder_test.rb +1 -1
- data/test/unit/evaluator_test.rb +2 -2
- metadata +14 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4450c3089f0ffa33bd64349a3f6a06e3e2c93192
|
4
|
+
data.tar.gz: 81c39bf6c311568c9b1ab3e633209622bc8c2798
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56fe3c9044b3e0f416b363615269344ec5150292a422964fed7c05002e614b4cd7feb7a6137738287d443cfc2f8d3ef8aae3c061f776b7019573131e5cbf5124
|
7
|
+
data.tar.gz: a5d8ce35078e0cf74a313dbfbb7da8ce5312955dac27b06ba3c92582b06dee58d917cc1e055ca64f5ad4c390bde769b01ccd2214291f71974afeee05af9856de
|
data/README.adoc
CHANGED
@@ -57,7 +57,7 @@ Or install it yourself as:
|
|
57
57
|
|
58
58
|
All DSLs created with Alki::Dsl are Class objects with `::build` methods. These build methods take an optional
|
59
59
|
hash of parameters, along with a ruby block to be evaluated. DSLs created with Alki::Dsl cannot directly
|
60
|
-
strings.
|
60
|
+
evaluate strings, just ruby blocks.
|
61
61
|
|
62
62
|
While DSLs can be created with Alki::Dsl manually, the easiest way is to use the provided "dsl" DSL. Each
|
63
63
|
DSL defines any number of "dsl methods", which are methods that will be exposed to the user of the DSL.
|
@@ -124,10 +124,57 @@ puts result
|
|
124
124
|
|
125
125
|
```
|
126
126
|
|
127
|
+
#### Helpers ####
|
128
|
+
|
129
|
+
In addition to defining dsl methods, the 'dsl' DSL also allows defining helper methods,
|
130
|
+
which can be called within other dsls that require it.
|
131
|
+
|
132
|
+
```ruby
|
133
|
+
require 'alki/dsl'
|
134
|
+
|
135
|
+
strings_dsl = Alki::Dsl.build 'alki/dsls/dsl' do
|
136
|
+
init do
|
137
|
+
ctx[:strings] = []
|
138
|
+
end
|
139
|
+
|
140
|
+
helper :set_separator do |sep|
|
141
|
+
ctx[:separator] = sep
|
142
|
+
end
|
143
|
+
|
144
|
+
dsl_method :add do |val|
|
145
|
+
ctx[:strings] << val
|
146
|
+
end
|
147
|
+
|
148
|
+
finish do
|
149
|
+
sep = ctx[:separator] || "\n"
|
150
|
+
ctx[:result] = ctx[:strings].join(sep)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
my_dsl = Alki::Dsl.build 'alki/dsls/dsl' do
|
155
|
+
require_dsl strings_dsl
|
156
|
+
|
157
|
+
dsl_method :separator do |sep|
|
158
|
+
set_separator sep # Call helper from strings_dsl
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
result = my_dsl.build do
|
163
|
+
separator ' '
|
164
|
+
|
165
|
+
add "hello"
|
166
|
+
add "world"
|
167
|
+
end
|
168
|
+
|
169
|
+
puts result
|
170
|
+
|
171
|
+
# output: hello world
|
172
|
+
```
|
173
|
+
|
127
174
|
### Using with Alki::Loader
|
128
175
|
|
129
|
-
https://github.com/alki-project/alki-loader[Alki::Loader] is library that
|
130
|
-
|
176
|
+
https://github.com/alki-project/alki-loader[Alki::Loader] is a library that extends Ruby's `require` method.
|
177
|
+
It can be used to associate "builder" objects with files
|
131
178
|
or directories so that the code within them is processed by the builder object when they are loaded. More
|
132
179
|
documentation can be found at the Alki::Loader https://github.com/alki-project/alki-loader[github page].
|
133
180
|
|
@@ -142,6 +189,7 @@ To register it create a `lib/alki_loader.rb` file:
|
|
142
189
|
|
143
190
|
.lib/alki_loader.rb
|
144
191
|
```ruby
|
192
|
+
# Treat all ruby source files in lib/my_project/dsls as DSL definition files
|
145
193
|
Alki::Loader.register 'my_project/dsls', builder: 'alki/dsls/dsl'
|
146
194
|
```
|
147
195
|
|
@@ -155,7 +203,8 @@ The DSL class can be passed directly instead of the load string.
|
|
155
203
|
****
|
156
204
|
|
157
205
|
Now a DSL definition file can be created in `lib/my_project/dsls`. Revisiting the previous example, a "strings"
|
158
|
-
can be created.
|
206
|
+
dsl file can be created. Because the file has been registered with the 'alki/dsls/dsl' builder,
|
207
|
+
it will be automatically processed as a DSL definition when loaded.
|
159
208
|
|
160
209
|
.lib/my_project/dsls/strings.rb
|
161
210
|
```ruby
|
@@ -217,16 +266,17 @@ Alki do
|
|
217
266
|
end
|
218
267
|
```
|
219
268
|
|
220
|
-
So what if we want to use our DSL with Alki::Loader as well? First,
|
221
|
-
define a constant with the correct name
|
222
|
-
that makes this easy. First lets create a new DSL that adapts our transformable_strings DSL into a
|
223
|
-
|
269
|
+
So what if we want to use our DSL with Alki::Loader as well? First, our DSL right now produces
|
270
|
+
a string, but Alki::Loader requires builders to define a constant with the correct name. Alki::Dsl comes with a
|
271
|
+
"class" DSL that makes this easy. First lets create a new DSL that adapts our transformable_strings DSL into a one
|
272
|
+
that defines a module.
|
224
273
|
|
225
274
|
.lib/my_project/dsls/strings_class.rb
|
226
275
|
```ruby
|
227
276
|
Alki do
|
228
277
|
require_dsl 'alki/dsls/class'
|
229
|
-
require_dsl 'my_project/dsls/transformable_strings', :after # This makes it's finish
|
278
|
+
require_dsl 'my_project/dsls/transformable_strings', :after # This makes it's finish hook
|
279
|
+
# run before ours
|
230
280
|
|
231
281
|
finish do
|
232
282
|
# Helpers provided by alki/dsls/class
|
data/alki-dsl.gemspec
CHANGED
data/lib/alki/dsl/base.rb
CHANGED
@@ -6,8 +6,8 @@ module Alki
|
|
6
6
|
class Base
|
7
7
|
extend Alki::Dsl::Builder
|
8
8
|
|
9
|
-
def self.generate(ctx)
|
10
|
-
obj = new(ctx)
|
9
|
+
def self.generate(evaluator,ctx)
|
10
|
+
obj = new(ctx,evaluator)
|
11
11
|
result = {methods: {}}
|
12
12
|
info = self.dsl_info
|
13
13
|
|
@@ -25,7 +25,18 @@ module Alki
|
|
25
25
|
result[:methods][name] = obj.method method
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
|
+
if info[:helpers]
|
30
|
+
info[:helpers].each do |method|
|
31
|
+
if method.is_a?(Array)
|
32
|
+
name, method = method
|
33
|
+
else
|
34
|
+
name = method
|
35
|
+
end
|
36
|
+
result[:helpers][name] = obj.method method
|
37
|
+
end
|
38
|
+
end
|
39
|
+
evaluator.update result
|
29
40
|
end
|
30
41
|
|
31
42
|
def self.dsl_info
|
@@ -33,15 +44,12 @@ module Alki
|
|
33
44
|
end
|
34
45
|
|
35
46
|
def self.helpers
|
36
|
-
|
37
|
-
[self::Helpers]
|
38
|
-
else
|
39
|
-
[]
|
40
|
-
end
|
47
|
+
[]
|
41
48
|
end
|
42
49
|
|
43
|
-
def initialize(ctx)
|
50
|
+
def initialize(ctx,evaluator)
|
44
51
|
@ctx = ctx
|
52
|
+
@evaluator = evaluator
|
45
53
|
end
|
46
54
|
|
47
55
|
attr_reader :ctx
|
@@ -47,16 +47,6 @@ module Alki
|
|
47
47
|
}
|
48
48
|
end
|
49
49
|
|
50
|
-
def add_helper(name,&blk)
|
51
|
-
add_method name, &blk
|
52
|
-
add_method name, subclass: 'Helpers', &blk
|
53
|
-
end
|
54
|
-
|
55
|
-
def add_helper_module(mod)
|
56
|
-
add_module mod
|
57
|
-
add_module mod, subclass: 'Helpers'
|
58
|
-
end
|
59
|
-
|
60
50
|
def add_initialize_param(name,opts={},&default)
|
61
51
|
name = name.to_sym
|
62
52
|
param = default ? [name,default] : name
|
data/lib/alki/dsl/evaluator.rb
CHANGED
@@ -1,54 +1,71 @@
|
|
1
1
|
require 'set'
|
2
2
|
require 'alki/support'
|
3
|
+
require 'alki/dsl/evaluator_instance'
|
3
4
|
|
4
5
|
module Alki
|
5
6
|
module Dsl
|
6
7
|
class Evaluator
|
7
|
-
def
|
8
|
+
def self.evaluate(dsl, data={}, &blk)
|
9
|
+
evaluator = new(dsl,data)
|
10
|
+
evaluator.evaluate &blk
|
11
|
+
evaluator.finish
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(dsl,data)
|
8
15
|
@inits = []
|
9
16
|
@finishers = []
|
10
17
|
@processors = []
|
11
18
|
@dsls_seen = Set.new
|
19
|
+
@data = data
|
20
|
+
@mod = (data[:module] ||= Module.new)
|
21
|
+
@dsl = dsl
|
22
|
+
evaluator = self
|
23
|
+
define_dsl_method :method_missing do |meth,*args,&b|
|
24
|
+
evaluator.context.send meth, *args, &b
|
25
|
+
end
|
26
|
+
process_dsl @dsl
|
12
27
|
end
|
13
28
|
|
14
|
-
def
|
15
|
-
|
16
|
-
|
29
|
+
def build(data={},&blk)
|
30
|
+
self.class.evaluate(@dsl,data,&blk)
|
31
|
+
end
|
17
32
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
dsl_exec mod, &blk
|
23
|
-
@finishers.reverse_each(&:call)
|
24
|
-
clear_dsl_methods mod
|
33
|
+
def process_dsl(dsl)
|
34
|
+
return unless @dsls_seen.add? dsl
|
35
|
+
dsl.generate(self,@data)
|
36
|
+
end
|
25
37
|
|
26
|
-
|
27
|
-
|
28
|
-
else
|
29
|
-
data
|
30
|
-
end
|
38
|
+
def context
|
39
|
+
Thread.current[:__alki_dsl_context]
|
31
40
|
end
|
32
41
|
|
33
|
-
def
|
34
|
-
|
35
|
-
|
42
|
+
def evaluate(&blk)
|
43
|
+
Thread.current[:__alki_dsl_context] = @data[:context] || blk.binding.receiver
|
44
|
+
@mod.class_exec &blk
|
45
|
+
end
|
46
|
+
|
47
|
+
def require_dsl(source,dsl)
|
48
|
+
dsl_class = Alki.load(dsl)
|
49
|
+
dsl_class.new(EvaluatorInstance.new(self,@data))
|
50
|
+
end
|
51
|
+
|
52
|
+
def update(cbs)
|
36
53
|
after_requires = []
|
37
54
|
if cbs[:requires]
|
38
55
|
cbs[:requires].each do |(required_dsl,order)|
|
39
56
|
case order
|
40
57
|
when :before
|
41
|
-
process_dsl Alki.load(required_dsl)
|
58
|
+
process_dsl Alki.load(required_dsl)
|
42
59
|
when :after
|
43
|
-
after_requires << [Alki.load(required_dsl)
|
60
|
+
after_requires << [Alki.load(required_dsl)]
|
44
61
|
end
|
45
62
|
end
|
46
63
|
end
|
47
|
-
|
64
|
+
cbs[:init].call if cbs[:init]
|
48
65
|
@finishers << cbs[:finish] if cbs[:finish]
|
49
66
|
if cbs[:methods]
|
50
67
|
cbs[:methods].each do |name, proc|
|
51
|
-
define_dsl_method
|
68
|
+
define_dsl_method name, &proc
|
52
69
|
end
|
53
70
|
end
|
54
71
|
after_requires.each do |process_args|
|
@@ -56,22 +73,27 @@ module Alki
|
|
56
73
|
end
|
57
74
|
end
|
58
75
|
|
59
|
-
def define_dsl_method(
|
60
|
-
mod.define_singleton_method name, &blk
|
76
|
+
def define_dsl_method(name,&blk)
|
77
|
+
@mod.define_singleton_method name, &blk
|
61
78
|
end
|
62
79
|
|
63
|
-
def
|
64
|
-
|
65
|
-
|
80
|
+
def finish
|
81
|
+
@finishers.reverse_each(&:call)
|
82
|
+
clear_dsl_methods
|
83
|
+
|
84
|
+
if @data.key? :result
|
85
|
+
@data[:result]
|
86
|
+
else
|
87
|
+
@data
|
66
88
|
end
|
67
89
|
end
|
68
90
|
|
69
|
-
|
70
|
-
mod.class_exec &blk
|
71
|
-
end
|
91
|
+
private
|
72
92
|
|
73
|
-
def
|
74
|
-
|
93
|
+
def clear_dsl_methods
|
94
|
+
@mod.singleton_methods do |m|
|
95
|
+
@mod.singleton_class.send :remove_method, m
|
96
|
+
end
|
75
97
|
end
|
76
98
|
end
|
77
99
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Alki
|
2
|
+
module Dsl
|
3
|
+
class EvaluatorInstance
|
4
|
+
attr_reader :data
|
5
|
+
|
6
|
+
def initialize(evaluator,data,dsl)
|
7
|
+
@evaluator = evaluator
|
8
|
+
@data = data
|
9
|
+
@dsl = dsl
|
10
|
+
end
|
11
|
+
|
12
|
+
def require_dsl(dsl)
|
13
|
+
@evaluator.require_dsl(self,dsl)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/alki/dsl/merge.rb
CHANGED
data/lib/alki/dsl/version.rb
CHANGED
data/lib/alki/dsls/class.rb
CHANGED
data/lib/alki/dsls/dsl.rb
CHANGED
@@ -5,8 +5,25 @@ require 'alki/dsl/class_helpers'
|
|
5
5
|
module Alki
|
6
6
|
module Dsls
|
7
7
|
class Dsl < Alki::Dsl::Base
|
8
|
-
|
9
|
-
|
8
|
+
module Helpers
|
9
|
+
include Alki::Dsl::ClassHelpers
|
10
|
+
|
11
|
+
def add_helper(name,&blk)
|
12
|
+
add_method name, &blk
|
13
|
+
add_method name, subclass: 'Helpers', &blk
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_helper_module(mod)
|
17
|
+
add_module mod
|
18
|
+
add_module mod, subclass: 'Helpers'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
include Helpers
|
23
|
+
|
24
|
+
def self.helpers
|
25
|
+
[Helpers]
|
26
|
+
end
|
10
27
|
|
11
28
|
def self.dsl_info
|
12
29
|
{
|
@@ -68,7 +85,8 @@ module Alki
|
|
68
85
|
|
69
86
|
def finish
|
70
87
|
set_super_class 'alki/dsl/base'
|
71
|
-
|
88
|
+
create_as_module(subclass: 'Helpers')
|
89
|
+
|
72
90
|
add_class_method :helpers do
|
73
91
|
[self::Helpers]
|
74
92
|
end
|
@@ -76,6 +94,14 @@ module Alki
|
|
76
94
|
add_class_method :dsl_info do
|
77
95
|
info
|
78
96
|
end
|
97
|
+
|
98
|
+
add_method(:require_dsl,private: true) do |dsl,order=:before|
|
99
|
+
dsl_class = Alki.load dsl
|
100
|
+
dsl_class.helpers.each do |helper|
|
101
|
+
self.singleton_class.send :include, helper
|
102
|
+
end
|
103
|
+
@evaluator.update requires: [[dsl,order]]
|
104
|
+
end
|
79
105
|
end
|
80
106
|
end
|
81
107
|
end
|
data/test/feature/config_test.rb
CHANGED
@@ -1,11 +1,7 @@
|
|
1
|
-
|
1
|
+
require 'alki/feature_test'
|
2
2
|
require 'alki/dsl'
|
3
3
|
|
4
4
|
describe 'dsl configuration' do
|
5
|
-
before do
|
6
|
-
$LOAD_PATH.unshift fixture_path('example','lib')
|
7
|
-
end
|
8
|
-
|
9
5
|
it 'should be automatically loaded when requiring a dsl' do
|
10
6
|
require 'alki_test/dsls/number'
|
11
7
|
AlkiTest::Dsls::Number.must_be_instance_of Class
|
@@ -16,9 +12,4 @@ describe 'dsl configuration' do
|
|
16
12
|
require 'alki_test/numbers/three'
|
17
13
|
AlkiTest::Numbers::Three.new.must_equal 3
|
18
14
|
end
|
19
|
-
|
20
|
-
it 'should allow using Alki::Dsl.merge to merge dsls together' do
|
21
|
-
require 'alki_test/numbers/three'
|
22
|
-
AlkiTest::Numbers::Three.simple.must_equal true
|
23
|
-
end
|
24
15
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'alki/feature_test'
|
2
|
+
|
3
|
+
describe 'Merging Dsls' do
|
4
|
+
before do
|
5
|
+
@dsl1 = build_dsl do
|
6
|
+
init do
|
7
|
+
ctx[:result] << :init1
|
8
|
+
end
|
9
|
+
helper :do_one do
|
10
|
+
ctx[:result] << :one
|
11
|
+
end
|
12
|
+
dsl_method :one do
|
13
|
+
do_one
|
14
|
+
end
|
15
|
+
finish do
|
16
|
+
ctx[:result] << :finish1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
@dsl2 = build_dsl do
|
20
|
+
init do
|
21
|
+
ctx[:result] << :init2
|
22
|
+
end
|
23
|
+
helper :do_two do
|
24
|
+
ctx[:result] << :two
|
25
|
+
end
|
26
|
+
dsl_method :two do
|
27
|
+
do_two
|
28
|
+
end
|
29
|
+
finish do
|
30
|
+
ctx[:result] << :finish2
|
31
|
+
end
|
32
|
+
end
|
33
|
+
@merged = Alki::Dsl.merge(@dsl1,@dsl2)
|
34
|
+
end
|
35
|
+
|
36
|
+
def build(dsl = @merged,&blk)
|
37
|
+
dsl.build result: [], &(blk || ->{})
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should run init and finish blocks of both dsls in order' do
|
41
|
+
build.must_equal %i(init1 init2 finish2 finish1)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should expose dsl methods of both dsls' do
|
45
|
+
result = build { one; two }
|
46
|
+
result.must_include :one
|
47
|
+
result.must_include :two
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should provide helpers from both dsls when required by another dsl' do
|
51
|
+
merged = @merged
|
52
|
+
dsl = build_dsl do
|
53
|
+
require_dsl merged
|
54
|
+
|
55
|
+
finish do
|
56
|
+
do_one
|
57
|
+
do_two
|
58
|
+
end
|
59
|
+
end
|
60
|
+
result = build(dsl)
|
61
|
+
|
62
|
+
result.must_include :one
|
63
|
+
result.must_include :two
|
64
|
+
end
|
65
|
+
end
|
data/test/unit/evaluator_test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alki-dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Edlefsen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: alki-support
|
@@ -39,25 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: alki-testing
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 5.9.1
|
47
|
+
version: '0.1'
|
51
48
|
type: :development
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
52
|
- - "~>"
|
56
53
|
- !ruby/object:Gem::Version
|
57
|
-
version: '
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 5.9.1
|
54
|
+
version: '0.1'
|
61
55
|
description: Library for defining and using DSLs
|
62
56
|
email:
|
63
57
|
- matt.edlefsen@gmail.com
|
@@ -75,15 +69,20 @@ files:
|
|
75
69
|
- lib/alki/dsl/builder.rb
|
76
70
|
- lib/alki/dsl/class_helpers.rb
|
77
71
|
- lib/alki/dsl/evaluator.rb
|
72
|
+
- lib/alki/dsl/evaluator_instance.rb
|
78
73
|
- lib/alki/dsl/merge.rb
|
79
74
|
- lib/alki/dsl/version.rb
|
80
75
|
- lib/alki/dsls/class.rb
|
81
76
|
- lib/alki/dsls/dsl.rb
|
82
77
|
- test/feature/config_test.rb
|
78
|
+
- test/feature/merge_test.rb
|
79
|
+
- test/feature/runtime_requires.rb
|
80
|
+
- test/feature_test_helper.rb
|
83
81
|
- test/fixtures/example/lib/alki_loader.rb
|
84
82
|
- test/fixtures/example/lib/alki_test/dsls/number.rb
|
85
83
|
- test/fixtures/example/lib/alki_test/dsls/simple.rb
|
86
84
|
- test/fixtures/example/lib/alki_test/dsls/value.rb
|
85
|
+
- test/fixtures/example/merged.rb
|
87
86
|
- test/fixtures/example/numbers/three.rb
|
88
87
|
- test/integration/class_builder_test.rb
|
89
88
|
- test/test_helper.rb
|
@@ -114,10 +113,14 @@ specification_version: 4
|
|
114
113
|
summary: Alki dsl library
|
115
114
|
test_files:
|
116
115
|
- test/feature/config_test.rb
|
116
|
+
- test/feature/merge_test.rb
|
117
|
+
- test/feature/runtime_requires.rb
|
118
|
+
- test/feature_test_helper.rb
|
117
119
|
- test/fixtures/example/lib/alki_loader.rb
|
118
120
|
- test/fixtures/example/lib/alki_test/dsls/number.rb
|
119
121
|
- test/fixtures/example/lib/alki_test/dsls/simple.rb
|
120
122
|
- test/fixtures/example/lib/alki_test/dsls/value.rb
|
123
|
+
- test/fixtures/example/merged.rb
|
121
124
|
- test/fixtures/example/numbers/three.rb
|
122
125
|
- test/integration/class_builder_test.rb
|
123
126
|
- test/test_helper.rb
|