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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d70ea35bceef77a7c68633a8dd7859301bab82a82dfb233a8a4da549391c992c
4
- data.tar.gz: ca2df6b0a8d14418145122051fda1ef15fd4ddf27a3c686bfd0b5ae3ee6099e9
3
+ metadata.gz: c815db5da66495882fbc92d46432c5dedbe24691a2fca240b160cf6f7b9d9154
4
+ data.tar.gz: 11719ce245bc8895a95bbb19f3a909230ca806117c535ade77f4860b32cdb414
5
5
  SHA512:
6
- metadata.gz: 14e48671b2498a3349c3c83670fa865cf4b9cce24e996bcdb39397fb99138457901183af164622e6c82012285e413d70d97143c689de8fe3b8054a4b09dd57f1
7
- data.tar.gz: a515bf269b42255663b5f0775a494a5f1dd74cabd7751599e3e4549f19c1ebf18dab89738ef3f173f47b2df421238f74bbe70c7000b2e011d785207951ddf595
6
+ metadata.gz: 351eb6ae9bbb386a7f010260675172a6c2497277bb29c933227acd23f36c75e2be19534eb33322edde8660a3785c0de0d88882d9bd7102d25ef0904fd1230bcf
7
+ data.tar.gz: b66ef640012fb6f1030af864589ccc14bc50a6f4c96cec7979e7928ff49f44045a4e2f8add3fc38146637950368e277a3dbf21c558ab8f4a91fc356ef86051c2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_factory (0.6.0)
4
+ rake_factory (0.7.0)
5
5
  activesupport (~> 5.2)
6
6
  rake (~> 13.0)
7
7
 
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
- stored_value = instance_variable_get(parameter.instance_variable)
41
- resolved_value = stored_value.respond_to?(:call) ?
42
- stored_value.call(*[self].slice(0, stored_value.arity)) :
43
- stored_value
44
- transformed_value = parameter.transform.call(resolved_value)
45
- transformed_value
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
- arguments.first :
52
- {}
51
+ arguments.first :
52
+ {}
53
53
  end
54
54
 
55
55
  def resolve
56
56
  if arguments.empty?
57
- resolved_parameter_hash = parameter_overrides
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
- resolved_parameter_hash = arguments.first.merge(parameter_overrides)
65
- resolved_parameter_hash =
66
- process_parameter_hash(resolved_parameter_hash)
67
- return [resolved_parameter_hash, *arguments.drop(1)]
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
@@ -1,3 +1,3 @@
1
1
  module RakeFactory
2
- VERSION = '0.6.0'
2
+ VERSION = '0.7.0'
3
3
  end
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.6.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-12 00:00:00.000000000 Z
11
+ date: 2020-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake