producer-core 0.3.1 → 0.3.2
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 +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
|