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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdffb85cdbbe31d2df7577ff7aa3d04b46558ee3901d6fcd666bd547eceb3e2d
4
- data.tar.gz: 9527125c68ffd2b21efaaeba4beee8b6958c89823e81f62ccbe9c27f8c82db3e
3
+ metadata.gz: 6b68b006a1bf2b6cdc73ca86ef2291c7fe8561e622cdf9f4b6434df6ced40a48
4
+ data.tar.gz: 9e05dc8bedd4a625040d4899ed3f19315fa58c9a998e8cfc5749e929e15d7451
5
5
  SHA512:
6
- metadata.gz: a4005329ccf5422c2fe81f2e23c15560e03141393c36993c87c98ba891a27be999c943dbccaa75ac15bd57daf8f48e25640bfa8f48902371dcd20f4391457b3e
7
- data.tar.gz: 761e16f1c09e1e4891dac67b3bcb3db2a5a3c2f28c865de30c0fae53240a0efde47d38825c8631f9d85b739917597ede588dd9df88a37f6e96bed192d19d6a52
6
+ metadata.gz: 91b5ff18299878084605508f46a5559b8339d52006e32b1908c5a44ee8c04bfa420cddd6fabdf8c7f0996b4d093dae9c916d9affd4efc0c22df3aca2d4ff181d
7
+ data.tar.gz: d7629b1cff75db5e14ea30a5cd5d08f12227146e61491ca41368d696d7f5b3c5ee020161389fa6d7af113bbe8b7ac0fb9038ec95f32260fff4b552b6a48e7603
@@ -10,8 +10,6 @@ on:
10
10
  push:
11
11
  branches:
12
12
  - master
13
- tags:
14
- - v*
15
13
 
16
14
  jobs:
17
15
  test:
@@ -22,6 +20,9 @@ jobs:
22
20
  - '2.3'
23
21
  - '2.4'
24
22
  - '2.5'
23
+ - '2.6'
24
+ - '2.7'
25
+ - '3.0'
25
26
  steps:
26
27
  - uses: actions/checkout@v2
27
28
  - name: Set up Ruby
@@ -17,7 +17,7 @@ jobs:
17
17
  strategy:
18
18
  matrix:
19
19
  ruby-version:
20
- - '2.5'
20
+ - '3.0'
21
21
  steps:
22
22
  - uses: actions/checkout@v2
23
23
  - name: Set up Ruby
data/CHANGELOG-v1.md CHANGED
@@ -1,6 +1,31 @@
1
1
  # Release Notes for Extended Ruby Classes v1.x
2
2
 
3
- ## v1.7.0 [unreleased]
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
@@ -21,7 +21,7 @@ gem install thefox-ext
21
21
  or via `Gemfile`:
22
22
 
23
23
  ```ruby
24
- gem 'thefox-ext', '~>1.5'
24
+ gem 'thefox-ext', '~>1.10'
25
25
  ```
26
26
 
27
27
  Use it in your sources:
data/bin/dev ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # coding: UTF-8
3
+
4
+ require 'thefox-ext'
5
+ require 'pp'
6
+
@@ -1,10 +1,10 @@
1
1
 
2
2
  class Array
3
3
 
4
- # Resolve a range string to an array.
5
- # A range string can be like '1, 3..5, 9-11, 12+, 14++, 17+++'.
6
- # Which will be resolved to [1, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].
7
- def self.resolve_range_str(original_str)
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 do |range|
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
- end
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
@@ -1,8 +1,8 @@
1
1
 
2
2
  module TheFox
3
3
  module Ext
4
- VERSION = '1.7.0-rc.1'
5
- DATE = '2021-04-05'
4
+ VERSION = '1.10.0'
5
+ DATE = '2021-04-08'
6
6
  HOMEPAGE = 'https://github.com/TheFox/ext.rb'
7
7
  end
8
8
  end
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', '<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.7.0.pre.rc.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-05 00:00:00.000000000 Z
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/.gitignore
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: 1.3.1
106
+ version: '0'
110
107
  requirements: []
111
- rubyforge_project:
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