polyfill 0.3.0 → 0.4.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 +35 -0
- data/CHANGELOG.md +31 -2
- data/CONTRIBUTING.md +48 -17
- data/README.md +110 -80
- data/Rakefile +3 -1
- data/bin/console +3 -3
- data/lib/polyfill.rb +30 -19
- data/lib/polyfill/v2_4.rb +29 -12
- data/lib/polyfill/v2_4/array.rb +1 -1
- data/lib/polyfill/v2_4/array/instance.rb +3 -1
- data/lib/polyfill/v2_4/array/instance/concat.rb +5 -7
- data/lib/polyfill/v2_4/array/instance/sum.rb +17 -0
- data/lib/polyfill/v2_4/comparable.rb +1 -1
- data/lib/polyfill/v2_4/comparable/instance.rb +1 -1
- data/lib/polyfill/v2_4/comparable/instance/clamp.rb +11 -13
- data/lib/polyfill/v2_4/dir.rb +1 -1
- data/lib/polyfill/v2_4/dir/class.rb +1 -1
- data/lib/polyfill/v2_4/dir/class/empty_q.rb +5 -7
- data/lib/polyfill/v2_4/enumerable.rb +9 -0
- data/lib/polyfill/v2_4/enumerable/instance.rb +15 -0
- data/lib/polyfill/v2_4/enumerable/instance/chunk.rb +46 -0
- data/lib/polyfill/v2_4/enumerable/instance/sum.rb +52 -0
- data/lib/polyfill/v2_4/enumerable/instance/uniq.rb +45 -0
- data/lib/polyfill/v2_4/enumerator/lazy.rb +11 -0
- data/lib/polyfill/v2_4/enumerator/lazy/instance.rb +15 -0
- data/lib/polyfill/v2_4/enumerator/lazy/instance/chunk_while.rb +25 -0
- data/lib/polyfill/v2_4/enumerator/lazy/instance/uniq.rb +33 -0
- data/lib/polyfill/v2_4/file.rb +1 -1
- data/lib/polyfill/v2_4/file/class.rb +1 -1
- data/lib/polyfill/v2_4/file/class/empty_q.rb +5 -7
- data/lib/polyfill/v2_4/float.rb +1 -1
- data/lib/polyfill/v2_4/float/instance.rb +3 -3
- data/lib/polyfill/v2_4/float/instance/ceil.rb +8 -10
- data/lib/polyfill/v2_4/float/instance/floor.rb +7 -9
- data/lib/polyfill/v2_4/float/instance/truncate.rb +8 -10
- data/lib/polyfill/v2_4/hash.rb +1 -1
- data/lib/polyfill/v2_4/hash/instance.rb +4 -4
- data/lib/polyfill/v2_4/hash/instance/compact.rb +5 -7
- data/lib/polyfill/v2_4/hash/instance/compact_e.rb +5 -7
- data/lib/polyfill/v2_4/hash/instance/transform_values.rb +6 -8
- data/lib/polyfill/v2_4/hash/instance/transform_values_e.rb +6 -8
- data/lib/polyfill/v2_4/i_p_addr.rb +9 -0
- data/lib/polyfill/v2_4/i_p_addr/instance.rb +13 -0
- data/lib/polyfill/v2_4/i_p_addr/instance/equalequal.rb +27 -0
- data/lib/polyfill/v2_4/i_p_addr/instance/lessthanequalgreaterthan.rb +27 -0
- data/lib/polyfill/v2_4/integer.rb +1 -1
- data/lib/polyfill/v2_4/integer/instance.rb +5 -5
- data/lib/polyfill/v2_4/integer/instance/ceil.rb +7 -9
- data/lib/polyfill/v2_4/integer/instance/digits.rb +5 -7
- data/lib/polyfill/v2_4/integer/instance/floor.rb +7 -9
- data/lib/polyfill/v2_4/integer/instance/round.rb +7 -9
- data/lib/polyfill/v2_4/integer/instance/truncate.rb +7 -9
- data/lib/polyfill/v2_4/io.rb +2 -2
- data/lib/polyfill/v2_4/io/class.rb +2 -2
- data/lib/polyfill/v2_4/io/class/foreach.rb +21 -33
- data/lib/polyfill/v2_4/io/class/readlines.rb +12 -13
- data/lib/polyfill/v2_4/io/instance.rb +6 -4
- data/lib/polyfill/v2_4/io/instance/each_line.rb +20 -33
- data/lib/polyfill/v2_4/io/instance/gets.rb +12 -13
- data/lib/polyfill/v2_4/io/instance/lines.rb +54 -0
- data/lib/polyfill/v2_4/io/instance/readline.rb +12 -13
- data/lib/polyfill/v2_4/io/instance/readlines.rb +12 -13
- data/lib/polyfill/v2_4/match_data.rb +1 -1
- data/lib/polyfill/v2_4/match_data/instance.rb +2 -2
- data/lib/polyfill/v2_4/match_data/instance/named_captures.rb +5 -7
- data/lib/polyfill/v2_4/match_data/instance/values_at.rb +5 -7
- data/lib/polyfill/v2_4/numeric.rb +1 -1
- data/lib/polyfill/v2_4/numeric/instance.rb +6 -2
- data/lib/polyfill/v2_4/numeric/instance/clone.rb +23 -0
- data/lib/polyfill/v2_4/numeric/instance/dup.rb +23 -0
- data/lib/polyfill/v2_4/numeric/instance/finite_q.rb +5 -7
- data/lib/polyfill/v2_4/numeric/instance/infinite_q.rb +5 -7
- data/lib/polyfill/v2_4/object.rb +9 -0
- data/lib/polyfill/v2_4/object/instance.rb +11 -0
- data/lib/polyfill/v2_4/object/instance/clone.rb +29 -0
- data/lib/polyfill/v2_4/pathname.rb +9 -0
- data/lib/polyfill/v2_4/pathname/instance.rb +11 -0
- data/lib/polyfill/v2_4/pathname/instance/empty_q.rb +29 -0
- data/lib/polyfill/v2_4/regexp.rb +9 -0
- data/lib/polyfill/v2_4/regexp/instance.rb +11 -0
- data/lib/polyfill/v2_4/regexp/instance/match_q.rb +23 -0
- data/lib/polyfill/v2_4/string.rb +3 -1
- data/lib/polyfill/v2_4/string/class.rb +11 -0
- data/lib/polyfill/v2_4/string/class/new.rb +26 -0
- data/lib/polyfill/v2_4/string/instance.rb +12 -2
- data/lib/polyfill/v2_4/string/instance/casecmp_q.rb +23 -0
- data/lib/polyfill/v2_4/string/instance/concat.rb +5 -7
- data/lib/polyfill/v2_4/string/instance/each_line.rb +17 -0
- data/lib/polyfill/v2_4/string/instance/lines.rb +55 -0
- data/lib/polyfill/v2_4/string/instance/match_q.rb +23 -0
- data/lib/polyfill/v2_4/string/instance/prepend.rb +5 -7
- data/lib/polyfill/v2_4/string/instance/unpack1.rb +23 -0
- data/lib/polyfill/v2_4/string_io.rb +1 -1
- data/lib/polyfill/v2_4/string_io/instance.rb +4 -4
- data/lib/polyfill/v2_4/string_io/instance/each_line.rb +5 -7
- data/lib/polyfill/v2_4/string_io/instance/gets.rb +5 -7
- data/lib/polyfill/v2_4/string_io/instance/readline.rb +5 -7
- data/lib/polyfill/v2_4/string_io/instance/readlines.rb +5 -7
- data/lib/polyfill/v2_4/symbol.rb +9 -0
- data/lib/polyfill/v2_4/symbol/instance.rb +15 -0
- data/lib/polyfill/v2_4/symbol/instance/casecmp_q.rb +25 -0
- data/lib/polyfill/v2_4/symbol/instance/match.rb +27 -0
- data/lib/polyfill/v2_4/symbol/instance/match_q.rb +17 -0
- data/lib/polyfill/version.rb +1 -1
- data/polyfill.gemspec +1 -0
- metadata +56 -3
@@ -11,14 +11,12 @@ module Polyfill
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
refine ::MatchData do
|
15
|
+
include Method
|
16
|
+
end
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
end
|
18
|
+
def self.included(base)
|
19
|
+
base.include Method
|
22
20
|
end
|
23
21
|
end
|
24
22
|
end
|
@@ -11,14 +11,12 @@ module Polyfill
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
refine ::MatchData do
|
15
|
+
include Method
|
16
|
+
end
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
end
|
18
|
+
def self.included(base)
|
19
|
+
base.include Method
|
22
20
|
end
|
23
21
|
end
|
24
22
|
end
|
@@ -1,10 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require_relative 'instance/clone'
|
2
|
+
require_relative 'instance/dup'
|
3
|
+
require_relative 'instance/finite_q'
|
4
|
+
require_relative 'instance/infinite_q'
|
3
5
|
|
4
6
|
module Polyfill
|
5
7
|
module V2_4
|
6
8
|
module Numeric
|
7
9
|
module Instance
|
10
|
+
include Dup
|
11
|
+
include Clone
|
8
12
|
include FiniteQ
|
9
13
|
include InfiniteQ
|
10
14
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Polyfill
|
2
|
+
module V2_4
|
3
|
+
module Numeric
|
4
|
+
module Instance
|
5
|
+
module Clone
|
6
|
+
module Method
|
7
|
+
def clone(freeze: true) # rubocop:disable Lint/UnusedMethodArgument
|
8
|
+
self
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
refine ::Numeric 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
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Polyfill
|
2
|
+
module V2_4
|
3
|
+
module Numeric
|
4
|
+
module Instance
|
5
|
+
module Dup
|
6
|
+
module Method
|
7
|
+
def dup
|
8
|
+
self
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
refine ::Numeric 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
|
@@ -9,14 +9,12 @@ module Polyfill
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
12
|
+
refine ::Numeric do
|
13
|
+
include Method
|
14
|
+
end
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
16
|
+
def self.included(base)
|
17
|
+
base.include Method
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
@@ -9,14 +9,12 @@ module Polyfill
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
12
|
+
refine ::Numeric do
|
13
|
+
include Method
|
14
|
+
end
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
16
|
+
def self.included(base)
|
17
|
+
base.include Method
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Polyfill
|
2
|
+
module V2_4
|
3
|
+
module Object
|
4
|
+
module Instance
|
5
|
+
module Clone
|
6
|
+
module Method
|
7
|
+
def clone(freeze: true)
|
8
|
+
return super() if freeze
|
9
|
+
|
10
|
+
cloned = dup
|
11
|
+
(singleton_class.ancestors - self.class.ancestors).drop(1).each do |ancestor|
|
12
|
+
cloned.extend(ancestor)
|
13
|
+
end
|
14
|
+
cloned
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
refine ::Object do
|
19
|
+
include Method
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.included(base)
|
23
|
+
base.include Method
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
|
3
|
+
module Polyfill
|
4
|
+
module V2_4
|
5
|
+
module Pathname
|
6
|
+
module Instance
|
7
|
+
module EmptyQ
|
8
|
+
module Method
|
9
|
+
def empty?
|
10
|
+
if directory?
|
11
|
+
children.empty?
|
12
|
+
else
|
13
|
+
zero?
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
refine ::Pathname do
|
19
|
+
include Method
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.included(base)
|
23
|
+
base.include Method
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Polyfill
|
2
|
+
module V2_4
|
3
|
+
module Regexp
|
4
|
+
module Instance
|
5
|
+
module MatchQ
|
6
|
+
module Method
|
7
|
+
def match?(string, position = 0)
|
8
|
+
!!(string[position..-1] =~ self)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
refine ::Regexp 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
|
data/lib/polyfill/v2_4/string.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Polyfill
|
2
|
+
module V2_4
|
3
|
+
module String
|
4
|
+
module Class
|
5
|
+
module New
|
6
|
+
module Method
|
7
|
+
def new(*args)
|
8
|
+
hash = args.find { |arg| arg.is_a?(::Hash) }
|
9
|
+
hash && hash.delete(:capacity) if hash
|
10
|
+
|
11
|
+
super(*args)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
refine ::String.singleton_class do
|
16
|
+
include Method
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.included(base)
|
20
|
+
base.include Method
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -1,12 +1,22 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require_relative 'instance/casecmp_q'
|
2
|
+
require_relative 'instance/concat'
|
3
|
+
require_relative 'instance/each_line'
|
4
|
+
require_relative 'instance/lines'
|
5
|
+
require_relative 'instance/match_q'
|
6
|
+
require_relative 'instance/prepend'
|
7
|
+
require_relative 'instance/unpack1'
|
3
8
|
|
4
9
|
module Polyfill
|
5
10
|
module V2_4
|
6
11
|
module String
|
7
12
|
module Instance
|
13
|
+
include CasecmpQ
|
8
14
|
include Concat
|
15
|
+
include EachLine
|
16
|
+
include Lines
|
17
|
+
include MatchQ
|
9
18
|
include Prepend
|
19
|
+
include Unpack1
|
10
20
|
end
|
11
21
|
end
|
12
22
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Polyfill
|
2
|
+
module V2_4
|
3
|
+
module String
|
4
|
+
module Instance
|
5
|
+
module CasecmpQ
|
6
|
+
module Method
|
7
|
+
def casecmp?(other)
|
8
|
+
casecmp(other.to_str) == 0
|
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
|
@@ -16,14 +16,12 @@ module Polyfill
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
19
|
+
refine ::String do
|
20
|
+
include Method
|
21
|
+
end
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
end
|
23
|
+
def self.included(base)
|
24
|
+
base.include Method
|
27
25
|
end
|
28
26
|
end
|
29
27
|
end
|