dry-initializer 3.0.0 → 3.0.1

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: d65124ac530b85023e9152387677a694f2cab063b484ba48133ed8006fc79c2a
4
- data.tar.gz: e35526cc7df9ad5271485742f75991e397c06c04af8029003ebdd567974f763c
3
+ metadata.gz: e17a987f9500b55fd7bf3c60caa5e8ce5c4c26cb78b94f339b62a63bdeb5a9e3
4
+ data.tar.gz: 362138efc7974312bf747f060c7af4d4117e6b8c7648849998c1aefb39d14b1e
5
5
  SHA512:
6
- metadata.gz: ad262ac79a0191fdaee557a4d1f1b48fbb3c3dc57af0cd639077277dffe52fcecb979db69af0b5f00c803006ceab893d7a057ae085006fc343ef742e2b6f0a2a
7
- data.tar.gz: 7b79bd6d05a8a9a7bb239b35cd12629dbd8eda35721916d06b7d04dac7639d361f04958e3a3ace67f5267163c27ae983ad4cb63bbf003efc96cdcf25d9028099
6
+ metadata.gz: fc4416e43fce6418f4708f5d7fc6753096009e9f2087f334bc11a2edeb44b3f9099d6d53ad9969d7e38ffefa524031c0e95fd4c7cb277ff7fed1a9ff63ebad5b
7
+ data.tar.gz: a2745ea32279c9e6bd9a964b0cef5e876bf3f02afd604b4193e6223d629fc1ca6ee8fd22cf1543d652b9ff5548b3bb9a7fc28c7a06f4eeb04cf233b4ccf451de
@@ -5,6 +5,40 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
+ ## [3.0.1] [2019-04-15]
9
+
10
+ ### Fixed
11
+
12
+ - Usage of underscored names of `option`-s and `param`-s (nepalez)
13
+
14
+ You can use any sequence of underscores except for in nested types.
15
+ In nested types single underscores can be used to split alphanumeric
16
+ parts only.
17
+
18
+ ```ruby
19
+ class Test
20
+ extend Dry::Initializer
21
+
22
+ # Proper usage
23
+ option :foo_bar do
24
+ option :__foo__, proc(&:to_s)
25
+ end
26
+ end
27
+
28
+ # Improper usage
29
+ option :__foo__ do
30
+ # ...
31
+ end
32
+
33
+ option :foo__bar do
34
+ # ...
35
+ end
36
+ end
37
+ ```
38
+
39
+ This restriction is necessary because we constantize option/param names
40
+ when defining nested structs.
41
+
8
42
  ## [3.0.0] [2019-04-14]
9
43
 
10
44
  ### Added
@@ -846,3 +880,4 @@ First public release
846
880
  [2.6.0]: https://github.com/dry-rb/dry-initializer/compare/v2.4.0...v2.5.0
847
881
  [2.6.0]: https://github.com/dry-rb/dry-initializer/compare/v2.5.0...v2.6.0
848
882
  [3.0.0]: https://github.com/dry-rb/dry-initializer/compare/v2.5.0...v3.0.0
883
+ [3.0.1]: https://github.com/dry-rb/dry-initializer/compare/v3.0.0...v3.0.1
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = "dry-initializer"
3
- gem.version = "3.0.0"
3
+ gem.version = "3.0.1"
4
4
  gem.author = ["Vladimir Kochnev (marshall-lee)", "Andrew Kozin (nepalez)"]
5
5
  gem.email = "andrew.kozin@gmail.com"
6
6
  gem.homepage = "https://github.com/dry-rb/dry-initializer"
@@ -13,7 +13,7 @@ module Dry::Initializer::Dispatchers::BuildNestedType
13
13
  # rubocop: disable Metrics/ParameterLists
14
14
  def call(parent:, source:, target:, type: nil, block: nil, **options)
15
15
  check_certainty!(source, type, block)
16
- check_name!(target)
16
+ check_name!(target, block)
17
17
  type ||= build_nested_type(parent, target, block)
18
18
  { parent: parent, source: source, target: target, type: type, **options }
19
19
  end
@@ -22,8 +22,8 @@ module Dry::Initializer::Dispatchers::BuildNestedType
22
22
  private
23
23
 
24
24
  def check_certainty!(source, type, block)
25
- return unless type
26
25
  return unless block
26
+ return unless type
27
27
 
28
28
  raise ArgumentError, <<~MESSAGE
29
29
  You should define coercer of values of argument '#{source}'
@@ -31,7 +31,8 @@ module Dry::Initializer::Dispatchers::BuildNestedType
31
31
  MESSAGE
32
32
  end
33
33
 
34
- def check_name!(name)
34
+ def check_name!(name, block)
35
+ return unless block
35
36
  return unless name[/^_|__|_$/]
36
37
 
37
38
  raise ArgumentError, <<~MESSAGE
@@ -5,14 +5,14 @@ describe "type constraint" do
5
5
  before do
6
6
  class Test::Foo
7
7
  extend Dry::Initializer
8
- param :foo, proc(&:to_s), optional: true
8
+ param :__foo__, proc(&:to_s), optional: true
9
9
  end
10
10
  end
11
11
 
12
12
  subject { Test::Foo.new :foo }
13
13
 
14
14
  it "coerces a value" do
15
- expect(subject.foo).to eq "foo"
15
+ expect(subject.__foo__).to eq "foo"
16
16
  end
17
17
  end
18
18
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-initializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Kochnev (marshall-lee)
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-04-14 00:00:00.000000000 Z
12
+ date: 2019-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec