thefox-ext 1.7.0.pre.rc.1 → 1.10.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/.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
|