ruby_smart-support 1.1.1 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd347393200ee92556b1d3ea0c6c364d5da5a13be34100fda90056005ac22adf
4
- data.tar.gz: 92bf3aae8deda45cc40b2aa7eb77d5e8774e9ae46320246642e6ea1c8ba3102a
3
+ metadata.gz: 4e2254a95ec35c6fcbd887b968dbc6a75bdfdc68289450f19b79b302cd9010d9
4
+ data.tar.gz: ade5163e4e702f1a9526da9619d40db03b60ba16505ec1e5c5408ce67642d00d
5
5
  SHA512:
6
- metadata.gz: aec073cf8aece0a5930fe22f83365fe804bc589b40b84b7524f5b21edaf4053df678b59968f9c1f1222b7773ec228b3cda5343d9d8c99fb7f7eddc79ab7d869e
7
- data.tar.gz: fdc642a6c32398c676e353599d61855390999eca7aea52a3c5a51a0a9c0fc7e3c28ea3c264fc75ac5112e3b30bd8dc97ebea664b819016b160567e854e6be90a
6
+ metadata.gz: e828e44eca0c4d4c7723a03f1364463d2c6d9d7190218a089ea401c8c40d3762ef491d5df0d8d9d7086144407db7253058e7beb424771369e4ac5f1b37209fa8
7
+ data.tar.gz: c44c1784d5219dc885ab96c5dace9f877e8ded2f7c1d6ae4a2aab111a480de21ebaf03d4ae0ca63cd8f81e7625c5e3f386d1f02e55a6873b103b33ff001c0316
data/.gitignore CHANGED
@@ -1,22 +1,25 @@
1
+ # defaults
1
2
  /.bundle/
3
+ /tmp/
4
+ Gemfile.lock
5
+
6
+ # testing
7
+ .rspec_status
8
+ /spec/reports/
9
+
10
+ # documentation & coverage
2
11
  /.yardoc
3
12
  /_yardoc/
4
13
  /coverage/
5
14
  /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
15
+ /docs/yard
16
+ /.coveralls.yml
9
17
 
10
- # rspec failure tracking
11
- .rspec_status
18
+ # builds
19
+ /pkg/
20
+ /*.gem
12
21
 
13
22
  # IDE related files
14
23
  /.idea
15
24
  /.ruby-version
16
- /.bundle-version
17
-
18
- # Github testing
19
- Gemfile.lock
20
-
21
- # builds
22
- /*.gem
25
+ /.bundle-version
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --embed-mixins
2
+ --markup=markdown
3
+ --files docs/*.*
4
+ --plugin relative_markdown_links
data/README.md CHANGED
@@ -1,8 +1,13 @@
1
1
  # RubySmart::Support
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/ruby_smart-support.svg)](https://badge.fury.io/rb/ruby_smart-support)
4
- [![Test](https://github.com/ruby-smart/support/actions/workflows/ruby.yml/badge.svg)](https://github.com/ruby-smart/support/actions/workflows/ruby.yml)
5
- [![RubySmart::Support Build Status](https://shields.io/github/workflow/status/ruby-smart/support/Test)](https://github.com/ruby-smart/support/actions)
3
+ [![GitHub](https://img.shields.io/badge/github-ruby--smart/support-blue.svg)](http://github.com/ruby-smart/support)
4
+ [![Documentation](https://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://rubydoc.info/gems/ruby_smart-support)
5
+
6
+ [![Gem Version](https://badge.fury.io/rb/ruby_smart-support.svg?kill_cache=1)](https://badge.fury.io/rb/ruby_smart-support)
7
+ [![License](https://img.shields.io/github/license/ruby-smart/support)](docs/LICENSE.txt)
8
+
9
+ [![Coverage Status](https://coveralls.io/repos/github/ruby-smart/support/badge.svg?branch=main&kill_cache=1)](https://coveralls.io/github/ruby-smart/support?branch=main)
10
+ [![Tests](https://github.com/ruby-smart/support/actions/workflows/ruby.yml/badge.svg)](https://github.com/ruby-smart/support/actions/workflows/ruby.yml)
6
11
 
7
12
  A toolkit of support libraries including GemInfo, ThreadInfo, Ruby core extensions & optionally activesupport extensions.
8
13
 
@@ -43,6 +48,9 @@ Or install it yourself as:
43
48
  * to `append` & `prepend` additional blocks
44
49
  * to check task-state with `#invoked?`, `#performed?` & `#running?`
45
50
 
51
+
52
+
53
+
46
54
  -----
47
55
 
48
56
  ## ThreadInfo module
@@ -191,19 +199,19 @@ rake db:migrate
191
199
 
192
200
  ## Docs
193
201
 
194
- [CHANGELOG](./docs/CHANGELOG.md)
202
+ [CHANGELOG](docs/CHANGELOG.md)
195
203
 
196
204
  ## Contributing
197
205
 
198
206
  Bug reports and pull requests are welcome on [GitHub](https://github.com/ruby-smart/support).
199
- This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](./docs/CODE_OF_CONDUCT.md).
207
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](docs/CODE_OF_CONDUCT.md).
200
208
 
201
209
  ## License
202
210
 
203
211
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
204
212
 
205
- A copy of the [LICENSE](./docs/LICENSE.txt) can be found @ the docs.
213
+ A copy of the [LICENSE](docs/LICENSE.txt) can be found @ the docs.
206
214
 
207
215
  ## Code of Conduct
208
216
 
209
- Everyone interacting in the project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [CODE OF CONDUCT](./docs/CODE_OF_CONDUCT.md).
217
+ Everyone interacting in the project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [CODE OF CONDUCT](docs/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -5,12 +5,4 @@ require "rspec/core/rake_task"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- task default: :spec
9
-
10
- # ----- Documentation tasks ---------------------------------------------------
11
-
12
- require 'yard'
13
- YARD::Rake::YardocTask.new(:doc) do |t|
14
- t.options = %w| --embed-mixins --markup=markdown|
15
- t.files = ['lib/**/*.rb','-','docs/*.*']
16
- end
8
+ task default: :spec
data/bin/console CHANGED
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "bundler/setup"
5
- require "ruby_smart/support"
5
+ require "ruby_smart-support"
6
6
 
7
7
  # You can add fixtures and/or initialization code here to make experimenting
8
8
  # with your gem easier. You can also use a different console, if you like.
data/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # RubySmart::Support - CHANGELOG
2
2
 
3
+ ## [1.3.0] - 2023-08-08
4
+ * **[add]** `Enumerator.from_hash` to easily resolve values from Array-of-Hashes (use: ary.map.from_hash(key))
5
+ * **[add]** `RubySmart::Support::GemInfo.licenses` to resolve a hash of licences per loaded gem
6
+ * **[fix]** `RubySmart::Support::ThreadInfo.winsize`-detection for debug-ENVs
7
+ * **[ref]** `RubySmart::Support::ThreadInfo.name` to show full application namespace
8
+ * **[ref]** `RubySmart::Support::ThreadInfo.info` to show a optimized info-string
9
+
10
+ ## [1.2.0] - 2023-01-24
11
+ * **[ref]** `GemInfo` methods (active -> required & active? -> required?)
12
+ * **[ref]** simplify `GemInfo.match?`method
13
+ * **[fix]** `Hash#to_md5` method to use `#inspect` instead of `#to_s`
14
+
3
15
  ## [1.1.1] - 2022-11-15
4
16
  * **[fix]** `GemInfo` & `ThreadInfo` not being included on require 'ruby_smart-support'
5
17
  * **[fix]** yard comments
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ unless Enumerator.method_defined? :from_hash
4
+ class Enumerator
5
+ # returns a new array with only values from provided key.
6
+ # The Enumerator must be an array of hashes.
7
+ #
8
+ # @example
9
+ # ary = [{a: 34, b: 12}, {a: 19, c: 4}, {b: 3, c: 11}]
10
+ # ary.with_hash(:a)
11
+ # > [34, 19, nil]
12
+ #
13
+ # @param [Object] key
14
+ # @return [Array] ary
15
+ def from_hash(key)
16
+ map &->(item){item[key]}
17
+ end
18
+ end
19
+ end
@@ -2,10 +2,10 @@
2
2
 
3
3
  unless Hash.method_defined? "to_md5"
4
4
  class Hash
5
- # returns the md5 of any hash by using the to_s method
5
+ # returns the md5 of any hash by using the +#inspect+ method
6
6
  # @return [String] md5
7
7
  def to_md5
8
- Digest::MD5.hexdigest(Hash[self.sort].to_s)
8
+ Digest::MD5.hexdigest(Hash[self.sort].inspect)
9
9
  end
10
10
  end
11
11
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "core_ext/ruby/array"
4
+ require_relative "core_ext/ruby/enumerator"
4
5
  require_relative "core_ext/ruby/float"
5
6
  require_relative "core_ext/ruby/hash"
6
7
  require_relative "core_ext/ruby/object"
@@ -15,8 +15,10 @@ module RubySmart
15
15
 
16
16
  # returns a hash of all installed gems with it's versions
17
17
  #
18
+ # @example
19
+ #
18
20
  # GemInfo.installed
19
- # > {'bundler' => ['2.2.30', '1.2.3']}
21
+ # # > {'bundler' => ['2.2.30', '1.2.3']}
20
22
  #
21
23
  # @return [Hash{<name> => Array[<version>]}] gem name-versions hash
22
24
  def self.installed
@@ -27,10 +29,10 @@ module RubySmart
27
29
  # the optional version requirement matches against any available version
28
30
  #
29
31
  # GemInfo.installed?('bundler')
30
- # > true
32
+ # # > true
31
33
  #
32
34
  # GemInfo.installed?('bundler', '~> 3.0')
33
- # > false
35
+ # # > false
34
36
  #
35
37
  # @param [String] name - the gem name
36
38
  # @param [nil, String] version - optional version requirement
@@ -41,22 +43,36 @@ module RubySmart
41
43
 
42
44
  # returns a hash of all loaded gems with its current version
43
45
  #
46
+ # @example
47
+ #
44
48
  # GemInfo.loaded
45
- # > {'bundler' => '2.2.30'}
49
+ # # > {'bundler' => '2.2.30'}
46
50
  #
47
51
  # @return [Hash{<name> => <version>}] gem name-version hash
48
52
  def self.loaded
49
53
  Hash[::Gem.loaded_specs.values.map { |g| [g.name, g.version.to_s] }.sort]
50
54
  end
51
55
 
52
- # returns true if the provided gem name is loaded.
56
+ # returns a hash of all loaded gems with it's licenses
57
+ #
58
+ # @example
59
+ #
60
+ # GemInfo.licenses
61
+ # # > {'bundler' => 'MIT', 'hashery' => 'BSD-2-Clause'}
62
+ #
63
+ # @return [Hash{<name> => <license>}] licenses
64
+ def self.licenses
65
+ Hash[::Gem.loaded_specs.values.map { |g| [g.name, g.license || '?'] }.sort]
66
+ end
67
+
68
+ # returns true if the provided gem name is loaded (defined within any Gemfile), but must not be required yet.
53
69
  # the optional version requirement matches against the loaded version
54
70
  #
55
71
  # GemInfo.loaded?('bundler')
56
- # > true
72
+ # # > true
57
73
  #
58
74
  # GemInfo.loaded?('bundler', '~> 3.0')
59
- # > false
75
+ # # > false
60
76
  #
61
77
  # @param [String] name - the gem name
62
78
  # @param [nil, String] version - optional version requirement
@@ -65,13 +81,13 @@ module RubySmart
65
81
  loaded.key?(name) && (version.nil? || match?( loaded[name], version))
66
82
  end
67
83
 
68
- # returns an array of all active gems
84
+ # returns an array of all required gems
69
85
  #
70
- # GemInfo.active
86
+ # GemInfo.required
71
87
  # > ['bundler']
72
88
  #
73
89
  # @return [Array<name>}] gem names
74
- def self.active
90
+ def self.required
75
91
  $LOADED_FEATURES.
76
92
  select { |feature| feature.match(GEM_PATH_REGEXP) }.
77
93
  map { |feature|
@@ -82,20 +98,20 @@ module RubySmart
82
98
  sort
83
99
  end
84
100
 
85
- # returns true if the provided gem name is active.
86
- # the optional version requirement matches against the *loaded* version
101
+ # returns true if the provided gem name is required.
102
+ # the optional version matches against the *required* version
87
103
  #
88
- # GemInfo.active?('bundler')
104
+ # GemInfo.required?('bundler')
89
105
  # > true
90
106
  #
91
- # GemInfo.active?('bundler', '~> 3.0')
107
+ # GemInfo.required?('bundler', '~> 3.0')
92
108
  # > false
93
109
  #
94
110
  # @param [String] name - the gem name
95
111
  # @param [nil, String] version - optional version requirement
96
112
  # @return [Boolean] activated?
97
- def self.active?(name, version = nil)
98
- active.include?(name) && (version.nil? || match?(self.version(name), version))
113
+ def self.required?(name, version = nil)
114
+ required.include?(name) && (version.nil? || match?(self.version(name), version))
99
115
  end
100
116
 
101
117
  # returns an array of all loaded features
@@ -154,7 +170,7 @@ module RubySmart
154
170
  # @return [Boolean]
155
171
  def self.safe_require(path, gem = nil, version = nil)
156
172
  # check for missing gem (nicely check if the feature name differs to the gem name)
157
- return false if !gem.nil? && path != gem && !active?(gem, version)
173
+ return false if !gem.nil? && path != gem && !required?(gem, version)
158
174
 
159
175
  # try to require the feature
160
176
  begin
@@ -185,28 +201,23 @@ module RubySmart
185
201
  # > false
186
202
  def self.match?(*args)
187
203
  version_current = args.shift
188
- version_requirement = args.join ' '
204
+ version_requirement = args.join(' ')
189
205
 
190
206
  return true if version_requirement.nil? || version_requirement.strip == ''
191
207
 
192
- # split version compare operators
193
- version_requirement_str = version_requirement.gsub(/([=~>< ]+)/, '')
194
- version_requirement_op = $1
195
-
196
- # create plain versions without compare operators
197
208
  gem_version_current = Gem::Version.new(version_current)
198
- gem_version_requirement = Gem::Version.new(version_requirement_str)
209
+ gem_version_requirement = Gem::Requirement.new(version_requirement)
199
210
 
200
211
  # check if required version is PRE & current is NOT
201
212
  if gem_version_requirement.prerelease? && !gem_version_current.prerelease?
202
- version_requirement = "#{version_requirement_op}#{gem_version_requirement.release}"
213
+ gem_version_requirement = Gem::Requirement.new("#{gem_version_requirement.requirements[0][0]} #{gem_version_requirement.requirements[0][1].release.version}")
203
214
  elsif gem_version_requirement.prerelease? != gem_version_current.prerelease?
204
215
  # check if required version PRE doesn't equal current version PRE
205
- version_current = gem_version_current.release.to_s
216
+ gem_version_current = gem_version_current.release
206
217
  end
207
218
  # else is not required here: either its PRE && PRE || !PRE && !PRE
208
219
 
209
- Gem::Dependency.new('', version_requirement).match?('', version_current)
220
+ gem_version_requirement.satisfied_by?(gem_version_current)
210
221
  end
211
222
  end
212
223
  end
@@ -9,8 +9,8 @@ module RubySmart
9
9
 
10
10
  module VERSION
11
11
  MAJOR = 1
12
- MINOR = 1
13
- TINY = 1
12
+ MINOR = 3
13
+ TINY = 0
14
14
  PRE = nil
15
15
 
16
16
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
@@ -98,7 +98,7 @@ module RubySmart
98
98
  # @return [String] name
99
99
  def self.name
100
100
  return Rake.application.top_level_tasks.first.to_s if rake?
101
- return Rails.application.to_s.split('::').first if rails?
101
+ return Rails.application.class.name if rails?
102
102
  ''
103
103
  end
104
104
 
@@ -112,9 +112,7 @@ module RubySmart
112
112
  # returns the thread type string
113
113
  # @return [String] thread-info string
114
114
  def self.info
115
- strs = ["$#{id}", "[##{process_object_id}]","@ #{type}"]
116
- strs << " :: #{name}" if name != ''
117
- strs.join ' '
115
+ "$(#{id}) -> [##{process_object_id}] @ #{type} :: #{self.name}"
118
116
  end
119
117
 
120
118
  # returns true if thread has a 'window'
@@ -127,7 +125,7 @@ module RubySmart
127
125
  # @return [Array<rows, columns>] winsize
128
126
  def self.winsize
129
127
  return IO.console.winsize if io_console?
130
- return [ENV['ROWS'], ENV['COLUMNS']] unless ENV['ROWS'].nil? && ENV['COLUMNS'].nil?
128
+ return [ENV['ROWS'].to_i, ENV['COLUMNS'].to_i] unless ENV['ROWS'].nil? || ENV['COLUMNS'].nil?
131
129
  [0, 0]
132
130
  end
133
131
 
@@ -3,11 +3,10 @@
3
3
  require_relative 'lib/ruby_smart/support/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = 'ruby_smart-support'
7
- spec.version = RubySmart::Support.version
8
- spec.authors = ['Tobias Gonsior']
9
- spec.email = ['info@ruby-smart.org']
10
-
6
+ spec.name = 'ruby_smart-support'
7
+ spec.version = RubySmart::Support.version
8
+ spec.authors = ['Tobias Gonsior']
9
+ spec.email = ['info@ruby-smart.org']
11
10
  spec.summary = 'A toolkit of support libraries including GemInfo, ThreadInfo, Ruby core extensions & optionally activesupport extensions'
12
11
  spec.description = <<~DESC
13
12
  RubySmart::Support is a toolkit of support libraries for Ruby - major features includes GemInfo & ThreadInfo, as well core extensions for Ruby & activesupport (if installed).
@@ -17,9 +16,10 @@ Gem::Specification.new do |spec|
17
16
  spec.license = 'MIT'
18
17
  spec.required_ruby_version = '>= 2.6.0'
19
18
 
20
- spec.metadata['homepage_uri'] = spec.homepage
21
- spec.metadata['source_code_uri'] = 'https://github.com/ruby-smart/support'
22
- spec.metadata['changelog_uri'] = "#{spec.metadata["source_code_uri"]}/blob/main/docs/CHANGELOG.md"
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = 'https://github.com/ruby-smart/support'
21
+ spec.metadata['documentation_uri'] = 'https://rubydoc.info/gems/ruby_smart-support'
22
+ spec.metadata['changelog_uri'] = "#{spec.metadata["source_code_uri"]}/blob/main/docs/CHANGELOG.md"
23
23
 
24
24
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
25
25
 
@@ -32,8 +32,8 @@ Gem::Specification.new do |spec|
32
32
  spec.require_paths = ['lib']
33
33
 
34
34
  spec.add_development_dependency 'activesupport', '>= 4.0'
35
+ spec.add_development_dependency 'coveralls_reborn', '~> 0.25'
35
36
  spec.add_development_dependency 'rake', '~> 13.0'
36
37
  spec.add_development_dependency 'rspec', '~> 3.0'
37
- spec.add_development_dependency 'simplecov', '~> 0.21'
38
38
  spec.add_development_dependency 'yard', '~> 0.9'
39
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_smart-support
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Gonsior
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-15 00:00:00.000000000 Z
11
+ date: 2023-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -25,47 +25,47 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: coveralls_reborn
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '13.0'
33
+ version: '0.25'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '13.0'
40
+ version: '0.25'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '13.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '13.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: simplecov
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.21'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.21'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,7 @@ files:
94
94
  - ".github/workflows/ruby.yml"
95
95
  - ".gitignore"
96
96
  - ".rspec"
97
+ - ".yardopts"
97
98
  - Gemfile
98
99
  - README.md
99
100
  - Rakefile
@@ -110,6 +111,7 @@ files:
110
111
  - lib/ruby_smart/support/core_ext/rails/info.rb
111
112
  - lib/ruby_smart/support/core_ext/rake/task.rb
112
113
  - lib/ruby_smart/support/core_ext/ruby/array.rb
114
+ - lib/ruby_smart/support/core_ext/ruby/enumerator.rb
113
115
  - lib/ruby_smart/support/core_ext/ruby/float.rb
114
116
  - lib/ruby_smart/support/core_ext/ruby/hash.rb
115
117
  - lib/ruby_smart/support/core_ext/ruby/object.rb
@@ -126,6 +128,7 @@ licenses:
126
128
  metadata:
127
129
  homepage_uri: https://github.com/ruby-smart/support
128
130
  source_code_uri: https://github.com/ruby-smart/support
131
+ documentation_uri: https://rubydoc.info/gems/ruby_smart-support
129
132
  changelog_uri: https://github.com/ruby-smart/support/blob/main/docs/CHANGELOG.md
130
133
  allowed_push_host: https://rubygems.org
131
134
  post_install_message:
@@ -143,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
146
  - !ruby/object:Gem::Version
144
147
  version: '0'
145
148
  requirements: []
146
- rubygems_version: 3.3.22
149
+ rubygems_version: 3.3.7
147
150
  signing_key:
148
151
  specification_version: 4
149
152
  summary: A toolkit of support libraries including GemInfo, ThreadInfo, Ruby core extensions