backports 3.17.1 → 3.19.0
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 +46 -1
- data/Gemfile +3 -16
- data/README.md +17 -2
- data/backports.gemspec +1 -1
- data/lib/backports/1.8.7.rb +5 -4
- data/lib/backports/1.9.1.rb +6 -1
- data/lib/backports/1.9.2.rb +6 -1
- data/lib/backports/1.9.3.rb +6 -1
- data/lib/backports/2.0.0.rb +7 -2
- data/lib/backports/2.1.0.rb +2 -2
- data/lib/backports/2.2.0.rb +2 -2
- data/lib/backports/2.2.0/string/unicode_normalize.rb +3 -3
- data/lib/backports/2.3.0.rb +2 -2
- data/lib/backports/2.3.0/queue/close.rb +48 -0
- data/lib/backports/2.3.0/string.rb +3 -0
- data/lib/backports/2.4.0.rb +2 -2
- data/lib/backports/2.4.0/bignum.rb +3 -0
- data/lib/backports/2.4.0/bignum/dup.rb +5 -0
- data/lib/backports/2.5.0.rb +2 -2
- data/lib/backports/2.5.0/hash/transform_keys.rb +10 -3
- data/lib/backports/2.5.0/integer/sqrt.rb +1 -1
- data/lib/backports/2.5.0/string/undump.rb +2 -2
- data/lib/backports/2.5.0/struct/new.rb +1 -1
- data/lib/backports/2.5.rb +1 -1
- data/lib/backports/2.6.0.rb +3 -3
- data/lib/backports/2.6.0/enumerable/chain.rb +2 -0
- data/lib/backports/2.6.rb +1 -1
- data/lib/backports/2.7.0.rb +3 -3
- data/lib/backports/3.0.0.rb +3 -0
- data/lib/backports/3.0.0/env.rb +3 -0
- data/lib/backports/3.0.0/env/except.rb +10 -0
- data/lib/backports/3.0.0/hash.rb +3 -0
- data/lib/backports/3.0.0/hash/except.rb +10 -0
- data/lib/backports/3.0.0/hash/transform_keys.rb +48 -0
- data/lib/backports/3.0.0/symbol.rb +3 -0
- data/lib/backports/3.0.0/symbol/name.rb +11 -0
- data/lib/backports/3.0.rb +1 -0
- data/lib/backports/tools/require_relative_dir.rb +6 -1
- data/lib/backports/version.rb +1 -1
- metadata +20 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7545e11eda01d2ea412b51973b69d70ede1544ad14d11511085f80d51f1e9924
|
4
|
+
data.tar.gz: 9cfd27da7f62e6606b73afa3770e25eb7fd90d254eb95c242fe375e38a10f078
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64f2afe9cf49d42da0122399c765cf8e9eda203145957fa3a296f169ac36c1f471cd08d3384d397b987c9cf368947e4f5db6fe0ba460d0fbad014ff0a40e35e8
|
7
|
+
data.tar.gz: 0d52dd7e5b79dd2dd225ddff67a34bdd329141e4c0ce924369271ce9e4fde48e2462452940e18110d64b6d9c10f3fd8c4cd5d57a8944317a8124c0b37f22887a
|
data/CHANGELOG.md
CHANGED
@@ -6,7 +6,52 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
-
Note: [Next major version (X-mas
|
9
|
+
Note: [Next major version (X-mas 2021?)](https://github.com/marcandre/backports/issues/139) may drop support for Ruby < 2.2, please comment.
|
10
|
+
|
11
|
+
## [3.19.0](https://github.com/marcandre/backports/compare/v3.19.0...v3.18.2) - 2020-12-28
|
12
|
+
|
13
|
+
### Added
|
14
|
+
|
15
|
+
* Ruby 3.0 backports
|
16
|
+
|
17
|
+
* Env
|
18
|
+
* `except`
|
19
|
+
|
20
|
+
* Hash
|
21
|
+
* `except`
|
22
|
+
* `transform_keys`, `transform_keys!` (with hash argument)
|
23
|
+
|
24
|
+
* Symbol
|
25
|
+
* `name`
|
26
|
+
|
27
|
+
* Ruby 2.3 backports
|
28
|
+
|
29
|
+
* Queue
|
30
|
+
* `close`, `closed?` (affects `push`, `pop` and aliases)
|
31
|
+
|
32
|
+
## [3.18.2](https://github.com/marcandre/backports/compare/v3.18.0...v3.18.2) - 2020-08-26
|
33
|
+
|
34
|
+
### Fixed
|
35
|
+
|
36
|
+
Require per ruby version now properly requiring 2.3.0 backports for `String` [#152]
|
37
|
+
|
38
|
+
## [3.18.1](https://github.com/marcandre/backports/compare/v3.18.1...v3.18.2) - 2020-66-22
|
39
|
+
|
40
|
+
### Fixed
|
41
|
+
|
42
|
+
Fixed Changelog URI in gem manifest
|
43
|
+
|
44
|
+
## [3.18.0](https://github.com/marcandre/backports/compare/v3.17.2...v3.18.0) - 2020-06-22
|
45
|
+
|
46
|
+
### Changed
|
47
|
+
|
48
|
+
Require per ruby version / all requires now check `RUBY_VERSION` to be more efficient [#149]
|
49
|
+
|
50
|
+
## [3.17.2](https://github.com/marcandre/backports/compare/v3.17.1...v3.17.2) - 2020-04-09
|
51
|
+
|
52
|
+
### Fixed
|
53
|
+
|
54
|
+
Fix Range#cover (Ruby 2.6.0) [#148]
|
10
55
|
|
11
56
|
## [3.17.1](https://github.com/marcandre/backports/compare/v3.17.0...v3.17.1) - 2020-04-09
|
12
57
|
|
data/Gemfile
CHANGED
@@ -1,29 +1,16 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
# Declare your gem's dependencies in backports.gemspec.
|
4
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
5
|
-
# development dependencies will be added by default to the :development group.
|
6
3
|
gemspec
|
7
4
|
|
8
|
-
# jquery-rails is used by the dummy application
|
9
5
|
group :test do
|
10
6
|
gem "rake"
|
11
7
|
gem 'mspec'
|
12
8
|
gem 'activesupport', '~>3.2.0'
|
13
|
-
gem '
|
14
|
-
gem 'test-unit', '~>2.1.1.0'
|
9
|
+
gem 'test-unit'
|
15
10
|
end
|
16
11
|
|
17
|
-
if RUBY_VERSION >= '2.
|
12
|
+
if RUBY_VERSION >= '2.4.0'
|
18
13
|
group :development do
|
19
|
-
gem 'rubocop', '~>
|
14
|
+
gem 'rubocop', '~> 1.1.0'
|
20
15
|
end
|
21
16
|
end
|
22
|
-
|
23
|
-
# Declare any dependencies that are still in development here instead of in
|
24
|
-
# your gemspec. These might include edge Rails or gems from your path or
|
25
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
26
|
-
# your gem to rubygems.org.
|
27
|
-
|
28
|
-
# To use debugger
|
29
|
-
# gem 'ruby-debug19', :require => 'ruby-debug'
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ The goal of 'backports' is to make it easier to write ruby code that runs
|
|
9
9
|
across different versions of Ruby.
|
10
10
|
|
11
11
|
Note: [Next major version (X-mas
|
12
|
-
|
12
|
+
2021?)](https://github.com/marcandre/backports/issues/139) may drop support
|
13
13
|
for Ruby < 2.2.
|
14
14
|
|
15
15
|
## Loading backports
|
@@ -109,6 +109,18 @@ itself, JRuby and Rubinius.
|
|
109
109
|
|
110
110
|
# Complete List of backports
|
111
111
|
|
112
|
+
## Ruby 3.0 backports
|
113
|
+
|
114
|
+
#### Env
|
115
|
+
- `except`
|
116
|
+
|
117
|
+
#### Hash
|
118
|
+
- `except`
|
119
|
+
- `transform_keys`, `transform_keys!` (with hash argument)
|
120
|
+
|
121
|
+
#### Symbol
|
122
|
+
- `name`
|
123
|
+
|
112
124
|
## Ruby 2.7 backports
|
113
125
|
|
114
126
|
#### Array
|
@@ -206,13 +218,16 @@ itself, JRuby and Rubinius.
|
|
206
218
|
- `compact`, `compact!`
|
207
219
|
- `transform_values`, `transform_values!`
|
208
220
|
|
221
|
+
#### Queue
|
222
|
+
- `close`, `closed?`
|
223
|
+
|
209
224
|
#### Regexp
|
210
225
|
- `match?`
|
211
226
|
|
212
227
|
#### String
|
213
228
|
- `match?`
|
214
229
|
|
215
|
-
#### FalseClass, Fixnum, Float, NilClass, TrueClass
|
230
|
+
#### FalseClass, Fixnum, Bignum, Float, NilClass, TrueClass
|
216
231
|
- `dup`
|
217
232
|
|
218
233
|
## Ruby 2.3 backports
|
data/backports.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |gem|
|
|
23
23
|
gem.require_paths = ["lib"]
|
24
24
|
|
25
25
|
if gem.respond_to?(:metadata)
|
26
|
-
gem.metadata['changelog_uri'] = 'https://github.com/marcandre/backports/blob/master/CHANGELOG.
|
26
|
+
gem.metadata['changelog_uri'] = 'https://github.com/marcandre/backports/blob/master/CHANGELOG.md'
|
27
27
|
gem.metadata['source_code_uri'] = 'https://github.com/marcandre/backports'
|
28
28
|
gem.metadata['bug_tracker_uri'] = 'https://github.com/marcandre/backports/issues'
|
29
29
|
end
|
data/lib/backports/1.8.7.rb
CHANGED
@@ -5,7 +5,8 @@ require "backports/tools/deprecation"
|
|
5
5
|
Backports.frown_upon :require_version,
|
6
6
|
'Requiring backports/<ruby version> is not recommended in production. Require just the needed backports instead.'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
Backports.require_relative_dir
|
8
|
+
if RUBY_VERSION < '1.8.7'
|
9
|
+
Backports.warned[:require_std_lib] = true
|
10
|
+
require "backports/std_lib"
|
11
|
+
Backports.require_relative_dir
|
12
|
+
end
|
data/lib/backports/1.9.1.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 1.9.1 (including all of 1.8.8 and below)
|
2
2
|
require 'backports/1.8'
|
3
|
-
|
3
|
+
|
4
|
+
if RUBY_VERSION < '1.9.1'
|
5
|
+
Backports.warned[:require_std_lib] = true
|
6
|
+
require "backports/std_lib"
|
7
|
+
Backports.require_relative_dir
|
8
|
+
end
|
data/lib/backports/1.9.2.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 1.9.2
|
2
2
|
require 'backports/1.9.1'
|
3
|
-
|
3
|
+
|
4
|
+
if RUBY_VERSION < '1.9.2'
|
5
|
+
Backports.warned[:require_std_lib] = true
|
6
|
+
require "backports/std_lib"
|
7
|
+
Backports.require_relative_dir
|
8
|
+
end
|
data/lib/backports/1.9.3.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 1.9.3
|
2
2
|
require 'backports/1.9.2'
|
3
|
-
|
3
|
+
|
4
|
+
if RUBY_VERSION < '1.9.3'
|
5
|
+
Backports.warned[:require_std_lib] = true
|
6
|
+
require "backports/std_lib"
|
7
|
+
Backports.require_relative_dir
|
8
|
+
end
|
data/lib/backports/2.0.0.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 2.0.0
|
2
|
-
require 'backports/1.9'
|
3
|
-
|
2
|
+
require 'backports/1.9.3'
|
3
|
+
|
4
|
+
if RUBY_VERSION < '2.0'
|
5
|
+
Backports.warned[:require_std_lib] = true
|
6
|
+
require "backports/std_lib"
|
7
|
+
Backports.require_relative_dir
|
8
|
+
end
|
data/lib/backports/2.1.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 2.1.0
|
2
|
-
require 'backports/2.0'
|
3
|
-
Backports.require_relative_dir
|
2
|
+
require 'backports/2.0.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.1'
|
data/lib/backports/2.2.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 2.2
|
2
|
-
require 'backports/2.1'
|
3
|
-
Backports.require_relative_dir
|
2
|
+
require 'backports/2.1.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.2'
|
@@ -4,7 +4,7 @@ unless String.method_defined? :unicode_normalize
|
|
4
4
|
if (Regexp.compile("[\u{11100}-\u{11102}]") rescue false)
|
5
5
|
class String
|
6
6
|
def unicode_normalize(form = :nfc)
|
7
|
-
require 'backports/tools/normalize
|
7
|
+
require 'backports/tools/normalize' unless defined? UnicodeNormalize
|
8
8
|
## The following line can be uncommented to avoid repeated checking for
|
9
9
|
## UnicodeNormalize. However, tests didn't show any noticeable speedup
|
10
10
|
## when doing this. This comment also applies to the commented out lines
|
@@ -14,13 +14,13 @@ unless String.method_defined? :unicode_normalize
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def unicode_normalize!(form = :nfc)
|
17
|
-
require 'backports/tools/normalize
|
17
|
+
require 'backports/tools/normalize' unless defined? UnicodeNormalize
|
18
18
|
# String.send(:define_method, :unicode_normalize!, ->(form = :nfc) { replace(unicode_normalize(form)) } )
|
19
19
|
replace(unicode_normalize(form))
|
20
20
|
end
|
21
21
|
|
22
22
|
def unicode_normalized?(form = :nfc)
|
23
|
-
require 'backports/tools/normalize
|
23
|
+
require 'backports/tools/normalize' unless defined? UnicodeNormalize
|
24
24
|
# String.send(:define_method, :unicode_normalized?, ->(form = :nfc) { UnicodeNormalize.normalized?(self, form) } )
|
25
25
|
UnicodeNormalize.normalized?(self, form)
|
26
26
|
end
|
data/lib/backports/2.3.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 2.3
|
2
|
-
require 'backports/2.2'
|
3
|
-
Backports.require_relative_dir
|
2
|
+
require 'backports/2.2.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.3'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
unless Queue.method_defined? :close
|
2
|
+
require 'backports/tools/alias_method_chain'
|
3
|
+
|
4
|
+
class ClosedQueueError < StopIteration
|
5
|
+
end
|
6
|
+
|
7
|
+
class Queue
|
8
|
+
CLOSE_MESSAGE = Object.new
|
9
|
+
|
10
|
+
def push_with_close(arg)
|
11
|
+
raise ClosedQueueError, 'queue closed' if closed?
|
12
|
+
|
13
|
+
push_without_close(arg)
|
14
|
+
end
|
15
|
+
Backports.alias_method_chain self, :push, :close
|
16
|
+
alias_method :<<, :push
|
17
|
+
alias_method :enq, :push
|
18
|
+
|
19
|
+
def pop_with_close(non_block = false)
|
20
|
+
begin
|
21
|
+
r = pop_without_close(non_block || closed?)
|
22
|
+
|
23
|
+
r unless CLOSE_MESSAGE == r
|
24
|
+
rescue ThreadError
|
25
|
+
raise if non_block || !closed?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
Backports.alias_method_chain self, :pop, :close
|
29
|
+
|
30
|
+
alias_method :shift, :pop
|
31
|
+
alias_method :deq, :pop
|
32
|
+
|
33
|
+
def close
|
34
|
+
@closed = true
|
35
|
+
2.times do
|
36
|
+
Thread.pass
|
37
|
+
num_waiting.times do
|
38
|
+
push_without_close CLOSE_MESSAGE
|
39
|
+
end
|
40
|
+
end
|
41
|
+
self
|
42
|
+
end
|
43
|
+
|
44
|
+
def closed?
|
45
|
+
!!defined?(@closed)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/backports/2.4.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 2.4
|
2
|
-
require 'backports/2.3'
|
3
|
-
Backports.require_relative_dir
|
2
|
+
require 'backports/2.3.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.4'
|
data/lib/backports/2.5.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# require this file to load all the backports up to Ruby 2.5
|
2
|
-
require 'backports/2.4'
|
3
|
-
Backports.require_relative_dir
|
2
|
+
require 'backports/2.4.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.5'
|
@@ -10,9 +10,16 @@ class Hash
|
|
10
10
|
|
11
11
|
def transform_keys!
|
12
12
|
return enum_for(:transform_keys!) { size } unless block_given?
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
|
14
|
+
self[:trigger_error] = :immediately if frozen?
|
15
|
+
|
16
|
+
h = {}
|
17
|
+
begin
|
18
|
+
each do |key, value|
|
19
|
+
h[yield key] = value
|
20
|
+
end
|
21
|
+
ensure
|
22
|
+
replace(h)
|
16
23
|
end
|
17
24
|
self
|
18
25
|
end unless method_defined? :transform_keys!
|
@@ -9,7 +9,7 @@ class Integer
|
|
9
9
|
bits_shift = n.bit_length / 2 + 1
|
10
10
|
bitn_mask = root = 1 << bits_shift
|
11
11
|
loop do
|
12
|
-
root ^= bitn_mask if (root * root) > n
|
12
|
+
root ^= bitn_mask if (root * root) > n # rubocop:disable Lint/BinaryOperatorWithIdenticalOperands
|
13
13
|
bitn_mask >>= 1
|
14
14
|
return root if bitn_mask == 0
|
15
15
|
root |= bitn_mask
|
@@ -39,9 +39,9 @@ unless String.method_defined? :undump
|
|
39
39
|
# * only allowing the first character after the \\ to not be alpha/num/space, so \\\\#@inst_var_access is ignored
|
40
40
|
# To reduce the number of calls to eval a little, we wrap everything in a (...)+ so that consecutive escapes are
|
41
41
|
# handled at the same time.
|
42
|
-
result = string.gsub(/(\\+(u\{[\w ]+\}|[^cCM]
|
42
|
+
result = string.gsub(/(\\+(u\{[\w ]+\}|[^cCM]\w*))+/) do |s|
|
43
43
|
begin
|
44
|
-
eval("\"#{s}\"")
|
44
|
+
eval("\"#{s}\"") # "body"
|
45
45
|
rescue SyntaxError => e
|
46
46
|
raise RuntimeError, e.message, e.backtrace
|
47
47
|
end
|
data/lib/backports/2.5.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
# require this file to load all the backports of Ruby 2.
|
1
|
+
# require this file to load all the backports of Ruby 2.5 and below
|
2
2
|
require 'backports/2.5.0'
|
data/lib/backports/2.6.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
# require this file to load all the backports up to Ruby 2.
|
2
|
-
require 'backports/2.5'
|
3
|
-
Backports.require_relative_dir
|
1
|
+
# require this file to load all the backports up to Ruby 2.6
|
2
|
+
require 'backports/2.5.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.6'
|
@@ -8,6 +8,7 @@ unless Enumerable.method_defined? :chain
|
|
8
8
|
Enumerator = Enumerable::Enumerator unless Object.const_defined? :Enumerator # For 1.8.x
|
9
9
|
|
10
10
|
class Enumerator::Chain < Enumerator
|
11
|
+
# rubocop:disable Lint/MissingSuper
|
11
12
|
def initialize(*enums)
|
12
13
|
@enums = enums
|
13
14
|
@rewindable = -1
|
@@ -16,6 +17,7 @@ unless Enumerable.method_defined? :chain
|
|
16
17
|
# ...it checks what call of #initialize on non-initalized object returns
|
17
18
|
self # rubocop:disable Lint/Void
|
18
19
|
end
|
20
|
+
# rubocop:enable Lint/MissingSuper
|
19
21
|
|
20
22
|
def each(*args, &block)
|
21
23
|
@enums.each_with_index do |enum, i|
|
data/lib/backports/2.6.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
# require this file to load all the backports of Ruby 2.
|
1
|
+
# require this file to load all the backports of Ruby 2.6 and below
|
2
2
|
require 'backports/2.6.0'
|
data/lib/backports/2.7.0.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
# require this file to load all the backports up to Ruby 2.
|
2
|
-
require 'backports/2.6'
|
3
|
-
Backports.require_relative_dir
|
1
|
+
# require this file to load all the backports up to Ruby 2.7
|
2
|
+
require 'backports/2.6.0'
|
3
|
+
Backports.require_relative_dir if RUBY_VERSION < '2.7'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class Hash
|
2
|
+
unless ({}.transform_keys(:x => 1) rescue false)
|
3
|
+
require 'backports/2.5.0/hash/transform_keys'
|
4
|
+
require 'backports/tools/alias_method_chain'
|
5
|
+
|
6
|
+
def transform_keys_with_hash_arg(hash = not_given = true, &block)
|
7
|
+
return to_enum(:transform_keys) { size } if not_given && !block
|
8
|
+
|
9
|
+
return transform_keys_without_hash_arg(&block) if not_given
|
10
|
+
|
11
|
+
h = {}
|
12
|
+
if block_given?
|
13
|
+
each do |key, value|
|
14
|
+
h[hash.fetch(key) { yield key }] = value
|
15
|
+
end
|
16
|
+
else
|
17
|
+
each do |key, value|
|
18
|
+
h[hash.fetch(key, key)] = value
|
19
|
+
end
|
20
|
+
end
|
21
|
+
h
|
22
|
+
end
|
23
|
+
Backports.alias_method_chain self, :transform_keys, :hash_arg
|
24
|
+
|
25
|
+
def transform_keys_with_hash_arg!(hash = not_given = true, &block)
|
26
|
+
return enum_for(:transform_keys!) { size } if not_given && !block
|
27
|
+
|
28
|
+
return transform_keys_without_hash_arg!(&block) if not_given
|
29
|
+
|
30
|
+
h = {}
|
31
|
+
begin
|
32
|
+
if block_given?
|
33
|
+
each do |key, value|
|
34
|
+
h[hash.fetch(key) { yield key }] = value
|
35
|
+
end
|
36
|
+
else
|
37
|
+
each do |key, value|
|
38
|
+
h[hash.fetch(key, key)] = value
|
39
|
+
end
|
40
|
+
end
|
41
|
+
ensure
|
42
|
+
replace(h)
|
43
|
+
end
|
44
|
+
self
|
45
|
+
end
|
46
|
+
Backports.alias_method_chain self, :transform_keys!, :hash_arg
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'backports/3.0.0'
|
@@ -7,7 +7,12 @@ module Backports
|
|
7
7
|
compact.
|
8
8
|
sort.
|
9
9
|
each do |f|
|
10
|
-
|
10
|
+
path = '../../' + short_path + f
|
11
|
+
if Kernel.private_method_defined?(:require_relative)
|
12
|
+
require_relative path
|
13
|
+
else
|
14
|
+
require File.expand_path(path)
|
15
|
+
end
|
11
16
|
end
|
12
17
|
end
|
13
18
|
end
|
data/lib/backports/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Backports
|
2
|
-
VERSION = "3.
|
2
|
+
VERSION = "3.19.0" unless Backports.constants.include? :VERSION # the guard is against a redefinition warning that happens on Travis
|
3
3
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backports
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-André Lafortune
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Essential backports that enable many of the nice features of Ruby for
|
14
14
|
earlier versions.
|
@@ -425,12 +425,16 @@ files:
|
|
425
425
|
- lib/backports/2.3.0/numeric.rb
|
426
426
|
- lib/backports/2.3.0/numeric/negative.rb
|
427
427
|
- lib/backports/2.3.0/numeric/positive.rb
|
428
|
+
- lib/backports/2.3.0/queue/close.rb
|
429
|
+
- lib/backports/2.3.0/string.rb
|
428
430
|
- lib/backports/2.3.0/string/uminus.rb
|
429
431
|
- lib/backports/2.3.0/string/uplus.rb
|
430
432
|
- lib/backports/2.3.0/struct.rb
|
431
433
|
- lib/backports/2.3.0/struct/dig.rb
|
432
434
|
- lib/backports/2.3.rb
|
433
435
|
- lib/backports/2.4.0.rb
|
436
|
+
- lib/backports/2.4.0/bignum.rb
|
437
|
+
- lib/backports/2.4.0/bignum/dup.rb
|
434
438
|
- lib/backports/2.4.0/comparable.rb
|
435
439
|
- lib/backports/2.4.0/comparable/clamp.rb
|
436
440
|
- lib/backports/2.4.0/enumerable.rb
|
@@ -528,6 +532,15 @@ files:
|
|
528
532
|
- lib/backports/2.7.0/time/ceil.rb
|
529
533
|
- lib/backports/2.7.0/time/floor.rb
|
530
534
|
- lib/backports/2.7.rb
|
535
|
+
- lib/backports/3.0.0.rb
|
536
|
+
- lib/backports/3.0.0/env.rb
|
537
|
+
- lib/backports/3.0.0/env/except.rb
|
538
|
+
- lib/backports/3.0.0/hash.rb
|
539
|
+
- lib/backports/3.0.0/hash/except.rb
|
540
|
+
- lib/backports/3.0.0/hash/transform_keys.rb
|
541
|
+
- lib/backports/3.0.0/symbol.rb
|
542
|
+
- lib/backports/3.0.0/symbol/name.rb
|
543
|
+
- lib/backports/3.0.rb
|
531
544
|
- lib/backports/basic_object.rb
|
532
545
|
- lib/backports/force/array_map.rb
|
533
546
|
- lib/backports/force/enumerable_map.rb
|
@@ -566,10 +579,10 @@ homepage: http://github.com/marcandre/backports
|
|
566
579
|
licenses:
|
567
580
|
- MIT
|
568
581
|
metadata:
|
569
|
-
changelog_uri: https://github.com/marcandre/backports/blob/master/CHANGELOG.
|
582
|
+
changelog_uri: https://github.com/marcandre/backports/blob/master/CHANGELOG.md
|
570
583
|
source_code_uri: https://github.com/marcandre/backports
|
571
584
|
bug_tracker_uri: https://github.com/marcandre/backports/issues
|
572
|
-
post_install_message:
|
585
|
+
post_install_message:
|
573
586
|
rdoc_options: []
|
574
587
|
require_paths:
|
575
588
|
- lib
|
@@ -584,8 +597,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
584
597
|
- !ruby/object:Gem::Version
|
585
598
|
version: '0'
|
586
599
|
requirements: []
|
587
|
-
rubygems_version: 3.1.
|
588
|
-
signing_key:
|
600
|
+
rubygems_version: 3.1.4
|
601
|
+
signing_key:
|
589
602
|
specification_version: 4
|
590
603
|
summary: Backports of Ruby features for older Ruby.
|
591
604
|
test_files: []
|