hanami-utils 1.3.0 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 14fa2723546dd3196fd104ec3e2c365c8268c106835f0675f0ee8d02a38dc538
4
- data.tar.gz: c43ad54f3b64f2fa951a463e52d2606fb5636b61760659aecebe2c26d0023953
3
+ metadata.gz: 0ce0408c150374d1f7aef2ef64925d468895f53482d8b72100a11a22afb39e3a
4
+ data.tar.gz: 988097d501d059411c20bacca9f0f08d815f686a99e1ddbc104d79f7b2b3c77b
5
5
  SHA512:
6
- metadata.gz: 0df1dd08087fe3798db40986b7aeb271150a044cbaa6f3bf0fa0a2ba6fe699425c39bce3b03e94d5fc196955739c359ff69704df921c2fd855c714926e16f849
7
- data.tar.gz: 2f72e791f1d0dd907751207084067d689d525bc76fcec513ff79dc2391488e067faab205eacabf85f0ad170a5c0d7c5cf3ba1fc2e5e26b07859276c52ebe9ca6
6
+ metadata.gz: f6ede67a74c58108af91dd720a90fc51968e55486ad4a3267979ef2cf2b401f5280e644e72569f3c08a70e003903cc277ae3d73efde003612444729f55173971
7
+ data.tar.gz: 274ec74358b9792014daaba6c212ac7fae5970742aa748ba1eec4ae21840de0dc7503ff4f2b153ec552f1c5462f9c12299d6198ea7be01e35a1434c4968833ba
@@ -1,6 +1,15 @@
1
1
  # Hanami::Utils
2
2
  Ruby core extentions and class utilities for Hanami
3
3
 
4
+ ## v1.3.1 - 2019-01-18
5
+ ### Added
6
+ - [Luca Guidi] Official support for Ruby: MRI 2.6
7
+ - [Luca Guidi] Support `bundler` 2.0+
8
+
9
+ ### Fixed
10
+ - [Alfonso Uceda] Fix `Hash` serialization for `Utils::Logger`
11
+ - [Jeff Dickey] Add missing `pathname` require in `lib/hanami/utils.rb`
12
+
4
13
  ## v1.3.0 - 2018-10-24
5
14
 
6
15
  ## v1.3.0.beta1 - 2018-08-08
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'transproc', '~> 1.0'
22
22
  spec.add_dependency 'concurrent-ruby', '~> 1.0'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.6'
24
+ spec.add_development_dependency 'bundler', '>= 1.6', '< 3'
25
25
  spec.add_development_dependency 'rake', '~> 12'
26
26
  spec.add_development_dependency 'rspec', '~> 3.7'
27
27
  end
@@ -1,3 +1,5 @@
1
+ require 'pathname'
2
+
1
3
  # Hanami - The web, with simplicity
2
4
  #
3
5
  # @since 0.1.0
@@ -9,7 +9,7 @@ module Hanami
9
9
  #
10
10
  # @since 0.8.0
11
11
  # @api private
12
- STRING_MATCHER = /\A[[:space:]]*\z/
12
+ STRING_MATCHER = /\A[[:space:]]*\z/.freeze
13
13
 
14
14
  # Checks object is blank
15
15
  #
@@ -144,7 +144,7 @@ module Hanami
144
144
  #
145
145
  # @since 1.3.0
146
146
  # @api private
147
- TOKENIZE_REGEXP = /\((.*)\)/
147
+ TOKENIZE_REGEXP = /\((.*)\)/.freeze
148
148
 
149
149
  # Separator for .tokenize
150
150
  #
@@ -353,7 +353,7 @@ module Hanami
353
353
  9824 => 'spades', # black spade suit
354
354
  9827 => 'clubs', # black club suit
355
355
  9829 => 'hearts', # black heart suit
356
- 9830 => 'diams', # black diamond suit
356
+ 9830 => 'diams' # black diamond suit
357
357
  }.freeze
358
358
 
359
359
  # Allowed URL schemes
@@ -26,7 +26,7 @@ module Hanami
26
26
  # @api private
27
27
  #
28
28
  # @see Hanami::Utils::Kernel.Integer
29
- NUMERIC_MATCHER = %r{\A([\d\/\.\+iE]+|NaN|Infinity)\z}
29
+ NUMERIC_MATCHER = %r{\A([\d\/\.\+iE]+|NaN|Infinity)\z}.freeze
30
30
 
31
31
  # @since 0.8.0
32
32
  # @api private
@@ -415,18 +415,25 @@ module Hanami
415
415
  # # Missing #respond_to?
416
416
  # input = BasicObject.new
417
417
  # Hanami::Utils::Kernel.BigDecimal(input) # => TypeError
418
- def self.BigDecimal(arg)
418
+ #
419
+ # rubocop:disable Metrics/MethodLength
420
+ def self.BigDecimal(arg, precision = ::Float::DIG)
419
421
  case arg
422
+ when NilClass # This is only needed by Ruby 2.6
423
+ raise TypeError.new "can't convert #{inspect_type_error(arg)}into BigDecimal"
424
+ when Rational
425
+ arg.to_d(precision)
420
426
  when Numeric
421
427
  BigDecimal(arg.to_s)
422
428
  when ->(a) { a.respond_to?(:to_d) }
423
429
  arg.to_d
424
430
  else
425
- ::Kernel.BigDecimal(arg)
431
+ ::Kernel.BigDecimal(arg, precision)
426
432
  end
427
433
  rescue NoMethodError
428
434
  raise TypeError.new "can't convert #{inspect_type_error(arg)}into BigDecimal"
429
435
  end
436
+ # rubocop:enable Metrics/MethodLength
430
437
 
431
438
  # Coerces the argument to be a Float.
432
439
  #
@@ -8,6 +8,10 @@ module Hanami
8
8
  #
9
9
  # @since 1.2.0
10
10
  module QueryString
11
+ # @since 1.3.1
12
+ # @api private
13
+ HASH_SEPARATOR = ","
14
+
11
15
  # Serialize input into a query string
12
16
  #
13
17
  # @param input [Object] the input
@@ -20,7 +24,7 @@ module Hanami
20
24
  def self.call(input)
21
25
  case input
22
26
  when ::Hash
23
- input.to_a.join("=")
27
+ input.map { |key, value| "#{key}=#{value.inspect}" }.join(HASH_SEPARATOR)
24
28
  else
25
29
  input.to_s
26
30
  end
@@ -30,7 +30,7 @@ module Hanami
30
30
  #
31
31
  # @since 0.3.0
32
32
  # @api private
33
- TOKENIZE_REGEXP = /\((.*)\)/
33
+ TOKENIZE_REGEXP = /\((.*)\)/.freeze
34
34
 
35
35
  # Separator for #tokenize
36
36
  #
@@ -72,7 +72,7 @@ module Hanami
72
72
  #
73
73
  # @since 0.3.4
74
74
  # @api private
75
- CLASSIFY_WORD_SEPARATOR = /#{CLASSIFY_SEPARATOR}|#{NAMESPACE_SEPARATOR}|#{UNDERSCORE_SEPARATOR}|#{DASHERIZE_SEPARATOR}/
75
+ CLASSIFY_WORD_SEPARATOR = /#{CLASSIFY_SEPARATOR}|#{NAMESPACE_SEPARATOR}|#{UNDERSCORE_SEPARATOR}|#{DASHERIZE_SEPARATOR}/.freeze
76
76
 
77
77
  @__transformations__ = Concurrent::Map.new
78
78
 
@@ -3,6 +3,6 @@ module Hanami
3
3
  # Defines the version
4
4
  #
5
5
  # @since 0.1.0
6
- VERSION = '1.3.0'.freeze
6
+ VERSION = '1.3.1'.freeze
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.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: 2018-10-24 00:00:00.000000000 Z
11
+ date: 2019-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: transproc
@@ -42,16 +42,22 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.6'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '3'
48
51
  type: :development
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
53
56
  - !ruby/object:Gem::Version
54
57
  version: '1.6'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '3'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rake
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -138,8 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
144
  - !ruby/object:Gem::Version
139
145
  version: '0'
140
146
  requirements: []
141
- rubyforge_project:
142
- rubygems_version: 2.7.7
147
+ rubygems_version: 3.0.2
143
148
  signing_key:
144
149
  specification_version: 4
145
150
  summary: Ruby core extentions and Hanami utilities