dry-schema 1.10.2 → 1.10.3

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: 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