ruby_smart-support 1.0.0 → 1.1.1

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: 9ddd076dedba91f00229b1a827c9d07f4d97670cfbac540ad050cb0b20817079
4
- data.tar.gz: 22d199ba3c75ab029323ff44589234e839b84a72de6cd45374300c85bba49d2a
3
+ metadata.gz: fd347393200ee92556b1d3ea0c6c364d5da5a13be34100fda90056005ac22adf
4
+ data.tar.gz: 92bf3aae8deda45cc40b2aa7eb77d5e8774e9ae46320246642e6ea1c8ba3102a
5
5
  SHA512:
6
- metadata.gz: e53d6679db01e5bcd40503cc6ced2657bcf431e465c7c45d877ca01fce9e4d3a3fbd142cdfb193582a843d9fe9e45019a31033bab34af762a530aadea2b57c45
7
- data.tar.gz: b0176b30822758271ea3028e0f15ca9020f529760bd7738b38dcba58a0594c5e3536cf078ad313bc65942dc1a53f952e84b39c02839fac46007dd8f66f434c1e
6
+ metadata.gz: aec073cf8aece0a5930fe22f83365fe804bc589b40b84b7524f5b21edaf4053df678b59968f9c1f1222b7773ec228b3cda5343d9d8c99fb7f7eddc79ab7d869e
7
+ data.tar.gz: fdc642a6c32398c676e353599d61855390999eca7aea52a3c5a51a0a9c0fc7e3c28ea3c264fc75ac5112e3b30bd8dc97ebea664b819016b160567e854e6be90a
data/.gitignore CHANGED
@@ -17,3 +17,6 @@
17
17
 
18
18
  # Github testing
19
19
  Gemfile.lock
20
+
21
+ # builds
22
+ /*.gem
data/README.md CHANGED
@@ -60,10 +60,10 @@ ThreadInfo.console?
60
60
 
61
61
  # returns the current thread name (rake / rails)
62
62
  ThreadInfo.name
63
- # > true
63
+ # > "RakeTaskName"
64
64
 
65
65
  # returns true if thread has a 'window'
66
- ThreadInfo.window?
66
+ ThreadInfo.windowed?
67
67
  # > true
68
68
 
69
69
  # returns the thread type string
@@ -130,14 +130,15 @@ GemInfo.safe_require('action_view/helpers/date_helper','actionview', '> 0.1.0')
130
130
  # compares two versions against each other
131
131
  GemInfo.match?('4.3.0', '4.3.0')
132
132
  # > true
133
- #
134
- GemInfo.match?('>= 3.0', '4.3.0')
133
+
134
+ GemInfo.match?('4.3.0', '>= 3.0')
135
135
  # > true
136
- #
137
- GemInfo.match?( '~> 3.1', '3.3.0')
136
+
137
+ # also works with split operator
138
+ GemInfo.match?( '3.3.0', '~>', ' 3.1')
138
139
  # > true
139
- #
140
- GemInfo.match?( '~> 1.1.0', '0.1.0')
140
+
141
+ GemInfo.match?( '0.1.0', '~> 1.1.0',)
141
142
  # > false
142
143
  ```
143
144
 
@@ -172,12 +173,20 @@ namespace :db do
172
173
  end
173
174
  end
174
175
 
175
- task(:migrate).append do |t|
176
+ task(:migrate).append do |_t|
176
177
  puts "execution done!"
177
178
  end
178
179
  end
179
180
  ```
180
181
 
182
+ _So the execution of this rake task will now execute `prepend`, `default` & `append` blocks:_
183
+ ```shell
184
+ rake db:migrate
185
+ # > executes prepend
186
+ # > executes previously defined block
187
+ # > executes append block
188
+ ```
189
+
181
190
  -----
182
191
 
183
192
  ## Docs
@@ -186,7 +195,7 @@ end
186
195
 
187
196
  ## Contributing
188
197
 
189
- Bug reports and pull requests are welcome on GitHub at [elasticsearch_record](https://github.com/ruby-smart/support).
198
+ Bug reports and pull requests are welcome on [GitHub](https://github.com/ruby-smart/support).
190
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).
191
200
 
192
201
  ## License
data/Rakefile CHANGED
@@ -6,3 +6,11 @@ require "rspec/core/rake_task"
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
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
data/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # RubySmart::Support - CHANGELOG
2
2
 
3
+ ## [1.1.1] - 2022-11-15
4
+ * **[fix]** `GemInfo` & `ThreadInfo` not being included on require 'ruby_smart-support'
5
+ * **[fix]** yard comments
6
+ * **[add]** `yard` gem for documentation
7
+
8
+ ## [1.1.0] - 2022-11-12
9
+ * **[ref]** `GemInfo.match?` method to provide method parameters more intuitive like `.match?('3.4.0', '>', '3.1.0')`
10
+ * **[fix]** README
11
+
3
12
  ## [1.0.0] - 2022-11-08
4
13
  * **[add]** `GemInfo` module
5
14
  * **[add]** `ThreadInfo` module
@@ -8,12 +8,13 @@ unless Hash.method_defined? "only!"
8
8
  # Replaces the hash with only the given keys (if exists),
9
9
  # but returns the same hash (not the removed keys - this differs to *Hash#slice!*)
10
10
  #
11
+ # @example
11
12
  # hsh = {a: 1, b: 2, c: 3}
12
13
  # hsh.only!(:a, :d)
13
14
  # > {a: 1}
14
15
  # > hsh == {a: 1}
15
16
  #
16
- # @param [Object] *keys
17
+ # @param [Array] keys
17
18
  # @return [Hash] self
18
19
  def only!(*keys)
19
20
  slice!(*keys)
@@ -27,15 +28,16 @@ unless Hash.method_defined? "without!"
27
28
  # removes the given keys from hash and returns those key => value pairs
28
29
  # (this differs to *Hash#except!*)
29
30
  #
31
+ # @example
30
32
  # hsh = {a: 1, b: 2, c: 3}
31
33
  # hsh.without!(:a, :d)
32
34
  # > {a: 1}
33
35
  # > hsh == {b: 2, c: 3}
34
36
  #
35
- # @param [Object] *keys
37
+ # @param [Array] keys
36
38
  # @return [Hash] self
37
39
  def without!(*keys)
38
- Hash[self.to_a - self.except!(*keys).to_a]
40
+ Hash[to_a - except!(*keys).to_a]
39
41
  end
40
42
  end
41
43
  end
@@ -44,12 +46,13 @@ unless Hash.method_defined? "deep_reject"
44
46
  class Hash
45
47
  # returns a new Hash with items that the block evaluates to true removed, also to deep Hashes.
46
48
  def deep_reject(&blk)
47
- self.deep_dup.deep_reject!(&blk)
49
+ deep_dup.deep_reject!(&blk)
48
50
  end
49
51
 
50
52
  # deep reject by provided block
51
53
  # deep remove keys that the block evaluates to true
52
54
  #
55
+ # @example
53
56
  # hsh = {a: 1, b: 2, c: 3, d: {a: 1, b: 2, c: 3}}
54
57
  # hsh.deep_reject! {|_k,v| v.is_a?(Numeric) && v > 2}
55
58
  # > hsh == {a: 1, b: 2, d: {a: 1, b: 2}}
@@ -58,13 +61,13 @@ unless Hash.method_defined? "deep_reject"
58
61
  # hsh.deep_reject! {|k,v| k == :d || v == 2}
59
62
  # > hsh == {a: 1, c: 3}
60
63
  def deep_reject!(&blk)
61
- self.each do |k, v|
64
+ each do |k, v|
62
65
  if blk.(k, v)
63
- self.delete(k)
66
+ delete(k)
64
67
  elsif v.is_a?(Hash)
65
68
  v.deep_reject!(&blk)
66
69
  end
67
70
  end
68
71
  end
69
72
  end
70
- end
73
+ end
@@ -9,10 +9,10 @@ unless Array.method_defined? :only!
9
9
  # ary.only!(:bar, :moon)
10
10
  # > ary == [:bar]
11
11
  #
12
- # @param [Object] *values
12
+ # @param [Array] values
13
13
  # @return [Array] self
14
14
  def only!(*values)
15
- reject! {|value| !values.include?(value)}
15
+ reject! { |value| !values.include?(value) }
16
16
  self
17
17
  end
18
18
  end
@@ -27,7 +27,7 @@ unless Array.method_defined? :only
27
27
  # ary.only(:bar, :bat, :moon)
28
28
  # > [:bar, :bat]
29
29
  #
30
- # @param [Object] *values
30
+ # @param [Array] values
31
31
  # @return [Array] ary
32
32
  def only(*values)
33
33
  dup.only!(*values)
@@ -36,7 +36,7 @@ module RubySmart
36
36
  # @param [nil, String] version - optional version requirement
37
37
  # @return [Boolean]
38
38
  def self.installed?(name, version = nil)
39
- installed.key?(name) && (version.nil? || installed[name].any? { |gem_version| match?(version, gem_version) })
39
+ installed.key?(name) && (version.nil? || installed[name].any? { |gem_version| match?(gem_version, version) })
40
40
  end
41
41
 
42
42
  # returns a hash of all loaded gems with its current version
@@ -62,7 +62,7 @@ module RubySmart
62
62
  # @param [nil, String] version - optional version requirement
63
63
  # @return [Boolean]
64
64
  def self.loaded?(name, version = nil)
65
- loaded.key?(name) && (version.nil? || match?(version, loaded[name]))
65
+ loaded.key?(name) && (version.nil? || match?( loaded[name], version))
66
66
  end
67
67
 
68
68
  # returns an array of all active gems
@@ -95,7 +95,7 @@ module RubySmart
95
95
  # @param [nil, String] version - optional version requirement
96
96
  # @return [Boolean] activated?
97
97
  def self.active?(name, version = nil)
98
- active.include?(name) && (version.nil? || match?(version, version(name)))
98
+ active.include?(name) && (version.nil? || match?(self.version(name), version))
99
99
  end
100
100
 
101
101
  # returns an array of all loaded features
@@ -172,16 +172,22 @@ module RubySmart
172
172
  # match?('4.3.0', '4.3.0')
173
173
  # > true
174
174
  #
175
- # match?('>= 3.0', '4.3.0')
175
+ # match?('4.3.0', '>= 3.0')
176
176
  # > true
177
177
  #
178
- # match?( '~> 3.1', '3.3.0')
178
+ # match?('3.3.0', '~> 3.1')
179
179
  # > true
180
180
  #
181
- # match?( '~> 1.1.0', '0.1.0')
181
+ # match?('3.3.0', '~>', '3.1')
182
+ # > true
183
+ #
184
+ # match?('0.1.0', '~> 1.1.0')
182
185
  # > false
183
- def self.match?(version_requirement, version_current)
184
- return true if version_requirement.nil?
186
+ def self.match?(*args)
187
+ version_current = args.shift
188
+ version_requirement = args.join ' '
189
+
190
+ return true if version_requirement.nil? || version_requirement.strip == ''
185
191
 
186
192
  # split version compare operators
187
193
  version_requirement_str = version_requirement.gsub(/([=~>< ]+)/, '')
@@ -9,8 +9,8 @@ module RubySmart
9
9
 
10
10
  module VERSION
11
11
  MAJOR = 1
12
- MINOR = 0
13
- TINY = 0
12
+ MINOR = 1
13
+ TINY = 1
14
14
  PRE = nil
15
15
 
16
16
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
@@ -1,3 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ruby_smart/support'
3
+ require 'ruby_smart/support'
4
+ require 'gem_info'
5
+ require 'thread_info'
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/ruby_smart/support/version"
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"]
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
10
 
11
- spec.summary = "A toolkit of support libraries including GemInfo, ThreadInfo, Ruby core extensions & optionally activesupport extensions"
12
- spec.description = <<DESC
13
- RubySmart::Support is a toolkit of support libraries for Ruby - major features includes GemInfo & ThreadInfo, as well core extensions for Ruby & activesupport (if installed).
14
- DESC
11
+ spec.summary = 'A toolkit of support libraries including GemInfo, ThreadInfo, Ruby core extensions & optionally activesupport extensions'
12
+ spec.description = <<~DESC
13
+ RubySmart::Support is a toolkit of support libraries for Ruby - major features includes GemInfo & ThreadInfo, as well core extensions for Ruby & activesupport (if installed).
14
+ DESC
15
15
 
16
- spec.homepage = "https://github.com/ruby-smart/support"
17
- spec.license = "MIT"
18
- spec.required_ruby_version = ">= 2.6.0"
16
+ spec.homepage = 'https://github.com/ruby-smart/support'
17
+ spec.license = 'MIT'
18
+ spec.required_ruby_version = '>= 2.6.0'
19
19
 
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"
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"
23
23
 
24
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
24
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
25
25
 
26
26
  # Specify which files should be added to the gem when it is released.
27
27
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -29,10 +29,11 @@ DESC
29
29
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
30
30
  end
31
31
 
32
- spec.require_paths = ["lib"]
32
+ spec.require_paths = ['lib']
33
33
 
34
- spec.add_development_dependency 'activesupport', ">= 4.0"
35
- spec.add_development_dependency 'rspec', "~> 3.0"
36
- spec.add_development_dependency 'rake', "~> 13.0"
37
- spec.add_development_dependency 'simplecov', '~> 0.21'
34
+ spec.add_development_dependency 'activesupport', '>= 4.0'
35
+ spec.add_development_dependency 'rake', '~> 13.0'
36
+ spec.add_development_dependency 'rspec', '~> 3.0'
37
+ spec.add_development_dependency 'simplecov', '~> 0.21'
38
+ spec.add_development_dependency 'yard', '~> 0.9'
38
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.0.0
4
+ version: 1.1.1
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-11 00:00:00.000000000 Z
11
+ date: 2022-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -25,33 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.0'
33
+ version: '13.0'
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: '3.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '13.0'
47
+ version: '3.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: '13.0'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.21'
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.9'
69
83
  description: 'RubySmart::Support is a toolkit of support libraries for Ruby - major
70
84
  features includes GemInfo & ThreadInfo, as well core extensions for Ruby & activesupport
71
85
  (if installed).
@@ -129,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
143
  - !ruby/object:Gem::Version
130
144
  version: '0'
131
145
  requirements: []
132
- rubygems_version: 3.3.7
146
+ rubygems_version: 3.3.22
133
147
  signing_key:
134
148
  specification_version: 4
135
149
  summary: A toolkit of support libraries including GemInfo, ThreadInfo, Ruby core extensions