polyfill 0.6.0 → 0.7.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/.rubocop.yml +1 -1
- data/.travis.yml +3 -2
- data/CHANGELOG.md +26 -10
- data/CONTRIBUTING.md +0 -2
- data/README.md +107 -28
- data/lib/polyfill.rb +168 -74
- data/lib/polyfill/utils.rb +8 -3
- data/lib/polyfill/v2_2.rb +9 -0
- data/lib/polyfill/v2_2/enumerable.rb +34 -0
- data/lib/polyfill/v2_2/kernel.rb +9 -0
- data/lib/polyfill/v2_3.rb +2 -0
- data/lib/polyfill/v2_3/array.rb +22 -3
- data/lib/polyfill/v2_3/enumerable.rb +48 -3
- data/lib/polyfill/v2_3/enumerator/lazy.rb +7 -3
- data/lib/polyfill/v2_3/hash.rb +39 -3
- data/lib/polyfill/v2_3/kernel.rb +17 -0
- data/lib/polyfill/v2_3/string.rb +23 -5
- data/lib/polyfill/v2_3/struct.rb +22 -3
- data/lib/polyfill/v2_4/array.rb +25 -3
- data/lib/polyfill/v2_4/comparable.rb +9 -3
- data/lib/polyfill/v2_4/dir.rb +5 -3
- data/lib/polyfill/v2_4/enumerable.rb +28 -3
- data/lib/polyfill/v2_4/enumerator/lazy.rb +15 -3
- data/lib/polyfill/v2_4/file.rb +5 -3
- data/lib/polyfill/v2_4/float.rb +38 -3
- data/lib/polyfill/v2_4/hash.rb +35 -3
- data/lib/polyfill/v2_4/i_p_addr.rb +11 -3
- data/lib/polyfill/v2_4/integer.rb +53 -3
- data/lib/polyfill/v2_4/io.rb +166 -4
- data/lib/polyfill/v2_4/match_data.rb +11 -3
- data/lib/polyfill/v2_4/numeric.rb +15 -3
- data/lib/polyfill/v2_4/object.rb +9 -3
- data/lib/polyfill/v2_4/pathname.rb +7 -3
- data/lib/polyfill/v2_4/regexp.rb +3 -3
- data/lib/polyfill/v2_4/string.rb +110 -4
- data/lib/polyfill/v2_4/string_io.rb +166 -2
- data/lib/polyfill/v2_4/symbol.rb +17 -3
- data/lib/polyfill/version.rb +1 -1
- data/polyfill.gemspec +1 -1
- metadata +7 -98
- data/lib/polyfill/v2_3/array/instance.rb +0 -11
- data/lib/polyfill/v2_3/array/instance/dig.rb +0 -42
- data/lib/polyfill/v2_3/enumerable/instance.rb +0 -15
- data/lib/polyfill/v2_3/enumerable/instance/chunk_while.rb +0 -70
- data/lib/polyfill/v2_3/enumerable/instance/grep_v.rb +0 -48
- data/lib/polyfill/v2_3/enumerable/instance/slice_before.rb +0 -48
- data/lib/polyfill/v2_3/enumerator/lazy/instance.rb +0 -13
- data/lib/polyfill/v2_3/enumerator/lazy/instance/grep_v.rb +0 -31
- data/lib/polyfill/v2_3/hash/instance.rb +0 -15
- data/lib/polyfill/v2_3/hash/instance/dig.rb +0 -17
- data/lib/polyfill/v2_3/hash/instance/fetch_values.rb +0 -32
- data/lib/polyfill/v2_3/hash/instance/to_proc.rb +0 -23
- data/lib/polyfill/v2_3/string/class.rb +0 -11
- data/lib/polyfill/v2_3/string/class/new.rb +0 -33
- data/lib/polyfill/v2_3/string/instance.rb +0 -13
- data/lib/polyfill/v2_3/string/instance/minus_unary.rb +0 -23
- data/lib/polyfill/v2_3/string/instance/plus_unary.rb +0 -23
- data/lib/polyfill/v2_3/struct/instance.rb +0 -11
- data/lib/polyfill/v2_3/struct/instance/dig.rb +0 -17
- data/lib/polyfill/v2_4/array/instance.rb +0 -13
- data/lib/polyfill/v2_4/array/instance/concat.rb +0 -30
- data/lib/polyfill/v2_4/array/instance/sum.rb +0 -17
- data/lib/polyfill/v2_4/comparable/instance.rb +0 -11
- data/lib/polyfill/v2_4/comparable/instance/clamp.rb +0 -35
- data/lib/polyfill/v2_4/dir/class.rb +0 -11
- data/lib/polyfill/v2_4/dir/class/empty_q.rb +0 -23
- data/lib/polyfill/v2_4/enumerable/instance.rb +0 -15
- data/lib/polyfill/v2_4/enumerable/instance/chunk.rb +0 -48
- data/lib/polyfill/v2_4/enumerable/instance/sum.rb +0 -52
- data/lib/polyfill/v2_4/enumerable/instance/uniq.rb +0 -45
- data/lib/polyfill/v2_4/enumerator/lazy/instance.rb +0 -15
- data/lib/polyfill/v2_4/enumerator/lazy/instance/chunk_while.rb +0 -29
- data/lib/polyfill/v2_4/enumerator/lazy/instance/uniq.rb +0 -33
- data/lib/polyfill/v2_4/file/class.rb +0 -11
- data/lib/polyfill/v2_4/file/class/empty_q.rb +0 -23
- data/lib/polyfill/v2_4/float/instance.rb +0 -15
- data/lib/polyfill/v2_4/float/instance/ceil.rb +0 -32
- data/lib/polyfill/v2_4/float/instance/floor.rb +0 -32
- data/lib/polyfill/v2_4/float/instance/truncate.rb +0 -32
- data/lib/polyfill/v2_4/hash/instance.rb +0 -17
- data/lib/polyfill/v2_4/hash/instance/compact.rb +0 -23
- data/lib/polyfill/v2_4/hash/instance/compact_e.rb +0 -23
- data/lib/polyfill/v2_4/hash/instance/transform_values.rb +0 -33
- data/lib/polyfill/v2_4/hash/instance/transform_values_e.rb +0 -33
- data/lib/polyfill/v2_4/i_p_addr/instance.rb +0 -13
- data/lib/polyfill/v2_4/i_p_addr/instance/equalequal.rb +0 -27
- data/lib/polyfill/v2_4/i_p_addr/instance/lessthanequalgreaterthan.rb +0 -27
- data/lib/polyfill/v2_4/integer/instance.rb +0 -19
- data/lib/polyfill/v2_4/integer/instance/ceil.rb +0 -28
- data/lib/polyfill/v2_4/integer/instance/digits.rb +0 -34
- data/lib/polyfill/v2_4/integer/instance/floor.rb +0 -28
- data/lib/polyfill/v2_4/integer/instance/round.rb +0 -31
- data/lib/polyfill/v2_4/integer/instance/truncate.rb +0 -28
- data/lib/polyfill/v2_4/io/class.rb +0 -13
- data/lib/polyfill/v2_4/io/class/foreach.rb +0 -55
- data/lib/polyfill/v2_4/io/class/readlines.rb +0 -37
- data/lib/polyfill/v2_4/io/instance.rb +0 -19
- data/lib/polyfill/v2_4/io/instance/each_line.rb +0 -54
- data/lib/polyfill/v2_4/io/instance/gets.rb +0 -37
- data/lib/polyfill/v2_4/io/instance/lines.rb +0 -54
- data/lib/polyfill/v2_4/io/instance/readline.rb +0 -37
- data/lib/polyfill/v2_4/io/instance/readlines.rb +0 -37
- data/lib/polyfill/v2_4/match_data/instance.rb +0 -13
- data/lib/polyfill/v2_4/match_data/instance/named_captures.rb +0 -25
- data/lib/polyfill/v2_4/match_data/instance/values_at.rb +0 -25
- data/lib/polyfill/v2_4/numeric/instance.rb +0 -17
- data/lib/polyfill/v2_4/numeric/instance/clone.rb +0 -23
- data/lib/polyfill/v2_4/numeric/instance/dup.rb +0 -23
- data/lib/polyfill/v2_4/numeric/instance/finite_q.rb +0 -23
- data/lib/polyfill/v2_4/numeric/instance/infinite_q.rb +0 -23
- data/lib/polyfill/v2_4/object/instance.rb +0 -11
- data/lib/polyfill/v2_4/object/instance/clone.rb +0 -29
- data/lib/polyfill/v2_4/pathname/instance.rb +0 -11
- data/lib/polyfill/v2_4/pathname/instance/empty_q.rb +0 -29
- data/lib/polyfill/v2_4/regexp/instance.rb +0 -11
- data/lib/polyfill/v2_4/regexp/instance/match_q.rb +0 -23
- data/lib/polyfill/v2_4/string/class.rb +0 -11
- data/lib/polyfill/v2_4/string/class/new.rb +0 -26
- data/lib/polyfill/v2_4/string/instance.rb +0 -23
- data/lib/polyfill/v2_4/string/instance/casecmp_q.rb +0 -23
- data/lib/polyfill/v2_4/string/instance/concat.rb +0 -30
- data/lib/polyfill/v2_4/string/instance/each_line.rb +0 -17
- data/lib/polyfill/v2_4/string/instance/lines.rb +0 -55
- data/lib/polyfill/v2_4/string/instance/match_q.rb +0 -23
- data/lib/polyfill/v2_4/string/instance/prepend.rb +0 -30
- data/lib/polyfill/v2_4/string/instance/unpack1.rb +0 -23
- data/lib/polyfill/v2_4/string_io/instance.rb +0 -17
- data/lib/polyfill/v2_4/string_io/instance/each_line.rb +0 -17
- data/lib/polyfill/v2_4/string_io/instance/gets.rb +0 -17
- data/lib/polyfill/v2_4/string_io/instance/readline.rb +0 -17
- data/lib/polyfill/v2_4/string_io/instance/readlines.rb +0 -17
- data/lib/polyfill/v2_4/symbol/instance.rb +0 -15
- data/lib/polyfill/v2_4/symbol/instance/casecmp_q.rb +0 -25
- data/lib/polyfill/v2_4/symbol/instance/match.rb +0 -27
- data/lib/polyfill/v2_4/symbol/instance/match_q.rb +0 -17
@@ -1,23 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_3
|
3
|
-
module String
|
4
|
-
module Instance
|
5
|
-
module PlusUnary
|
6
|
-
module Method
|
7
|
-
def +@
|
8
|
-
frozen? ? dup : self
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
refine ::String do
|
13
|
-
include Method
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.included(base)
|
17
|
-
base.include Method
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_3
|
3
|
-
module Struct
|
4
|
-
module Instance
|
5
|
-
module Dig
|
6
|
-
refine ::Struct do
|
7
|
-
include Array::Instance::Dig::Method
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
base.include Array::Instance::Dig::Method
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Array
|
4
|
-
module Instance
|
5
|
-
module Concat
|
6
|
-
module Method
|
7
|
-
def concat(*others)
|
8
|
-
return super if others.length == 1
|
9
|
-
|
10
|
-
acc = [].concat(self)
|
11
|
-
others.each do |other|
|
12
|
-
acc.concat(other)
|
13
|
-
end
|
14
|
-
|
15
|
-
replace(acc)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
refine ::Array do
|
20
|
-
include Method
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.included(base)
|
24
|
-
base.include Method
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Array
|
4
|
-
module Instance
|
5
|
-
module Sum
|
6
|
-
refine ::Array do
|
7
|
-
include Enumerable::Instance::Sum::Method
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
base.include Enumerable::Instance::Sum::Method
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Comparable
|
4
|
-
module Instance
|
5
|
-
module Clamp
|
6
|
-
module Method
|
7
|
-
def clamp(min, max)
|
8
|
-
if min > max
|
9
|
-
raise ArgumentError, 'min argument must be smaller than max argument'
|
10
|
-
end
|
11
|
-
|
12
|
-
return min if min > self
|
13
|
-
return max if max < self
|
14
|
-
self
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
refine ::Numeric do
|
19
|
-
include Method
|
20
|
-
end
|
21
|
-
refine ::String do
|
22
|
-
include Method
|
23
|
-
end
|
24
|
-
refine ::Time do
|
25
|
-
include Method
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.included(base)
|
29
|
-
base.include Method
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Dir
|
4
|
-
module Class
|
5
|
-
module EmptyQ
|
6
|
-
module Method
|
7
|
-
def empty?(path_name)
|
8
|
-
exist?(path_name) && (entries(path_name) - ['.', '..']).empty?
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
refine ::Dir.singleton_class do
|
13
|
-
include Method
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.included(base)
|
17
|
-
base.include Method
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
|
3
|
-
module Polyfill
|
4
|
-
module V2_4
|
5
|
-
module Enumerable
|
6
|
-
module Instance
|
7
|
-
module Chunk
|
8
|
-
module Method
|
9
|
-
def chunk(*)
|
10
|
-
return enum_for(:chunk) unless block_given?
|
11
|
-
|
12
|
-
super
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
refine ::Array do
|
17
|
-
include Method
|
18
|
-
end
|
19
|
-
refine ::Dir do
|
20
|
-
include Method
|
21
|
-
end
|
22
|
-
refine ::Enumerator do
|
23
|
-
include Method
|
24
|
-
end
|
25
|
-
refine ::Hash do
|
26
|
-
include Method
|
27
|
-
end
|
28
|
-
refine ::IO do
|
29
|
-
include Method
|
30
|
-
end
|
31
|
-
refine ::Range do
|
32
|
-
include Method
|
33
|
-
end
|
34
|
-
refine ::StringIO do
|
35
|
-
include Method
|
36
|
-
end
|
37
|
-
refine ::Struct do
|
38
|
-
include Method
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.included(base)
|
42
|
-
base.include Method
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Enumerable
|
4
|
-
module Instance
|
5
|
-
module Sum
|
6
|
-
module Method
|
7
|
-
def sum(init = 0)
|
8
|
-
acc =
|
9
|
-
begin
|
10
|
-
init.dup
|
11
|
-
rescue TypeError
|
12
|
-
init
|
13
|
-
end
|
14
|
-
|
15
|
-
each do |elem|
|
16
|
-
acc += block_given? ? yield(elem) : elem
|
17
|
-
end
|
18
|
-
|
19
|
-
acc
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
refine ::Dir do
|
24
|
-
include Method
|
25
|
-
end
|
26
|
-
refine ::Enumerator do
|
27
|
-
include Method
|
28
|
-
end
|
29
|
-
refine ::Hash do
|
30
|
-
include Method
|
31
|
-
end
|
32
|
-
refine ::IO do
|
33
|
-
include Method
|
34
|
-
end
|
35
|
-
refine ::Range do
|
36
|
-
include Method
|
37
|
-
end
|
38
|
-
refine ::StringIO do
|
39
|
-
include Method
|
40
|
-
end
|
41
|
-
refine ::Struct do
|
42
|
-
include Method
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.included(base)
|
46
|
-
base.include Method
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Enumerable
|
4
|
-
module Instance
|
5
|
-
module Uniq
|
6
|
-
module Method
|
7
|
-
def uniq
|
8
|
-
if block_given?
|
9
|
-
to_a.uniq(&::Proc.new)
|
10
|
-
else
|
11
|
-
to_a.uniq
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
refine ::Dir do
|
17
|
-
include Method
|
18
|
-
end
|
19
|
-
refine ::Enumerator do
|
20
|
-
include Method
|
21
|
-
end
|
22
|
-
refine ::Hash do
|
23
|
-
include Method
|
24
|
-
end
|
25
|
-
refine ::IO do
|
26
|
-
include Method
|
27
|
-
end
|
28
|
-
refine ::Range do
|
29
|
-
include Method
|
30
|
-
end
|
31
|
-
refine ::StringIO do
|
32
|
-
include Method
|
33
|
-
end
|
34
|
-
refine ::Struct do
|
35
|
-
include Method
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.included(base)
|
39
|
-
base.include Method
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Polyfill
|
2
|
-
module V2_4
|
3
|
-
module Enumerator
|
4
|
-
module Lazy
|
5
|
-
module Instance
|
6
|
-
module ChunkWhile
|
7
|
-
module Method
|
8
|
-
Utils.when_ruby_below('2.3') do
|
9
|
-
using V2_3::Enumerable::Instance::ChunkWhile
|
10
|
-
end
|
11
|
-
|
12
|
-
def chunk_while
|
13
|
-
super.lazy
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
refine ::Enumerator::Lazy do
|
18
|
-
include Method
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.included(base)
|
22
|
-
base.include Method
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'set'
|
2
|
-
|
3
|
-
module Polyfill
|
4
|
-
module V2_4
|
5
|
-
module Enumerator
|
6
|
-
module Lazy
|
7
|
-
module Instance
|
8
|
-
module Uniq
|
9
|
-
module Method
|
10
|
-
def uniq
|
11
|
-
seen = Set.new
|
12
|
-
|
13
|
-
::Enumerator::Lazy.new(self) do |yielder, *values|
|
14
|
-
result = block_given? ? yield(*values) : values
|
15
|
-
|
16
|
-
yielder.<<(*values) if seen.add?(result)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
refine ::Enumerator::Lazy do
|
22
|
-
include Method
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.included(base)
|
26
|
-
base.include Method
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|