rake_factory 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/TODO.md +0 -1
- data/lib/rake_factory/parameter.rb +12 -7
- data/lib/rake_factory/task_set.rb +8 -10
- data/lib/rake_factory/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c815db5da66495882fbc92d46432c5dedbe24691a2fca240b160cf6f7b9d9154
|
4
|
+
data.tar.gz: 11719ce245bc8895a95bbb19f3a909230ca806117c535ade77f4860b32cdb414
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 351eb6ae9bbb386a7f010260675172a6c2497277bb29c933227acd23f36c75e2be19534eb33322edde8660a3785c0de0d88882d9bd7102d25ef0904fd1230bcf
|
7
|
+
data.tar.gz: b66ef640012fb6f1030af864589ccc14bc50a6f4c96cec7979e7928ff49f44045a4e2f8add3fc38146637950368e277a3dbf21c558ab8f4a91fc356ef86051c2
|
data/Gemfile.lock
CHANGED
data/TODO.md
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
* Create TaskSet base class
|
@@ -5,6 +5,7 @@ module RakeFactory
|
|
5
5
|
:default,
|
6
6
|
:required,
|
7
7
|
:configurable,
|
8
|
+
:lazy,
|
8
9
|
:transform)
|
9
10
|
attr_writer(:default)
|
10
11
|
|
@@ -12,9 +13,10 @@ module RakeFactory
|
|
12
13
|
@name = name
|
13
14
|
@default = options[:default] || nil
|
14
15
|
@required = options[:required] || false
|
16
|
+
@transform = options[:transform] || lambda { |x| x }
|
17
|
+
@lazy = options[:lazy].nil? ? false : !!options[:lazy]
|
15
18
|
@configurable =
|
16
19
|
options[:configurable].nil? ? true : !!options[:configurable]
|
17
|
-
@transform = options[:transform] || lambda { |x| x }
|
18
20
|
end
|
19
21
|
|
20
22
|
def writer_method
|
@@ -37,12 +39,15 @@ module RakeFactory
|
|
37
39
|
end
|
38
40
|
|
39
41
|
define_method parameter.reader_method do
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
value_resolver = lambda do |t|
|
43
|
+
stored_value = instance_variable_get(parameter.instance_variable)
|
44
|
+
resolved_value = stored_value.respond_to?(:call) ?
|
45
|
+
stored_value.call(*[t].slice(0, stored_value.arity)) :
|
46
|
+
stored_value
|
47
|
+
transformed_value = parameter.transform.call(resolved_value)
|
48
|
+
transformed_value
|
49
|
+
end
|
50
|
+
parameter.lazy ? value_resolver : value_resolver.call(self)
|
46
51
|
end
|
47
52
|
end
|
48
53
|
end
|
@@ -48,23 +48,21 @@ module RakeFactory
|
|
48
48
|
|
49
49
|
def parameter_hash
|
50
50
|
arguments.first.is_a?(Hash) ?
|
51
|
-
|
52
|
-
|
51
|
+
arguments.first :
|
52
|
+
{}
|
53
53
|
end
|
54
54
|
|
55
55
|
def resolve
|
56
56
|
if arguments.empty?
|
57
|
-
|
58
|
-
resolved_parameter_hash =
|
59
|
-
process_parameter_hash(resolved_parameter_hash)
|
60
|
-
return [resolved_parameter_hash]
|
57
|
+
return [parameter_overrides]
|
61
58
|
end
|
62
59
|
|
63
60
|
if arguments.first.is_a?(Hash)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
61
|
+
return [
|
62
|
+
process_parameter_hash(arguments.first)
|
63
|
+
.merge(parameter_overrides),
|
64
|
+
*arguments.drop(1)
|
65
|
+
]
|
68
66
|
end
|
69
67
|
|
70
68
|
arguments
|
data/lib/rake_factory/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake_factory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|