dry-configurable 0.11.5 → 0.11.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0faa56dea70f112144295394747175b526e116cdfd09d3ccfa047b85dd06b11
4
- data.tar.gz: 48fc6304ef41ea05076765bbe8f7286e90ed69ee54b388650d3654b74b4ebfda
3
+ metadata.gz: d76fbe81b58bc0a6d0e5abb5f135e32e6eb7f47533af60864a09e0143b3ea66c
4
+ data.tar.gz: 33f74bd69c1f030477088d32e80024969983e8dd793c58c89264828edc207a90
5
5
  SHA512:
6
- metadata.gz: 9c6c284433350053c27e745a8bcb0a0c000c22d4fe684c39eeb20340d026b764f8d80ee155a30ba88af66f4e9ba1022e1572accfa5aff4657b463978534d964e
7
- data.tar.gz: ed4d650fb3f2d7f92d05bad9575c452bf67138489a734e91ccc4fb6d9fa5932a6dee72430a84c7b2994b8d28bb42a6d7c4dda8e5b82e9ce51ac588a0888f1b2b
6
+ metadata.gz: aef6696e55e9ec56e46fabc857db9f1c2c8e266efad943844faf574d2d7d224829ca14457f66c8082f016d4cbdcb7f6bc9a1f33f641c743621c3b998d2f604d4
7
+ data.tar.gz: 11ab00f69b7c172d23d6de19a2f0a208bbd83ecd91b865cb591d18df0f91fd4578d487fb2acd71a88e4b89477a17e602816999847cad4fc0671139aa68e11d00
@@ -1,3 +1,13 @@
1
+ ## unreleased
2
+
3
+
4
+ ### Changed
5
+
6
+ - A meaningful error is raised when the extension is included more than once (issue #89 fixed via #94) (@landongrindheim)
7
+ - Evaluate setting input immediately when input is provided. This allows for earlier feedback from constructors designed to raise errors on invalid input (#95) (@timriley)
8
+
9
+ [Compare v0.11.5...master](https://github.com/dry-rb/dry-configurable/compare/v0.11.5...master)
10
+
1
11
  ## 0.11.5 2020-03-23
2
12
 
3
13
 
@@ -5,6 +15,9 @@
5
15
 
6
16
  - 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
17
 
18
+ ### Changed
19
+
20
+ - A meaningful error is raised when the extension is included more than once (issue #89 fixed via #94) (@landongrindheim)
8
21
 
9
22
  [Compare v0.11.4...v0.11.5](https://github.com/dry-rb/dry-configurable/compare/v0.11.4...v0.11.5)
10
23
 
@@ -7,6 +7,7 @@ require 'dry/configurable/class_methods'
7
7
  require 'dry/configurable/instance_methods'
8
8
  require 'dry/configurable/config'
9
9
  require 'dry/configurable/setting'
10
+ require 'dry/configurable/errors'
10
11
 
11
12
  module Dry
12
13
  # A simple configuration mixin
@@ -51,6 +52,8 @@ module Dry
51
52
 
52
53
  # @api private
53
54
  def self.included(klass)
55
+ raise AlreadyIncluded if klass.include?(InstanceMethods)
56
+
54
57
  super
55
58
  klass.class_eval do
56
59
  extend(ClassMethods)
@@ -6,6 +6,7 @@ module Dry
6
6
  # @api public
7
7
  module Configurable
8
8
  Error = Class.new(::StandardError)
9
+ AlreadyIncluded = ::Class.new(Error)
9
10
  FrozenConfig = ::Class.new(Error)
10
11
  end
11
12
  end
@@ -60,6 +60,8 @@ module Dry
60
60
  @input = input.equal?(Undefined) ? default : input
61
61
  @default = default
62
62
  @options = options
63
+
64
+ evaluate if input_defined?
63
65
  end
64
66
 
65
67
  # @api private
@@ -3,6 +3,6 @@
3
3
  module Dry
4
4
  module Configurable
5
5
  # @api public
6
- VERSION = '0.11.5'
6
+ VERSION = '0.11.6'
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.5
4
+ version: 0.11.6
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-23 00:00:00.000000000 Z
11
+ date: 2020-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby