dry-schema 1.10.2 → 1.10.3

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: 0e0f30051a5014afc7cf0dc8f66f23a20f05e83dd3b2a970491d85d84e5be988
4
- data.tar.gz: 771b790fd369f36abf86367a95afaac387825df4b041bdc325c02f7f41cd3487
3
+ metadata.gz: 52498945533408be846a7c22b278471bb1e45fec87b9b3a994eee33034009fff
4
+ data.tar.gz: 1b5f542e5c07fb57a67cd7fa2062bf17a51bcc6acf2e9ba4955468f42a9c4b08
5
5
  SHA512:
6
- metadata.gz: 12759b86883bd94e85480124539c44a3280491935a86addacd02c799696cce5d5e1cec54238b17d89c05cbe704e2394ac4749c9349e9f8e1bbe6ed92f344af73
7
- data.tar.gz: 57b2a77a57ef8587a3a520eeecc7cc3dd5d766a92ba5096ed2306c0e466ee0c9580e7550c3ef475e88eb61a58ce7c92de3860442e29455f5590ccfa0bd7b5eda
6
+ metadata.gz: d189171c08a31c3011ff9747890eb3286f019edd2a5ec6f8bb28c9dcfd1b623886d52cdd88715bac608c1adf58d0ffd139c68a228799d207d1353821f16f5dd9
7
+ data.tar.gz: 105ac239e814c3ce1b40641137c5b9bf01dbd3c077d3891606773e4825f92c90a37d1248f6b352f75b77bafc80b52b2a0c1d4b719ec3a4a5fde09c186f6dd4f5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 1.10.3 2019-10-10
4
+
5
+
6
+ ### Fixed
7
+
8
+ - Addressed regressions causing issues with handling sum types (see #419 and #423 fixed via #425) (@robhanlon22)
9
+
10
+
11
+ [Compare v1.10.2...v1.10.3](https://github.com/dry-rb/dry-schema/compare/v1.10.2...v1.10.3)
12
+
3
13
  ## 1.10.2 2022-08-23
4
14
 
5
15
 
data/dry-schema.gemspec CHANGED
@@ -36,10 +36,10 @@ Gem::Specification.new do |spec|
36
36
  # to update dependencies edit project.yml
37
37
  spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
38
38
  spec.add_runtime_dependency "dry-configurable", "~> 0.13", ">= 0.13.0"
39
- spec.add_runtime_dependency "dry-core", "~> 0.5", ">= 0.5"
39
+ spec.add_runtime_dependency "dry-core", "~> 0.9", ">= 0.9"
40
40
  spec.add_runtime_dependency "dry-initializer", "~> 3.0"
41
- spec.add_runtime_dependency "dry-logic", "~> 1.0"
42
- spec.add_runtime_dependency "dry-types", "~> 1.5"
41
+ spec.add_runtime_dependency "dry-logic", "~> 1.3"
42
+ spec.add_runtime_dependency "dry-types", "~> 1.6"
43
43
 
44
44
  spec.add_development_dependency "bundler"
45
45
  spec.add_development_dependency "rake"
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/rule_compiler"
4
3
  require "dry/schema/namespaced_rule"
5
4
  require "dry/schema/predicate_registry"
6
5
 
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/equalizer"
4
- require "dry/configurable"
5
-
6
3
  require "dry/schema/constants"
7
4
  require "dry/schema/predicate_registry"
8
5
  require "dry/schema/type_container"
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "pathname"
4
- require "dry/core/constants"
5
4
 
6
5
  module Dry
7
6
  # Common constants used across the library
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/cache"
4
- require "dry/core/equalizer"
5
-
6
3
  module Dry
7
4
  module Schema
8
5
  # Coerces keys in a hash using provided coercer function
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/equalizer"
4
- require "dry/core/cache"
5
3
  require "dry/schema/constants"
6
4
  require "dry/schema/key"
7
5
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operators"
4
-
5
3
  require "dry/schema/macros/core"
6
4
  require "dry/schema/predicate_inferrer"
7
5
  require "dry/schema/primitive_inferrer"
@@ -85,6 +83,24 @@ module Dry
85
83
  end
86
84
  end
87
85
 
86
+ # Set type specification and predicates for a maybe value
87
+ #
88
+ # @example
89
+ # required(:name).maybe(:string)
90
+ #
91
+ # @see Macros::Key#value
92
+ #
93
+ # @return [Macros::Key]
94
+ #
95
+ # @api public
96
+ def maybe(*args, **opts, &block)
97
+ extract_type_spec(args, nullable: true) do |*predicates, type_spec:, type_rule:|
98
+ append_macro(Macros::Maybe) do |macro|
99
+ macro.call(*predicates, type_spec: type_spec, type_rule: type_rule, **opts, &block)
100
+ end
101
+ end
102
+ end
103
+
88
104
  # Specify a nested hash without enforced `hash?` type-check
89
105
  #
90
106
  # This is a simpler building block than `hash` macro, use it
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/types/type"
4
3
  require "dry/schema/macros/dsl"
5
4
 
6
5
  module Dry
@@ -13,12 +13,15 @@ module Dry
13
13
  def call(*predicates, **opts, &block)
14
14
  ensure_valid_predicates(predicates)
15
15
 
16
- if opts[:type_spec] && !filter_empty_string?
17
- value(predicates[0], :filled?, *predicates[1..predicates.size - 1], **opts, &block)
18
- elsif opts[:type_rule]
19
- value(:filled?).value(*predicates, **opts, &block)
20
- else
21
- value(:filled?, *predicates, **opts, &block)
16
+ append_macro(Macros::Value) do |macro|
17
+ if opts[:type_spec] && !filter_empty_string?
18
+ macro.call(predicates[0], :filled?, *predicates[1..predicates.size - 1], **opts,
19
+ &block)
20
+ elsif opts[:type_rule]
21
+ macro.call(:filled?).value(*predicates, **opts, &block)
22
+ else
23
+ macro.call(:filled?, *predicates, **opts, &block)
24
+ end
22
25
  end
23
26
  end
24
27
 
@@ -32,24 +32,6 @@ module Dry
32
32
  end
33
33
  ruby2_keywords(:filter) if respond_to?(:ruby2_keywords, true)
34
34
 
35
- # Set type specification and predicates for a maybe value
36
- #
37
- # @example
38
- # required(:name).maybe(:string)
39
- #
40
- # @see Macros::Key#value
41
- #
42
- # @return [Macros::Key]
43
- #
44
- # @api public
45
- def maybe(*args, **opts, &block)
46
- extract_type_spec(args, nullable: true) do |*predicates, type_spec:, type_rule:|
47
- append_macro(Macros::Maybe) do |macro|
48
- macro.call(*predicates, type_spec: type_spec, type_rule: type_rule, **opts, &block)
49
- end
50
- end
51
- end
52
-
53
35
  # Coerce macro to a rule
54
36
  #
55
37
  # @return [Dry::Logic::Rule]
@@ -19,7 +19,9 @@ module Dry
19
19
  raise ::Dry::Schema::InvalidSchemaError, "Using maybe with nil? predicate is redundant"
20
20
  end
21
21
 
22
- value(*args, **opts, &block)
22
+ append_macro(Macros::Value) do |macro|
23
+ macro.call(*args, **opts, &block)
24
+ end
23
25
 
24
26
  self
25
27
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/initializer"
4
- require "dry/core/equalizer"
5
4
 
6
5
  require "dry/schema/path"
7
6
  require "dry/schema/message/or"
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/equalizer"
4
-
5
3
  module Dry
6
4
  module Schema
7
5
  # A set of messages used to generate errors
@@ -2,8 +2,6 @@
2
2
 
3
3
  require "set"
4
4
  require "concurrent/map"
5
- require "dry/core/equalizer"
6
- require "dry/configurable"
7
5
 
8
6
  require "dry/schema/constants"
9
7
  require "dry/schema/messages/template"
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/initializer"
4
- require "dry/core/equalizer"
5
4
 
6
5
  require "dry/schema/constants"
7
6
 
@@ -3,7 +3,6 @@
3
3
  require "yaml"
4
4
  require "pathname"
5
5
 
6
- require "dry/core/equalizer"
7
6
  require "dry/schema/constants"
8
7
  require "dry/schema/messages/abstract"
9
8
 
@@ -169,11 +168,9 @@ module Dry
169
168
  text = input.gsub("%", "#")
170
169
 
171
170
  # rubocop:disable Security/Eval
172
- # rubocop:disable Style/DocumentDynamicEvalDefinition
173
171
  evaluator = eval(<<~RUBY, EMPTY_CONTEXT, __FILE__, __LINE__ + 1)
174
172
  -> (#{tokens.map { |token| "#{token}:" }.join(", ")}) { "#{text}" }
175
173
  RUBY
176
- # rubocop:enable Style/DocumentDynamicEvalDefinition
177
174
  # rubocop:enable Security/Eval
178
175
 
179
176
  {
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/equalizer"
4
- require "dry/logic/operators"
5
-
6
3
  module Dry
7
4
  module Schema
8
5
  # Predicate objects used within the DSL
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/types/predicate_inferrer"
4
-
5
3
  module Dry
6
4
  module Schema
7
5
  # @api private
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/predicates"
4
- require "dry/types/predicate_registry"
5
-
6
3
  module Dry
7
4
  module Schema
8
5
  # A registry with predicate objects from `Dry::Logic::Predicates`
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/types/primitive_inferrer"
4
-
5
3
  module Dry
6
4
  module Schema
7
5
  # @api private
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/configurable"
4
3
  require "dry/initializer"
5
- require "dry/logic/operators"
6
4
 
7
5
  require "dry/schema/type_registry"
8
6
  require "dry/schema/type_container"
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dry/initializer"
4
- require "dry/core/equalizer"
5
4
 
6
5
  require "dry/schema/path"
7
6
 
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/equalizer"
4
3
  require "dry/initializer"
5
4
 
6
5
  module Dry
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module Schema
5
- VERSION = "1.10.2"
5
+ VERSION = "1.10.3"
6
6
  end
7
7
  end
data/lib/dry/schema.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/extensions"
3
+ require "dry/core"
4
4
  require "dry/configurable"
5
5
  require "dry/logic"
6
+ require "dry/types"
6
7
 
7
8
  require "dry/schema/config"
8
9
  require "dry/schema/constants"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.2
4
+ version: 1.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-23 00:00:00.000000000 Z
11
+ date: 2022-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -50,20 +50,20 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.5'
53
+ version: '0.9'
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: '0.5'
56
+ version: '0.9'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '0.5'
63
+ version: '0.9'
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: '0.5'
66
+ version: '0.9'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: dry-initializer
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -84,28 +84,28 @@ dependencies:
84
84
  requirements:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: '1.0'
87
+ version: '1.3'
88
88
  type: :runtime
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '1.0'
94
+ version: '1.3'
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: dry-types
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '1.5'
101
+ version: '1.6'
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '1.5'
108
+ version: '1.6'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: bundler
111
111
  requirement: !ruby/object:Gem::Requirement