hanami-utils 1.3.0 → 1.3.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: 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