anyway_config 1.4.2 → 1.4.3

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: 9c45d9358cf8fa2ab03b6e1bdb7c2062c5f3b2c0f5dddea0fe59095862b53261
4
- data.tar.gz: d59c1d2a5ae0ffa7412ac2d8ef34ec19fb79625b1f5b341d7f6c890f8cf5d034
3
+ metadata.gz: a97f6978750cef7720cc23ca182e8a6456655cb8ece18d1becdcd5e58262b7b9
4
+ data.tar.gz: 5be2a8fc609273c759cef30b3eaf3c6d470716dc722ebd2a75a32b4209fe42a9
5
5
  SHA512:
6
- metadata.gz: 84fed0dcb693a6f27cc097550518fa7d068cde633f4d777e9dd03a75f29eaab9355c1925d8d6a3d9fb3d6a99131b1ae34c4aedc788615e9bb0f663560bebab1d
7
- data.tar.gz: ec7af93399492b880064f6ca831bbf279c9636d0b864efce4c192bf4f42847b79af0bc4683a31c8730f8628c8634e8d3dd45c8241d82c2766a2f693099691000
6
+ metadata.gz: 4e7c52fde9b0db72b7429748d0950286facbd82731e98375494dbd4dedec4efd448cc83bc30df8802a98e25c8bd230587ee2d8e09475aab8541410df1208672e
7
+ data.tar.gz: 932f662e306d85328a9a9131dcb8daab211bb87ee2f1177b68cce1c3b8c315ab2bd4ac4cd2e148c992e02f3ac4bfa4a0c32600b345957f61178cdd9aaa3c3d79
@@ -8,7 +8,8 @@ notifications:
8
8
  email: false
9
9
 
10
10
  before_install:
11
- - gem install bundler -v 1.17.3
11
+ - gem update --system
12
+ - gem install bundler -v '< 2'
12
13
 
13
14
  matrix:
14
15
  include:
@@ -16,12 +17,14 @@ matrix:
16
17
  gemfile: gemfiles/railsmaster.gemfile
17
18
  - rvm: jruby-9.2.5.0
18
19
  gemfile: gemfiles/jruby.gemfile
19
- - rvm: 2.5.0
20
+ - rvm: jruby-9.1.15.0
21
+ gemfile: gemfiles/jruby.gemfile
22
+ - rvm: 2.5.1
20
23
  gemfile: gemfiles/rails5.gemfile
21
- - rvm: 2.3.2
24
+ - rvm: 2.5.1
22
25
  gemfile: gemfiles/rails42.gemfile
26
+ - rvm: 2.3.2
27
+ gemfile: gemfiles/rails5.gemfile
23
28
  allow_failures:
24
29
  - rvm: ruby-head
25
30
  gemfile: gemfiles/railsmaster.gemfile
26
- - rvm: jruby-9.2.5.0
27
- gemfile: gemfiles/jruby.gemfile
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 1.4.3 (2019-02-04)
6
+
7
+ - Add a temporary fix for JRuby regression [#5550](https://github.com/jruby/jruby/issues/5550). ([@palkan][])
8
+
5
9
  ## 1.4.2 (2018-01-05)
6
10
 
7
11
  - Fix: detect Rails by presence of `Rails::VERSION` (instead of just `Rails`). ([@palkan][])
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.require_paths = ["lib"]
23
23
  s.required_ruby_version = '>= 2.3'
24
24
 
25
- s.add_development_dependency "bundler", "~> 1.15"
25
+ s.add_development_dependency "bundler", ">= 1.15"
26
26
  s.add_development_dependency "rspec", "~> 3.5"
27
27
  s.add_development_dependency "rubocop", "~> 0.60.0"
28
28
  s.add_development_dependency "simplecov", ">= 0.3.8"
@@ -2,5 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'arel', github: 'rails/arel'
4
4
  gem 'rails', github: 'rails/rails'
5
+ gem 'rubocop', github: 'rubocop-hq/rubocop'
5
6
 
6
7
  gemspec path: '..'
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'anyway/ext/jruby' if defined? JRUBY_VERSION
3
4
  require 'anyway/ext/deep_dup'
4
5
  require 'anyway/ext/deep_freeze'
5
6
  require 'anyway/ext/hash'
@@ -7,9 +8,13 @@ require 'anyway/ext/string_serialize'
7
8
  require 'anyway/option_parser_builder'
8
9
 
9
10
  module Anyway # :nodoc:
10
- using Anyway::Ext::DeepDup
11
- using Anyway::Ext::DeepFreeze
12
- using Anyway::Ext::Hash
11
+ if defined? JRUBY_VERSION
12
+ using Anyway::Ext::JRuby
13
+ else
14
+ using Anyway::Ext::DeepDup
15
+ using Anyway::Ext::DeepFreeze
16
+ using Anyway::Ext::Hash
17
+ end
13
18
  using Anyway::Ext::StringSerialize
14
19
 
15
20
  # Base config class
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anyway
4
+ module Ext
5
+ # JRuby 9.2.5.0. has a regression which breaks multiple refinements for the same
6
+ # class, so we put them in one God-refinement
7
+ # See https://github.com/jruby/jruby/issues/5550
8
+ #
9
+ # Should be fixed in 9.2.6.0
10
+ module JRuby
11
+ refine ::Hash do
12
+ # Based on ActiveSupport http://api.rubyonrails.org/classes/Hash.html#method-i-deep_dup
13
+ def deep_dup
14
+ each_with_object(dup) do |(key, value), hash|
15
+ hash[key] = if value.is_a?(::Hash) || value.is_a?(::Array)
16
+ value.deep_dup
17
+ else
18
+ value
19
+ end
20
+ end
21
+ end
22
+
23
+ def deep_freeze
24
+ freeze
25
+ each_value do |value|
26
+ value.deep_freeze if value.is_a?(::Hash) || value.is_a?(::Array)
27
+ end
28
+ end
29
+
30
+ # From ActiveSupport http://api.rubyonrails.org/classes/Hash.html#method-i-deep_merge
31
+ def deep_merge!(other_hash)
32
+ other_hash.each_pair do |current_key, other_value|
33
+ this_value = self[current_key]
34
+
35
+ if this_value.is_a?(::Hash) && other_value.is_a?(::Hash)
36
+ this_value.deep_merge!(other_value)
37
+ this_value
38
+ else
39
+ self[current_key] = other_value
40
+ end
41
+ end
42
+
43
+ self
44
+ end
45
+
46
+ def stringify_keys!
47
+ keys.each do |key|
48
+ value = delete(key)
49
+ value.stringify_keys! if value.is_a?(::Hash)
50
+ self[key.to_s] = value
51
+ end
52
+
53
+ self
54
+ end
55
+ end
56
+
57
+ refine ::Array do
58
+ # From ActiveSupport http://api.rubyonrails.org/classes/Array.html#method-i-deep_dup
59
+ def deep_dup
60
+ map do |value|
61
+ if value.is_a?(::Hash) || value.is_a?(::Array)
62
+ value.deep_dup
63
+ else
64
+ value
65
+ end
66
+ end
67
+ end
68
+
69
+ def deep_freeze
70
+ freeze
71
+ each do |value|
72
+ value.deep_freeze if value.is_a?(::Hash) || value.is_a?(::Array)
73
+ end
74
+ end
75
+ end
76
+
77
+ if defined?(::ActiveSupport::HashWithIndifferentAccess)
78
+ refine ::ActiveSupport::HashWithIndifferentAccess do
79
+ def deep_freeze
80
+ freeze
81
+ each_value do |value|
82
+ value.deep_freeze if value.is_a?(::Hash) || value.is_a?(::Array)
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ using self
89
+ end
90
+ end
91
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Anyway # :nodoc:
4
- VERSION = "1.4.2"
4
+ VERSION = "1.4.3"
5
5
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anyway_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-06 00:00:00.000000000 Z
11
+ date: 2019-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.15'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.15'
27
27
  - !ruby/object:Gem::Dependency
@@ -96,6 +96,7 @@ files:
96
96
  - lib/anyway/ext/deep_dup.rb
97
97
  - lib/anyway/ext/deep_freeze.rb
98
98
  - lib/anyway/ext/hash.rb
99
+ - lib/anyway/ext/jruby.rb
99
100
  - lib/anyway/ext/string_serialize.rb
100
101
  - lib/anyway/option_parser_builder.rb
101
102
  - lib/anyway/rails/config.rb