dry-configurable 0.11.4 → 0.11.5

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: 0ce88823de6e7eee294f11a792b0f22448792fdb5a716208aae79218877600ae
4
- data.tar.gz: 256cb4668c2f734701f9b70869b5c3e836ca487e3b87d569e702f180b2703976
3
+ metadata.gz: f0faa56dea70f112144295394747175b526e116cdfd09d3ccfa047b85dd06b11
4
+ data.tar.gz: 48fc6304ef41ea05076765bbe8f7286e90ed69ee54b388650d3654b74b4ebfda
5
5
  SHA512:
6
- metadata.gz: dd015b360b01f42e98f2df1936b5ebadbf027077fc6e7be5ff9c8aee06a1973099e67ef26488ffca0c869d45c988c5534a7d4c616d5a3ac8616fe04f337077b1
7
- data.tar.gz: f2f69619243a1e9571060da0b568b804711ed70f100f6facf3e3eee6c7fcbcd47034ca71d25e51a47f582b0e5ed68332ad4f80d3f86fbb4442c10184d1dae351
6
+ metadata.gz: 9c6c284433350053c27e745a8bcb0a0c000c22d4fe684c39eeb20340d026b764f8d80ee155a30ba88af66f4e9ba1022e1572accfa5aff4657b463978534d964e
7
+ data.tar.gz: ed4d650fb3f2d7f92d05bad9575c452bf67138489a734e91ccc4fb6d9fa5932a6dee72430a84c7b2994b8d28bb42a6d7c4dda8e5b82e9ce51ac588a0888f1b2b
@@ -1,3 +1,13 @@
1
+ ## 0.11.5 2020-03-23
2
+
3
+
4
+ ### Fixed
5
+
6
+ - When settings are copied or cloned, unevaluated values will no longer be copied. This prevents unintended crashes when settings have constructors expecting a certain type of value, but that value is yet to be provided (Fixed via #87) (@timriley)
7
+
8
+
9
+ [Compare v0.11.4...v0.11.5](https://github.com/dry-rb/dry-configurable/compare/v0.11.4...v0.11.5)
10
+
1
11
  ## 0.11.4 2020-03-16
2
12
 
3
13
 
@@ -62,11 +62,21 @@ module Dry
62
62
  @options = options
63
63
  end
64
64
 
65
+ # @api private
66
+ def input_defined?
67
+ !input.equal?(Undefined)
68
+ end
69
+
65
70
  # @api private
66
71
  def value
67
72
  @value ||= evaluate
68
73
  end
69
74
 
75
+ # @api private
76
+ def evaluated?
77
+ instance_variable_defined?(:@value)
78
+ end
79
+
70
80
  # @api private
71
81
  def nested(settings)
72
82
  Nested.new(name, input: settings, **options)
@@ -107,7 +117,7 @@ module Dry
107
117
  # @api private
108
118
  def initialize_copy(source)
109
119
  super
110
- @value = source.value.dup if source.clonable_value?
120
+ @value = source.value.dup if source.input_defined? && source.clonable_value?
111
121
  @options = source.options.dup
112
122
  end
113
123
 
@@ -3,6 +3,6 @@
3
3
  module Dry
4
4
  module Configurable
5
5
  # @api public
6
- VERSION = '0.11.4'
6
+ VERSION = '0.11.5'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-configurable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.4
4
+ version: 0.11.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Holland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-16 00:00:00.000000000 Z
11
+ date: 2020-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby