producer-core 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/recipe_compose_macro.feature +15 -0
- data/lib/producer/core/recipe.rb +12 -2
- data/lib/producer/core/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5f4fa779cf02e6e7082cb3ab5d3243f40f21228
|
4
|
+
data.tar.gz: c453810ddc78867a9b54e985028c823113ffed51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47986a1c3029cd9a2aeb0802effefcb30b83c5ea63113a027151cc7f699cfebbc07cc7d4b43f99490e6e8b2680b02e329ed534697e2dea3ced753d68298d0749
|
7
|
+
data.tar.gz: fc68bd2f2f62402b15478a232b82ebdf1fa54925f027d32cdf32da70691b2a20c0c9656a23d2c61290eea12b28b03a6528f727a0df1470e47351ba4ba6786c0d
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Feature: `compose_macro' recipe keyword
|
2
|
+
|
3
|
+
Scenario: allows macro composition
|
4
|
+
Given a recipe with:
|
5
|
+
"""
|
6
|
+
macro :hello do |prefix, *args|
|
7
|
+
echo 'hello %s %s' % [prefix, args.join(', ')]
|
8
|
+
end
|
9
|
+
|
10
|
+
compose_macro :hello_composed, :hello, 'composed'
|
11
|
+
|
12
|
+
hello_composed :foo, :bar
|
13
|
+
"""
|
14
|
+
When I successfully execute the recipe
|
15
|
+
Then the output must contain "hello composed foo, bar"
|
data/lib/producer/core/recipe.rb
CHANGED
@@ -5,6 +5,10 @@ module Producer
|
|
5
5
|
def define_macro(name, block)
|
6
6
|
define_method(name) { |*args| task name, *args, &block }
|
7
7
|
end
|
8
|
+
|
9
|
+
def compose_macro(name, meth, *base_args)
|
10
|
+
define_method(name) { |*args| send meth, *(base_args + args) }
|
11
|
+
end
|
8
12
|
end
|
9
13
|
|
10
14
|
attr_reader :env, :tasks
|
@@ -27,8 +31,14 @@ module Producer
|
|
27
31
|
end
|
28
32
|
|
29
33
|
def macro(name, &block)
|
30
|
-
define_singleton_method
|
31
|
-
task
|
34
|
+
define_singleton_method name do |*args|
|
35
|
+
task "#{name}", *args, &block
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def compose_macro(name, meth, *base_args)
|
40
|
+
define_singleton_method name do |*args|
|
41
|
+
send meth, *(base_args + args)
|
32
42
|
end
|
33
43
|
end
|
34
44
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: producer-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thibault Jouan
|
@@ -133,6 +133,7 @@ files:
|
|
133
133
|
- features/cli_usage.feature
|
134
134
|
- features/cli_verbose.feature
|
135
135
|
- features/condition_negated_test.feature
|
136
|
+
- features/recipe_compose_macro.feature
|
136
137
|
- features/recipe_macro.feature
|
137
138
|
- features/recipe_source.feature
|
138
139
|
- features/recipe_target.feature
|
@@ -267,6 +268,7 @@ test_files:
|
|
267
268
|
- features/cli_usage.feature
|
268
269
|
- features/cli_verbose.feature
|
269
270
|
- features/condition_negated_test.feature
|
271
|
+
- features/recipe_compose_macro.feature
|
270
272
|
- features/recipe_macro.feature
|
271
273
|
- features/recipe_source.feature
|
272
274
|
- features/recipe_target.feature
|