hanami-utils 2.0.0.rc1 → 2.0.1
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/hanami-utils.gemspec +2 -1
- data/lib/hanami/middleware.rb +10 -3
- data/lib/hanami/utils/callbacks.rb +5 -0
- data/lib/hanami/utils/class.rb +0 -27
- data/lib/hanami/utils/hash.rb +1 -1
- data/lib/hanami/utils/json.rb +10 -0
- data/lib/hanami/utils/kernel.rb +1 -0
- data/lib/hanami/utils/shell_color.rb +5 -1
- data/lib/hanami/utils/version.rb +4 -1
- metadata +32 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5921ff2b972c982e6370bc45f65f18dd83f9b561bf226214f215f422a6ba90aa
|
4
|
+
data.tar.gz: a069b9d22b0e29e1d034e58742624e6337d055d2e8c8933150e020d73fb63cb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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-
|
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"
|
data/lib/hanami/middleware.rb
CHANGED
@@ -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
|
-
#
|
6
|
-
|
11
|
+
# Base class for all errors raised during middleware loading.
|
12
|
+
#
|
7
13
|
# @since 2.0.0
|
8
|
-
|
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
|
|
data/lib/hanami/utils/class.rb
CHANGED
@@ -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
|
data/lib/hanami/utils/hash.rb
CHANGED
data/lib/hanami/utils/json.rb
CHANGED
@@ -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
|
data/lib/hanami/utils/kernel.rb
CHANGED
@@ -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
|
-
#
|
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
|
data/lib/hanami/utils/version.rb
CHANGED
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.
|
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
|
+
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
|
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
|
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:
|
180
|
+
version: '0'
|
155
181
|
requirements: []
|
156
182
|
rubygems_version: 3.3.3
|
157
183
|
signing_key:
|