dry-logic 1.2.0 → 1.3.0

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: 1e3f807ddbab8319c1c039978115800a4f8c6d41b337815cdaf6226563716a3d
4
- data.tar.gz: 79cb10c28f23ebc523c15f4cd3da9657aeeb9923f7ed778bfaaa10c5dd59824c
3
+ metadata.gz: f9302f3c5ad02f81c99c8e873eb0b4e7ecc4c8fd2c7f964590f6f39db4f509ee
4
+ data.tar.gz: 13799ef7e9224fd519eec2b902224f9f84002dd1647f77a9584e2e4305e15e47
5
5
  SHA512:
6
- metadata.gz: ad9c5d83eb742610eddb8ea47be7a31cffcfee956223d08a1f595c90b02289d16b78e0dfe4b7ff48cf3fec7b79a586aab148a8e00afc67a9b8e0a6600f8687cc
7
- data.tar.gz: 1df8067e98f4b90ff921a1d0eccaef3e29aa1b819337110cb2b20deb2e60215433118d2ba30bd54f41e5dec634b76a65d52c18fd924992c62ba4735a5fbd97a1
6
+ metadata.gz: f16154529f4b4c74bc8e4551d147422da5e09c04981bea3b4bfafb4a5356661e2ea39fee2ff84994d9e9a886b157a92e422b6581300f755518f156f018d87372
7
+ data.tar.gz: b72cc11b159301e3ca7c2a6f0df47d8d4cc44cf3986ab931614fb2e688500c8a3437192b8bf34a0f4a976d1e18f61adcb10fe3cdbd414b20305fbbe7d6d7f1f6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## unreleased
4
+
5
+
6
+ ### Added
7
+
8
+ - `uri_rfc3986?` predicate that uses a better regexp than `uri?` (see #94 for more details) (@hieuk09)
9
+
10
+ ### Changed
11
+
12
+ - Deprecate `eql?` in favor of `is_eql?` (issue #92 via #98) (@solnic)
13
+ - Deprecate `respond_to?` in favor of `interface?` (issue #73 closed via #99) (@solnic)
14
+
15
+ [Compare v1.3.0...master](https://github.com/dry-rb/dry-logic/compare/v1.3.0...master)
16
+
17
+ ## 1.3.0 2022-10-15
18
+
19
+
20
+ ### Changed
21
+
22
+ - Use zeitwerk for auto-loading (@solnic + @flash-gordon)
23
+
24
+ [Compare v1.2.0...v1.3.0](https://github.com/dry-rb/dry-logic/compare/v1.2.0...v1.3.0)
25
+
3
26
  ## 1.2.0 2021-04-26
4
27
 
5
28
 
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2021 dry-rb team
3
+ Copyright (c) 2015-2022 dry-rb team
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ <!--- this file is synced from dry-rb/template-gem project -->
1
2
  [gem]: https://rubygems.org/gems/dry-logic
2
3
  [actions]: https://github.com/dry-rb/dry-logic/actions
3
4
  [codacy]: https://www.codacy.com/gh/dry-rb/dry-logic
@@ -10,19 +11,19 @@
10
11
  [![CI Status](https://github.com/dry-rb/dry-logic/workflows/ci/badge.svg)][actions]
11
12
  [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3ac6ea12c2dd42beb36dc3abe63d9606)][codacy]
12
13
  [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/3ac6ea12c2dd42beb36dc3abe63d9606)][codacy]
13
- [![Inline docs](http://inch-ci.org/github/dry-rb/dry-logic.svg?branch=master)][inchpages]
14
+ [![Inline docs](http://inch-ci.org/github/dry-rb/dry-logic.svg?branch=main)][inchpages]
14
15
 
15
16
  ## Links
16
17
 
17
- * [User documentation](http://dry-rb.org/gems/dry-logic)
18
+ * [User documentation](https://dry-rb.org/gems/dry-logic)
18
19
  * [API documentation](http://rubydoc.info/gems/dry-logic)
19
20
 
20
21
  ## Supported Ruby versions
21
22
 
22
23
  This library officially supports the following Ruby versions:
23
24
 
24
- * MRI >= `2.5`
25
- * jruby >= `9.2`
25
+ * MRI `>= 2.7.0`
26
+ * jruby `>= 9.3` (postponed until 2.7 is supported)
26
27
 
27
28
  ## License
28
29
 
data/dry-logic.gemspec CHANGED
@@ -1,35 +1,37 @@
1
1
  # frozen_string_literal: true
2
- # this file is managed by dry-rb/devtools project
3
2
 
4
- lib = File.expand_path('lib', __dir__)
3
+ # this file is synced from dry-rb/template-gem project
4
+
5
+ lib = File.expand_path("lib", __dir__)
5
6
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
- require 'dry/logic/version'
7
+ require "dry/logic/version"
7
8
 
8
9
  Gem::Specification.new do |spec|
9
- spec.name = 'dry-logic'
10
+ spec.name = "dry-logic"
10
11
  spec.authors = ["Piotr Solnica"]
11
12
  spec.email = ["piotr.solnica@gmail.com"]
12
- spec.license = 'MIT'
13
+ spec.license = "MIT"
13
14
  spec.version = Dry::Logic::VERSION.dup
14
15
 
15
16
  spec.summary = "Predicate logic with rule composition"
16
17
  spec.description = spec.summary
17
- spec.homepage = 'https://dry-rb.org/gems/dry-logic'
18
+ spec.homepage = "https://dry-rb.org/gems/dry-logic"
18
19
  spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-logic.gemspec", "lib/**/*"]
19
- spec.bindir = 'bin'
20
+ spec.bindir = "bin"
20
21
  spec.executables = []
21
- spec.require_paths = ['lib']
22
+ spec.require_paths = ["lib"]
22
23
 
23
- spec.metadata['allowed_push_host'] = 'https://rubygems.org'
24
- spec.metadata['changelog_uri'] = 'https://github.com/dry-rb/dry-logic/blob/master/CHANGELOG.md'
25
- spec.metadata['source_code_uri'] = 'https://github.com/dry-rb/dry-logic'
26
- spec.metadata['bug_tracker_uri'] = 'https://github.com/dry-rb/dry-logic/issues'
24
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
+ spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-logic/blob/main/CHANGELOG.md"
26
+ spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-logic"
27
+ spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-logic/issues"
27
28
 
28
- spec.required_ruby_version = ">= 2.5.0"
29
+ spec.required_ruby_version = ">= 2.7.0"
29
30
 
30
31
  # to update dependencies edit project.yml
31
32
  spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
32
- spec.add_runtime_dependency "dry-core", "~> 0.5", ">= 0.5"
33
+ spec.add_runtime_dependency "dry-core", "~> 0.9", ">= 0.9"
34
+ spec.add_runtime_dependency "zeitwerk", "~> 2.6"
33
35
 
34
36
  spec.add_development_dependency "bundler"
35
37
  spec.add_development_dependency "rake"
@@ -1,13 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic"
4
3
  require "singleton"
5
4
  require "delegate"
6
5
 
7
6
  module Dry
8
7
  module Logic
9
- autoload :Operations, "dry/logic/operations"
10
- autoload :Predicates, "dry/logic/predicates"
11
8
  module Builder
12
9
  IGNORED_OPERATIONS = %i[
13
10
  Abstract
@@ -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 Logic
7
5
  class Evaluator
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/constants"
4
- require "dry/core/equalizer"
5
- require "dry/logic/operators"
6
-
7
3
  module Dry
8
4
  module Logic
9
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/binary"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/key"
4
-
5
3
  module Dry
6
4
  module Logic
7
5
  module Operations
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/abstract"
4
-
5
3
  module Dry
6
4
  module Logic
7
5
  module Operations
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/unary"
4
- require "dry/logic/evaluator"
5
- require "dry/logic/result"
6
-
7
3
  module Dry
8
4
  module Logic
9
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/unary"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/binary"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/unary"
4
- require "dry/logic/evaluator"
5
- require "dry/logic/result"
6
-
7
3
  module Dry
8
4
  module Logic
9
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/unary"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/binary"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/abstract"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -16,7 +13,7 @@ module Dry
16
13
  success = results.all?(&:success?)
17
14
 
18
15
  Result.new(success, id) do
19
- [type, results.select(&:failure?).map { |failure| failure.to_ast }]
16
+ [type, results.select(&:failure?).map(&:to_ast)]
20
17
  end
21
18
  end
22
19
 
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/abstract"
4
-
5
3
  module Dry
6
4
  module Logic
7
5
  module Operations
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/operations/binary"
4
- require "dry/logic/result"
5
-
6
3
  module Dry
7
4
  module Logic
8
5
  module Operations
@@ -7,7 +7,24 @@ require "date"
7
7
  module Dry
8
8
  module Logic
9
9
  module Predicates
10
+ # rubocop:disable Metrics/ModuleLength
10
11
  module Methods
12
+ def self.uuid_format(version)
13
+ ::Regexp.new(<<~FORMAT.chomp, ::Regexp::IGNORECASE)
14
+ \\A[0-9A-F]{8}-[0-9A-F]{4}-#{version}[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\\z
15
+ FORMAT
16
+ end
17
+
18
+ UUIDv1 = uuid_format(1)
19
+
20
+ UUIDv2 = uuid_format(2)
21
+
22
+ UUIDv3 = uuid_format(3)
23
+
24
+ UUIDv4 = uuid_format(4)
25
+
26
+ UUIDv5 = uuid_format(5)
27
+
11
28
  def [](name)
12
29
  method(name)
13
30
  end
@@ -203,32 +220,29 @@ module Dry
203
220
  end
204
221
 
205
222
  def case?(pattern, input)
223
+ # rubocop:disable Style/CaseEquality
206
224
  pattern === input
225
+ # rubocop:enable Style/CaseEquality
207
226
  end
208
227
 
209
228
  def uuid_v1?(input)
210
- uuid_v1_format = /\A[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\z/i
211
- format?(uuid_v1_format, input)
229
+ format?(UUIDv1, input)
212
230
  end
213
231
 
214
232
  def uuid_v2?(input)
215
- uuid_v2_format = /\A[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\z/i
216
- format?(uuid_v2_format, input)
233
+ format?(UUIDv2, input)
217
234
  end
218
235
 
219
236
  def uuid_v3?(input)
220
- uuid_v3_format = /\A[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\z/i
221
- format?(uuid_v3_format, input)
237
+ format?(UUIDv3, input)
222
238
  end
223
239
 
224
240
  def uuid_v4?(input)
225
- uuid_v4_format = /\A[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\z/i
226
- format?(uuid_v4_format, input)
241
+ format?(UUIDv4, input)
227
242
  end
228
243
 
229
244
  def uuid_v5?(input)
230
- uuid_v5_format = /\A[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\z/i
231
- format?(uuid_v5_format, input)
245
+ format?(UUIDv5, input)
232
246
  end
233
247
 
234
248
  def uri?(schemes, input)
@@ -236,6 +250,10 @@ module Dry
236
250
  format?(uri_format, input)
237
251
  end
238
252
 
253
+ def uri_rfc3986?(input)
254
+ format?(URI::RFC3986_Parser::RFC3986_URI, input)
255
+ end
256
+
239
257
  def respond_to?(method, input)
240
258
  input.respond_to?(method)
241
259
  end
@@ -252,5 +270,6 @@ module Dry
252
270
  other.extend(Methods)
253
271
  end
254
272
  end
273
+ # rubocop:enable Metrics/ModuleLength
255
274
  end
256
275
  end
@@ -1,12 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/constants"
4
-
5
3
  module Dry
6
4
  module Logic
7
5
  class Result
8
- include Core::Constants
9
-
10
6
  SUCCESS = Class.new {
11
7
  def success?
12
8
  true
@@ -11,6 +11,8 @@ module Dry
11
11
  attr_reader :curried
12
12
 
13
13
  def initialize(arity, curried)
14
+ super()
15
+
14
16
  @arity = arity
15
17
  @curried = curried
16
18
 
@@ -84,11 +86,11 @@ module Dry
84
86
  end
85
87
 
86
88
  module_eval(<<~RUBY, __FILE__, __LINE__ + 1)
87
- def initialize(*)
88
- super
89
-
90
- #{assignment}
91
- end
89
+ def initialize(*) # def initialize(*)
90
+ super # super
91
+ #
92
+ #{assignment} # @arg0 = @args[0]
93
+ end # end
92
94
  RUBY
93
95
  end
94
96
 
@@ -114,17 +116,17 @@ module Dry
114
116
  application = "@predicate[#{(curried_args + unapplied_args + splat).join(", ")}]"
115
117
 
116
118
  module_eval(<<~RUBY, __FILE__, __LINE__ + 1)
117
- def call(#{parameters})
118
- if #{application}
119
- Result::SUCCESS
120
- else
121
- Result.new(false, id) { ast(#{parameters}) }
122
- end
123
- end
124
-
125
- def [](#{parameters})
126
- #{application}
127
- end
119
+ def call(#{parameters}) # def call(input0, input1, *rest)
120
+ if #{application} # if @predicate[@arg0, @arg1, input0, input1, *rest]
121
+ Result::SUCCESS # ::Dry::Logic::Result::Success
122
+ else # else
123
+ Result.new(false, id) { ast(#{parameters}) } # ::Dry::Logic::Result.new(false, id) { ast(input0, input1, *rest) }
124
+ end # end
125
+ end # end
126
+ #
127
+ def [](#{parameters}) # def [](@arg0, @arg1, input0, input1, *rest)
128
+ #{application} # @predicate[@arg0, @arg1, input0, input1, *rest]
129
+ end # end
128
130
  RUBY
129
131
  end
130
132
 
@@ -1,34 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/logic/rule"
4
-
5
3
  module Dry
6
4
  module Logic
7
- class Rule::Predicate < Rule
8
- def self.specialize(arity, curried, base = Predicate)
9
- super
10
- end
5
+ class Rule
6
+ class Predicate < Rule
7
+ def self.specialize(arity, curried, base = Predicate)
8
+ super
9
+ end
11
10
 
12
- def type
13
- :predicate
14
- end
11
+ def type
12
+ :predicate
13
+ end
15
14
 
16
- def name
17
- predicate.name
18
- end
15
+ def name
16
+ predicate.name
17
+ end
19
18
 
20
- def to_s
21
- if args.size > 0
22
- "#{name}(#{args.map(&:inspect).join(", ")})"
23
- else
24
- name.to_s
19
+ def to_s
20
+ if args.empty?
21
+ name.to_s
22
+ else
23
+ "#{name}(#{args.map(&:inspect).join(", ")})"
24
+ end
25
25
  end
26
- end
27
26
 
28
- def ast(input = Undefined)
29
- [type, [name, args_with_names(input)]]
27
+ def ast(input = Undefined)
28
+ [type, [name, args_with_names(input)]]
29
+ end
30
+ alias_method :to_ast, :ast
30
31
  end
31
- alias_method :to_ast, :ast
32
32
  end
33
33
  end
34
34
  end
@@ -1,11 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "concurrent/map"
4
- require "dry/core/constants"
5
- require "dry/core/equalizer"
6
- require "dry/logic/operations"
7
- require "dry/logic/result"
8
- require "dry/logic/rule/interface"
9
4
 
10
5
  module Dry
11
6
  module Logic
@@ -78,7 +73,7 @@ module Dry
78
73
  end
79
74
 
80
75
  def eval_args(object)
81
- with(args: args.map { |arg| UnboundMethod === arg ? arg.bind(object).() : arg })
76
+ with(args: args.map { |arg| arg.is_a?(UnboundMethod) ? arg.bind(object).() : arg })
82
77
  end
83
78
 
84
79
  def with(new_opts)
@@ -1,15 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry/core/constants"
4
-
5
- require "dry/logic/rule"
6
- require "dry/logic/rule/predicate"
7
-
8
3
  module Dry
9
4
  module Logic
10
5
  class RuleCompiler
11
- include Core::Constants
12
-
13
6
  attr_reader :predicates
14
7
 
15
8
  def initialize(predicates)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module Logic
5
- VERSION = "1.2.0"
5
+ VERSION = "1.3.0"
6
6
  end
7
7
  end
data/lib/dry/logic.rb CHANGED
@@ -1,11 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # A collection of micro-libraries, each intended to encapsulate
4
- # a common task in Ruby
3
+ require "zeitwerk"
4
+ require "dry/core"
5
+
5
6
  module Dry
6
7
  module Logic
8
+ include Dry::Core::Constants
9
+
10
+ def self.loader
11
+ @loader ||= Zeitwerk::Loader.new.tap do |loader|
12
+ root = File.expand_path("..", __dir__)
13
+ loader.tag = "dry-logic"
14
+ loader.inflector = Zeitwerk::GemInflector.new("#{root}/dry-logic.rb")
15
+ loader.push_dir(root)
16
+ loader.ignore(
17
+ "#{root}/dry-logic.rb",
18
+ "#{root}/dry/logic/version.rb"
19
+ )
20
+ end
21
+ end
22
+
23
+ loader.setup
7
24
  end
8
25
  end
9
-
10
- require "dry/logic/rule/predicate"
11
- require "dry/logic/operations"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-logic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-26 00:00:00.000000000 Z
11
+ date: 2022-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -30,20 +30,34 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.5'
33
+ version: '0.9'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: '0.5'
36
+ version: '0.9'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '0.5'
43
+ version: '0.9'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '0.5'
46
+ version: '0.9'
47
+ - !ruby/object:Gem::Dependency
48
+ name: zeitwerk
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.6'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.6'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: bundler
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -102,7 +116,6 @@ files:
102
116
  - lib/dry/logic/appliable.rb
103
117
  - lib/dry/logic/builder.rb
104
118
  - lib/dry/logic/evaluator.rb
105
- - lib/dry/logic/operations.rb
106
119
  - lib/dry/logic/operations/abstract.rb
107
120
  - lib/dry/logic/operations/and.rb
108
121
  - lib/dry/logic/operations/attr.rb
@@ -129,10 +142,10 @@ licenses:
129
142
  - MIT
130
143
  metadata:
131
144
  allowed_push_host: https://rubygems.org
132
- changelog_uri: https://github.com/dry-rb/dry-logic/blob/master/CHANGELOG.md
145
+ changelog_uri: https://github.com/dry-rb/dry-logic/blob/main/CHANGELOG.md
133
146
  source_code_uri: https://github.com/dry-rb/dry-logic
134
147
  bug_tracker_uri: https://github.com/dry-rb/dry-logic/issues
135
- post_install_message:
148
+ post_install_message:
136
149
  rdoc_options: []
137
150
  require_paths:
138
151
  - lib
@@ -140,15 +153,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
153
  requirements:
141
154
  - - ">="
142
155
  - !ruby/object:Gem::Version
143
- version: 2.5.0
156
+ version: 2.7.0
144
157
  required_rubygems_version: !ruby/object:Gem::Requirement
145
158
  requirements:
146
159
  - - ">="
147
160
  - !ruby/object:Gem::Version
148
161
  version: '0'
149
162
  requirements: []
150
- rubygems_version: 3.1.6
151
- signing_key:
163
+ rubygems_version: 3.3.7
164
+ signing_key:
152
165
  specification_version: 4
153
166
  summary: Predicate logic with rule composition
154
167
  test_files: []
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "dry/logic/operations/and"
4
- require "dry/logic/operations/or"
5
- require "dry/logic/operations/xor"
6
- require "dry/logic/operations/implication"
7
- require "dry/logic/operations/negation"
8
-
9
- require "dry/logic/operations/key"
10
- require "dry/logic/operations/attr"
11
- require "dry/logic/operations/each"
12
- require "dry/logic/operations/set"
13
- require "dry/logic/operations/check"
14
-
15
- require "dry/logic/operators"