thefox-ext 1.7.0.pre.rc.1 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +3 -2
- data/.github/workflows/release.yml +1 -1
- data/CHANGELOG-v1.md +26 -1
- data/README.md +1 -1
- data/bin/dev +6 -0
- data/lib/thefox-ext/ext/array.rb +6 -6
- data/lib/thefox-ext/ext/string.rb +60 -0
- data/lib/thefox-ext/version.rb +2 -2
- data/thefox-ext.gemspec +1 -1
- metadata +6 -10
- data/bin/.gitignore +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b68b006a1bf2b6cdc73ca86ef2291c7fe8561e622cdf9f4b6434df6ced40a48
|
4
|
+
data.tar.gz: 9e05dc8bedd4a625040d4899ed3f19315fa58c9a998e8cfc5749e929e15d7451
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91b5ff18299878084605508f46a5559b8339d52006e32b1908c5a44ee8c04bfa420cddd6fabdf8c7f0996b4d093dae9c916d9affd4efc0c22df3aca2d4ff181d
|
7
|
+
data.tar.gz: d7629b1cff75db5e14ea30a5cd5d08f12227146e61491ca41368d696d7f5b3c5ee020161389fa6d7af113bbe8b7ac0fb9038ec95f32260fff4b552b6a48e7603
|
data/.github/workflows/ci.yml
CHANGED
data/CHANGELOG-v1.md
CHANGED
@@ -1,6 +1,31 @@
|
|
1
1
|
# Release Notes for Extended Ruby Classes v1.x
|
2
2
|
|
3
|
-
## v1.
|
3
|
+
## v1.10.0
|
4
|
+
|
5
|
+
- [DEPRECATION] `Array.resolve_range_str` is deprecated.
|
6
|
+
- [DEPRECATION] `String.resolve_range` is deprecated.
|
7
|
+
|
8
|
+
## v1.9.0
|
9
|
+
|
10
|
+
- Tests
|
11
|
+
- Array Ranges
|
12
|
+
|
13
|
+
## v1.8.0
|
14
|
+
|
15
|
+
- Ruby v3 Support
|
16
|
+
|
17
|
+
## v1.7.0
|
18
|
+
|
19
|
+
- GitHub Actions
|
20
|
+
- Ruby Support: 2.4, 2.5, 2.6, 2.7
|
21
|
+
|
22
|
+
## v1.6.3 [unreleased]
|
23
|
+
|
24
|
+
Only RCs.
|
25
|
+
|
26
|
+
## v1.6.1
|
27
|
+
|
28
|
+
- Deployment
|
4
29
|
|
5
30
|
## v1.6.0
|
6
31
|
|
data/README.md
CHANGED
data/bin/dev
ADDED
data/lib/thefox-ext/ext/array.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
|
2
2
|
class Array
|
3
3
|
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
# DEPRECATED: will be removed in v2.0.0.
|
5
|
+
def self.resolve_range_str(original_str, prefix = '')
|
6
|
+
warn "[DEPRECATION] `Array.resolve_range_str` is deprecated."
|
7
|
+
|
8
8
|
rv = Array.new
|
9
9
|
if !original_str.is_a?(String)
|
10
10
|
return rv
|
@@ -24,13 +24,13 @@ class Array
|
|
24
24
|
else
|
25
25
|
item_striped.to_i
|
26
26
|
end
|
27
|
-
}.each
|
27
|
+
}.each{ |range|
|
28
28
|
if range.is_a?(Range)
|
29
29
|
rv.push(*range.to_a)
|
30
30
|
else
|
31
31
|
rv << range
|
32
32
|
end
|
33
|
-
|
33
|
+
}
|
34
34
|
|
35
35
|
rv
|
36
36
|
end
|
@@ -63,4 +63,64 @@ class String
|
|
63
63
|
self.force_encoding('ISO-8859-1').encode('UTF-8')
|
64
64
|
end
|
65
65
|
end
|
66
|
+
|
67
|
+
# DEPRECATED: will be removed in v2.0.0.
|
68
|
+
def resolve_range(prefix = '')
|
69
|
+
# puts '-> resolve_range: %s {%s}' % [self, prefix]
|
70
|
+
warn "[DEPRECATION] `String.resolve_range` is deprecated. Please use `TheFox::Range::Resolver` instead."
|
71
|
+
|
72
|
+
rv = Array.new
|
73
|
+
|
74
|
+
items = []
|
75
|
+
is_sub_range = false
|
76
|
+
sub_item = []
|
77
|
+
self.split(',').each do |item|
|
78
|
+
if item.count('{') > 0
|
79
|
+
is_sub_range = true
|
80
|
+
end
|
81
|
+
if is_sub_range
|
82
|
+
sub_item.push(item)
|
83
|
+
else
|
84
|
+
items.push(item)
|
85
|
+
end
|
86
|
+
if item.count('}') > 0
|
87
|
+
is_sub_range = false
|
88
|
+
items.push(sub_item.join(','))
|
89
|
+
sub_item = []
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
items.map{ |item|
|
94
|
+
item_striped = item.strip
|
95
|
+
if range_match = item_striped.match(/(\d+)\{([\d\-\+,]+)\}/)
|
96
|
+
range_match[2].resolve_range(range_match[1])
|
97
|
+
elsif /\.\./.match(item_striped) # ( . )( . ) <--- BOOBS
|
98
|
+
Range.new(*item_striped.split('..', 2).map{ |range| range.to_i })
|
99
|
+
elsif /-/.match(item_striped)
|
100
|
+
Range.new(*item_striped.split('-', 2).map{ |range| range.to_i })
|
101
|
+
elsif /\+/.match(item_striped)
|
102
|
+
range_begin = item_striped.split('+').first.to_i
|
103
|
+
range_end = range_begin + item_striped.count('+')
|
104
|
+
Range.new(range_begin, range_end)
|
105
|
+
else
|
106
|
+
item_striped.to_i
|
107
|
+
end
|
108
|
+
}.each{ |range|
|
109
|
+
if range.is_a?(Range)
|
110
|
+
rv.push(*range.to_a)
|
111
|
+
elsif range.is_a?(Array)
|
112
|
+
rv.push(*range)
|
113
|
+
else
|
114
|
+
rv << range
|
115
|
+
end
|
116
|
+
}
|
117
|
+
|
118
|
+
if !prefix.empty?
|
119
|
+
rv = rv.map { |i|
|
120
|
+
(prefix + i.to_s).to_i
|
121
|
+
}
|
122
|
+
end
|
123
|
+
|
124
|
+
rv
|
125
|
+
end
|
66
126
|
end
|
data/lib/thefox-ext/version.rb
CHANGED
data/thefox-ext.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.files = `git ls-files -z`.split("\x0").reject{ |f| f.match(%r{^(test|spec|features)/}) }
|
21
21
|
spec.require_paths = ['lib']
|
22
|
-
spec.required_ruby_version = ['>=2.3.0'
|
22
|
+
spec.required_ruby_version = ['>=2.3.0']
|
23
23
|
|
24
24
|
spec.add_development_dependency 'minitest', '~>5.8'
|
25
25
|
spec.add_development_dependency 'simplecov', '~>0.13'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thefox-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -67,7 +67,7 @@ files:
|
|
67
67
|
- Gemfile
|
68
68
|
- LICENSE
|
69
69
|
- README.md
|
70
|
-
- bin
|
70
|
+
- bin/dev
|
71
71
|
- bin/install.sh
|
72
72
|
- bin/release.sh
|
73
73
|
- bin/setup.sh
|
@@ -99,17 +99,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
99
99
|
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: 2.3.0
|
102
|
-
- - "<"
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '3.0'
|
105
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
103
|
requirements:
|
107
|
-
- - "
|
104
|
+
- - ">="
|
108
105
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
106
|
+
version: '0'
|
110
107
|
requirements: []
|
111
|
-
|
112
|
-
rubygems_version: 2.7.6.2
|
108
|
+
rubygems_version: 3.2.15
|
113
109
|
signing_key:
|
114
110
|
specification_version: 4
|
115
111
|
summary: Extended Ruby Classes
|
data/bin/.gitignore
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
dev
|