hanami-utils 2.0.0.rc1 → 2.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: e32b8748a32b673f476ffc41c81608f5e6d372f610e990594488c214e27fdfd1
4
- data.tar.gz: 0e043561435c85f622bd8a1b1f341a5ad77b1359578fd00923c0ee19c6150b63
3
+ metadata.gz: 5921ff2b972c982e6370bc45f65f18dd83f9b561bf226214f215f422a6ba90aa
4
+ data.tar.gz: a069b9d22b0e29e1d034e58742624e6337d055d2e8c8933150e020d73fb63cb1
5
5
  SHA512:
6
- metadata.gz: dbedf69794dbd7ee0ae949ef77a2891fe29c5439feb7cb3c6e2e91b87b3fae16f74e6f624357e646cb68c47668120d5be0cc8e8961c198c75106f0636cb4373e
7
- data.tar.gz: 615330821eadb25847032710fff58adab597281783b09767e92da9ecf3523cb511dff516ed5f6640d06b5d8d5cfaaa8c93ffcb45f1be5db520ec7ccdb058a84d
6
+ metadata.gz: 2e8e26ae2287bd68e9c278b6166f4cea01cec1eb6e69c2795f26aabd6631b13027e2b65cccde55a664b3f54a0c3b564f5017e49ad46cc07592019fafc0241b1a
7
+ data.tar.gz: f26fe52741c1e7c2b0e9fcc10f1118947148f37dbd8b49003995236317591c8901bc28efb4b372f155b868247a76818bef6d6072b2f9e72dd2556eb1707d0f6c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  Ruby core extensions and class utilities for Hanami
4
4
 
5
+ ## v2.0.1 - 2022-12-06
6
+
7
+ ### Fixed
8
+
9
+ - [Tim Riley] Make `Hanami::Utils::Callbacks::Chain` and `Hanami::Utils::Callbacks::Callback` comparable via `#==` based on their contents, rather than their object identity
10
+
11
+ ## v2.0.0 - 2022-11-22
12
+
5
13
  ## v2.0.0.rc1 - 2022-11-08
6
14
 
7
15
  ### Fixed
data/hanami-utils.gemspec CHANGED
@@ -20,7 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.metadata["rubygems_mfa_required"] = "true"
21
21
  spec.required_ruby_version = ">= 3.0"
22
22
 
23
- spec.add_dependency "dry-transformer", "~> 0.1"
23
+ spec.add_dependency "dry-core", "~> 1.0", "< 2"
24
+ spec.add_dependency "dry-transformer", "~> 1.0", "< 2"
24
25
  spec.add_dependency "concurrent-ruby", "~> 1.0"
25
26
 
26
27
  spec.add_development_dependency "bundler", ">= 1.6", "< 3"
@@ -1,11 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hanami
4
+ # Shared Rack middleware for Hanami apps.
5
+ #
6
+ # This module is defined in hanami-utils so that any gem providing middleware can use its
7
+ # resources.
8
+ #
9
+ # @since 2.0.0
4
10
  module Middleware
5
- # Hanami middleware utils
6
-
11
+ # Base class for all errors raised during middleware loading.
12
+ #
7
13
  # @since 2.0.0
8
- class Error < ::StandardError
14
+ # @api public
15
+ class Error < StandardError
9
16
  end
10
17
  end
11
18
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "concurrent/array"
4
+ require "dry/core"
4
5
 
5
6
  module Hanami
6
7
  module Utils
@@ -14,6 +15,8 @@ module Hanami
14
15
  # @since 0.1.0
15
16
  # @private
16
17
  class Chain
18
+ include Dry.Equalizer(:chain)
19
+
17
20
  # Returns a new chain
18
21
  #
19
22
  # @return [Hanami::Utils::Callbacks::Chain]
@@ -235,6 +238,8 @@ module Hanami
235
238
  # @since 0.1.0
236
239
  # @api private
237
240
  class Callback
241
+ include Dry.Equalizer(:callback)
242
+
238
243
  # @api private
239
244
  attr_reader :callback
240
245
 
@@ -71,33 +71,6 @@ module Hanami
71
71
  def self.load(name, namespace = Object)
72
72
  load!(name, namespace) if namespace.const_defined?(name.to_s, false)
73
73
  end
74
-
75
- def self.tokenize(pattern)
76
- if match = TOKENIZE_REGEXP.match(pattern)
77
- pre = match.pre_match
78
- post = match.post_match
79
- tokens = match[1].split(TOKENIZE_SEPARATOR)
80
- tokens.each do |token|
81
- yield("#{pre}#{token}#{post}")
82
- end
83
- else
84
- yield(pattern)
85
- end
86
-
87
- nil
88
- end
89
-
90
- # Regexp for .tokenize
91
- #
92
- # @since 1.3.0
93
- # @api private
94
- TOKENIZE_REGEXP = /\((.*)\)/
95
-
96
- # Separator for .tokenize
97
- #
98
- # @since 1.3.0
99
- # @api private
100
- TOKENIZE_SEPARATOR = "|"
101
74
  end
102
75
  end
103
76
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry-transformer"
3
+ require "dry/transformer"
4
4
 
5
5
  module Hanami
6
6
  module Utils
@@ -35,10 +35,20 @@ module Hanami
35
35
 
36
36
  # rubocop:disable Style/ClassVars
37
37
  if defined?(MultiJson)
38
+ # @since 0.8.0
39
+ # @api private
38
40
  @@engine = MultiJsonAdapter.new
41
+
42
+ # @since 0.8.0
43
+ # @api private
39
44
  ParserError = MultiJson::ParseError
40
45
  else
46
+ # @since 0.8.0
47
+ # @api private
41
48
  @@engine = ::JSON
49
+
50
+ # @since 0.8.0
51
+ # @api private
42
52
  ParserError = ::JSON::ParserError
43
53
  end
44
54
  # rubocop:enable Style/ClassVars
@@ -5,6 +5,7 @@ require "date"
5
5
  require "time"
6
6
  require "pathname"
7
7
  require "bigdecimal"
8
+ require "bigdecimal/util"
8
9
  require "hanami/utils"
9
10
  require "hanami/utils/string"
10
11
 
@@ -7,12 +7,16 @@ module Hanami
7
7
  # It doesn't check if you're writing to a file or anything, so you have to
8
8
  # check that yourself before using this module.
9
9
  #
10
+ # @api public
10
11
  # @since 1.2.0
11
12
  module ShellColor
12
- # Unknown color code error
13
+ # Error raised for unknown color codes.
13
14
  #
14
15
  # @since 1.2.0
16
+ # @api public
15
17
  class UnknownColorCodeError < ::StandardError
18
+ # @since 1.2.0
19
+ # @api private
16
20
  def initialize(code)
17
21
  super("unknown color code: `#{code.inspect}'")
18
22
  end
@@ -2,7 +2,10 @@
2
2
 
3
3
  module Hanami
4
4
  module Utils
5
+ # The current hanami-utils version.
6
+ #
7
+ # @since 0.1.0
5
8
  # @api public
6
- VERSION = "2.0.0.rc1"
9
+ VERSION = "2.0.1"
7
10
  end
8
11
  end
metadata CHANGED
@@ -1,29 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-08 00:00:00.000000000 Z
11
+ date: 2022-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: dry-transformer
15
35
  requirement: !ruby/object:Gem::Requirement
16
36
  requirements:
17
37
  - - "~>"
18
38
  - !ruby/object:Gem::Version
19
- version: '0.1'
39
+ version: '1.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '2'
20
43
  type: :runtime
21
44
  prerelease: false
22
45
  version_requirements: !ruby/object:Gem::Requirement
23
46
  requirements:
24
47
  - - "~>"
25
48
  - !ruby/object:Gem::Version
26
- version: '0.1'
49
+ version: '1.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '2'
27
53
  - !ruby/object:Gem::Dependency
28
54
  name: concurrent-ruby
29
55
  requirement: !ruby/object:Gem::Requirement
@@ -149,9 +175,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
175
  version: '3.0'
150
176
  required_rubygems_version: !ruby/object:Gem::Requirement
151
177
  requirements:
152
- - - ">"
178
+ - - ">="
153
179
  - !ruby/object:Gem::Version
154
- version: 1.3.1
180
+ version: '0'
155
181
  requirements: []
156
182
  rubygems_version: 3.3.3
157
183
  signing_key: