more_core_extensions 4.3.1 → 4.5.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/.codeclimate.yml +1 -1
- data/.github/workflows/ci.yaml +36 -0
- data/.rspec +2 -2
- data/.rubocop_local.yml +1 -1
- data/.whitesource +3 -0
- data/CHANGELOG.md +14 -1
- data/README.md +4 -5
- data/lib/more_core_extensions/core_ext/array/deletes.rb +1 -0
- data/lib/more_core_extensions/core_ext/array/math.rb +1 -0
- data/lib/more_core_extensions/core_ext/class/hierarchy.rb +15 -2
- data/lib/more_core_extensions/core_ext/digest/uuid.rb +1 -0
- data/lib/more_core_extensions/core_ext/hash/deletes.rb +1 -0
- data/lib/more_core_extensions/core_ext/object.rb +1 -0
- data/lib/more_core_extensions/core_ext/string/iec60027_2.rb +3 -1
- data/lib/more_core_extensions/version.rb +1 -1
- data/more_core_extensions.gemspec +4 -5
- data/renovate.json +6 -0
- metadata +22 -34
- data/.travis.yml +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04f199c1b780aeb9dd4c5e086942ad1fc4987e37203ef20fe0b583003f1eb456
|
4
|
+
data.tar.gz: d8b2aedd38f9cf16f922ccc5e842a80096b97adbae6174a3f4886e57d9cd3169
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 651eae2e5b48c2354f1ff78b4846529f3ed6e18b594fa6c396d2353d942d99e2b51ce3b142c9c676dca7efc4c211aa5babd532d5744503e67c0c6f45a9f8ea85
|
7
|
+
data.tar.gz: 2e959bcb9b4627a7d9f9e107bf67fb134f34525fb3ed1ef15c9114721686da6d9085e52d2bb6de3e8cab267d52060b132e0d61e47f9e78711d84af23a4ee192f
|
data/.codeclimate.yml
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
name: CI
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
schedule:
|
7
|
+
- cron: 0 0 * * 0
|
8
|
+
jobs:
|
9
|
+
ci:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
strategy:
|
12
|
+
matrix:
|
13
|
+
ruby-version:
|
14
|
+
- '2.5'
|
15
|
+
- '2.6'
|
16
|
+
- '2.7'
|
17
|
+
- '3.0'
|
18
|
+
- '3.1'
|
19
|
+
- '3.2'
|
20
|
+
- '3.3'
|
21
|
+
env:
|
22
|
+
CC_TEST_REPORTER_ID: "${{ secrets.CC_TEST_REPORTER_ID }}"
|
23
|
+
steps:
|
24
|
+
- uses: actions/checkout@v4
|
25
|
+
- name: Set up Ruby
|
26
|
+
uses: ruby/setup-ruby@v1
|
27
|
+
with:
|
28
|
+
ruby-version: "${{ matrix.ruby-version }}"
|
29
|
+
bundler-cache: true
|
30
|
+
timeout-minutes: 30
|
31
|
+
- name: Run tests
|
32
|
+
run: bundle exec rake
|
33
|
+
- name: Report code coverage
|
34
|
+
if: ${{ github.ref == 'refs/heads/master' && matrix.ruby-version == '3.1' }}
|
35
|
+
continue-on-error: true
|
36
|
+
uses: paambaati/codeclimate-action@v9
|
data/.rspec
CHANGED
data/.rubocop_local.yml
CHANGED
data/.whitesource
ADDED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
## [Unreleased]
|
6
6
|
|
7
|
+
## [4.5.0] - 2024-09-03
|
8
|
+
### Added
|
9
|
+
- Added Ruby 3.0 and 3.1 support [[#114](https://github.com/ManageIQ/more_core_extensions/pull/114)]
|
10
|
+
- Added Ruby 3.2 and 3.3 support [[#123](https://github.com/ManageIQ/more_core_extensions/pull/123)]
|
11
|
+
- Add Class#hierarchy block support to allow formatting of classes [[#113](https://github.com/ManageIQ/more_core_extensions/pull/113)]
|
12
|
+
|
13
|
+
## [4.4.0] - 2022-03-01
|
14
|
+
### Added
|
15
|
+
- Add support for Rails 7 ActiveSupport [[#105](https://github.com/ManageIQ/more_core_extensions/pull/105)]
|
16
|
+
- Add float base support to String#iec_60027_2_to_i [[#106](https://github.com/ManageIQ/more_core_extensions/pull/106)]
|
17
|
+
|
7
18
|
## [4.3.1] - 2021-07-13
|
8
19
|
### Changed
|
9
20
|
- Fix String#to_i_with_method to raise the correct error on private methods [[#101](https://github.com/ManageIQ/more_core_extensions/pull/101)]
|
@@ -107,7 +118,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
107
118
|
- Upgraded to RSpec 3 [[#16](https://github.com/ManageIQ/more_core_extensions/pull/16)]
|
108
119
|
- Added the Change Log!
|
109
120
|
|
110
|
-
[Unreleased]: https://github.com/ManageIQ/more_core_extensions/compare/v4.
|
121
|
+
[Unreleased]: https://github.com/ManageIQ/more_core_extensions/compare/v4.5.0...HEAD
|
122
|
+
[4.5.0]: https://github.com/ManageIQ/more_core_extensions/compare/v4.3.1...v4.5.0
|
123
|
+
[4.4.0]: https://github.com/ManageIQ/more_core_extensions/compare/v4.3.1...v4.4.0
|
111
124
|
[4.3.1]: https://github.com/ManageIQ/more_core_extensions/compare/v4.3.0...v4.3.1
|
112
125
|
[4.3.0]: https://github.com/ManageIQ/more_core_extensions/compare/v4.2.0...v4.3.0
|
113
126
|
[4.2.0]: https://github.com/ManageIQ/more_core_extensions/compare/v4.1.0...v4.2.0
|
data/README.md
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
# MoreCoreExtensions
|
2
2
|
|
3
|
-
[](https://gitter.im/ManageIQ/more_core_extensions?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
4
|
-
|
5
3
|
MoreCoreExtensions are a set of core extensions beyond those provided by ActiveSupport.
|
6
4
|
|
7
5
|
[](http://badge.fury.io/rb/more_core_extensions)
|
8
|
-
[](https://github.com/ManageIQ/more_core_extensions/actions/workflows/ci.yaml)
|
7
|
+
[](https://codeclimate.com/github/ManageIQ/more_core_extensions)
|
10
8
|
[](https://coveralls.io/r/ManageIQ/more_core_extensions)
|
11
|
-
|
9
|
+
|
10
|
+
[](https://gitter.im/ManageIQ/more_core_extensions?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
12
11
|
|
13
12
|
## Extensions Provided
|
14
13
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_support'
|
1
2
|
require 'active_support/core_ext/class/subclasses'
|
2
3
|
require 'active_support/core_ext/object/try'
|
3
4
|
|
@@ -21,6 +22,8 @@ module MoreCoreExtensions
|
|
21
22
|
|
22
23
|
# Returns a tree-like Hash structure of all descendants.
|
23
24
|
#
|
25
|
+
# If a block is passed, that block is used to format the keys of the hierarchy
|
26
|
+
#
|
24
27
|
# require 'socket'
|
25
28
|
# IO.hierarchy
|
26
29
|
# # => {BasicSocket=>
|
@@ -28,8 +31,18 @@ module MoreCoreExtensions
|
|
28
31
|
# # IPSocket=>{TCPSocket=>{TCPServer=>{}}, UDPSocket=>{}},
|
29
32
|
# # UNIXSocket=>{UNIXServer=>{}}},
|
30
33
|
# # File=>{}}
|
31
|
-
|
32
|
-
|
34
|
+
#
|
35
|
+
# IO.hierarchy(&:name)
|
36
|
+
# # => {"BasicSocket"=>
|
37
|
+
# # {"Socket"=>{},
|
38
|
+
# # "IPSocket"=>{"TCPSocket"=>{"TCPServer"=>{}}, "UDPSocket"=>{}},
|
39
|
+
# # "UNIXSocket"=>{"UNIXServer"=>{}}},
|
40
|
+
# # "File"=>{}}
|
41
|
+
def hierarchy(&block)
|
42
|
+
subclasses.each_with_object({}) do |k, h|
|
43
|
+
key = block ? yield(k) : k
|
44
|
+
h[key] = k.hierarchy(&block)
|
45
|
+
end
|
33
46
|
end
|
34
47
|
|
35
48
|
# Returns an Array of all superclasses.
|
@@ -9,8 +9,10 @@ module MoreCoreExtensions
|
|
9
9
|
suffix_index = IEC_60027_2_SIZE_SUFFIXES.index(self[-2..-1])
|
10
10
|
if suffix_index.nil?
|
11
11
|
Integer(self)
|
12
|
+
elsif include?(".")
|
13
|
+
Integer(Float(self[0..-3]) * ((2**10)**(suffix_index + 1)))
|
12
14
|
else
|
13
|
-
Integer(self[0..-3]) * (2**10)**(suffix_index + 1)
|
15
|
+
Integer(self[0..-3]) * ((2**10)**(suffix_index + 1))
|
14
16
|
end
|
15
17
|
end
|
16
18
|
end
|
@@ -22,14 +22,13 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.required_ruby_version = ">= 2.0.0"
|
24
24
|
|
25
|
+
spec.add_runtime_dependency "activesupport"
|
26
|
+
spec.add_runtime_dependency "sync"
|
27
|
+
|
25
28
|
spec.add_development_dependency "bundler"
|
26
|
-
spec.add_development_dependency "codeclimate-test-reporter"
|
27
29
|
spec.add_development_dependency "manageiq-style"
|
28
30
|
spec.add_development_dependency "rake"
|
29
31
|
spec.add_development_dependency "rspec", ">= 3.0"
|
30
|
-
spec.add_development_dependency "simplecov"
|
32
|
+
spec.add_development_dependency "simplecov", ">= 0.21.2"
|
31
33
|
spec.add_development_dependency "timecop"
|
32
|
-
|
33
|
-
spec.add_runtime_dependency "activesupport"
|
34
|
-
spec.add_runtime_dependency "sync"
|
35
34
|
end
|
data/renovate.json
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: more_core_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Frey
|
@@ -9,16 +9,16 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-09-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: activesupport
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
|
-
type: :
|
21
|
+
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
@@ -26,13 +26,13 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: sync
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
|
-
type: :
|
35
|
+
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: bundler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - ">="
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: manageiq-style
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - ">="
|
@@ -68,21 +68,7 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '3.0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '3.0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: simplecov
|
71
|
+
name: rake
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
87
73
|
requirements:
|
88
74
|
- - ">="
|
@@ -96,41 +82,41 @@ dependencies:
|
|
96
82
|
- !ruby/object:Gem::Version
|
97
83
|
version: '0'
|
98
84
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
85
|
+
name: rspec
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
88
|
- - ">="
|
103
89
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
90
|
+
version: '3.0'
|
105
91
|
type: :development
|
106
92
|
prerelease: false
|
107
93
|
version_requirements: !ruby/object:Gem::Requirement
|
108
94
|
requirements:
|
109
95
|
- - ">="
|
110
96
|
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
97
|
+
version: '3.0'
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
99
|
+
name: simplecov
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
115
101
|
requirements:
|
116
102
|
- - ">="
|
117
103
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
119
|
-
type: :
|
104
|
+
version: 0.21.2
|
105
|
+
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
108
|
requirements:
|
123
109
|
- - ">="
|
124
110
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
111
|
+
version: 0.21.2
|
126
112
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
113
|
+
name: timecop
|
128
114
|
requirement: !ruby/object:Gem::Requirement
|
129
115
|
requirements:
|
130
116
|
- - ">="
|
131
117
|
- !ruby/object:Gem::Version
|
132
118
|
version: '0'
|
133
|
-
type: :
|
119
|
+
type: :development
|
134
120
|
prerelease: false
|
135
121
|
version_requirements: !ruby/object:Gem::Requirement
|
136
122
|
requirements:
|
@@ -147,12 +133,13 @@ extensions: []
|
|
147
133
|
extra_rdoc_files: []
|
148
134
|
files:
|
149
135
|
- ".codeclimate.yml"
|
136
|
+
- ".github/workflows/ci.yaml"
|
150
137
|
- ".gitignore"
|
151
138
|
- ".rspec"
|
152
139
|
- ".rubocop.yml"
|
153
140
|
- ".rubocop_cc.yml"
|
154
141
|
- ".rubocop_local.yml"
|
155
|
-
- ".
|
142
|
+
- ".whitesource"
|
156
143
|
- CHANGELOG.md
|
157
144
|
- Gemfile
|
158
145
|
- LICENSE.txt
|
@@ -211,6 +198,7 @@ files:
|
|
211
198
|
- lib/more_core_extensions/core_ext/symbol/to_i.rb
|
212
199
|
- lib/more_core_extensions/version.rb
|
213
200
|
- more_core_extensions.gemspec
|
201
|
+
- renovate.json
|
214
202
|
homepage: http://github.com/ManageIQ/more_core_extensions
|
215
203
|
licenses:
|
216
204
|
- MIT
|
@@ -230,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
230
218
|
- !ruby/object:Gem::Version
|
231
219
|
version: '0'
|
232
220
|
requirements: []
|
233
|
-
rubygems_version: 3.
|
221
|
+
rubygems_version: 3.5.17
|
234
222
|
signing_key:
|
235
223
|
specification_version: 4
|
236
224
|
summary: MoreCoreExtensions are a set of core extensions beyond those provided by
|
data/.travis.yml
DELETED