usable 3.9.3 → 3.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/lib/usable/mod_extender.rb +1 -1
- data/lib/usable/version.rb +1 -1
- data/lib/usable.rb +6 -8
- data/usable.gemspec +2 -3
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2585dd25c2d40dd7155c135d8fc0d68d0827fa2ad1941861d663f2700408ab3d
|
4
|
+
data.tar.gz: 3d8af0397933e015907b136878a1efbb7b5a61f9fd898d30b5a33ac454008f6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3784807c7898f63fd3a2b9a73b9e867ad72127e9c33ea371ea575f3fc8567828f96ae2a622122d04c5b4f40aa19d3ccabfee30437aea3f89e07d106525fe338
|
7
|
+
data.tar.gz: 6c9aa43dcb1dc71a093190d6700633e676a97039ee619312b983598604855ac70df5eda0a7d5f2be45a7e99b089daec1b393450481a6bce49381956ae91ebb08
|
data/lib/usable/mod_extender.rb
CHANGED
@@ -9,7 +9,7 @@ module Usable
|
|
9
9
|
@options[:method] ||= :include
|
10
10
|
@copy = mod
|
11
11
|
@name = mod.name
|
12
|
-
@unwanted = find_unwanted_methods(options[:only])
|
12
|
+
@unwanted = (options[:except] && Array(options[:except])) || find_unwanted_methods(options[:only])
|
13
13
|
if @unwanted.any?
|
14
14
|
@copy = @copy.dup
|
15
15
|
end
|
data/lib/usable/version.rb
CHANGED
data/lib/usable.rb
CHANGED
@@ -53,7 +53,7 @@ module Usable
|
|
53
53
|
base.instance_eval do
|
54
54
|
def config(&block)
|
55
55
|
if block
|
56
|
-
usables.instance_eval
|
56
|
+
usables.instance_eval(&block)
|
57
57
|
else
|
58
58
|
usables
|
59
59
|
end
|
@@ -115,17 +115,15 @@ module Usable
|
|
115
115
|
# end
|
116
116
|
#
|
117
117
|
# @note Hides methods
|
118
|
-
# @param [Module]
|
118
|
+
# @param [Array<Module>] args - array of modules to potentially modify the and then include
|
119
119
|
# @param [Hash] options Customize the extension of the module as well as define config settings on the target
|
120
120
|
# @option [Array,Symbol] :only Limit which methods are copied from the module
|
121
121
|
# @option [String,Symbol] :method (:include) The method to use for including the module
|
122
|
+
# @option [Array<Symbol>] :except List of methods to exclude from the given module(s)
|
122
123
|
# @return self
|
123
|
-
def usable(*args, &block)
|
124
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
125
|
-
only = options.delete(:only)
|
126
|
-
extension_method = options.delete(:method)
|
124
|
+
def usable(*args, only: nil, except: nil, method: nil, **options, &block)
|
127
125
|
args.each do |mod|
|
128
|
-
ModExtender.new(mod, only: only, method:
|
126
|
+
ModExtender.new(mod, only: only, method: method, except: except).call self
|
129
127
|
# Define settings on @usables and on the scoped @usables
|
130
128
|
scope = Config.new
|
131
129
|
# Nest the new config under a namespace based on it's name, unless it's the default name we gave
|
@@ -142,7 +140,7 @@ module Usable
|
|
142
140
|
[scope, usables].each { |x| options.each { |k, v| x[k] = v } }
|
143
141
|
end
|
144
142
|
if block_given?
|
145
|
-
[scope, usables].each { |x| x.instance_eval
|
143
|
+
[scope, usables].each { |x| x.instance_eval(&block) }
|
146
144
|
end
|
147
145
|
if mod.const_defined?(:InstanceMethods, false)
|
148
146
|
send :include, mod.const_get(:InstanceMethods, false)
|
data/usable.gemspec
CHANGED
@@ -19,10 +19,9 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.required_ruby_version = '>= 2.
|
22
|
+
spec.required_ruby_version = '>= 2.7.0'
|
23
23
|
|
24
|
-
spec.add_development_dependency "bundler", "~> 2.
|
24
|
+
spec.add_development_dependency "bundler", "~> 2.3"
|
25
25
|
spec.add_development_dependency "rake", ">= 12.3.3"
|
26
26
|
spec.add_development_dependency "rspec", ">= 3.2", "< 4"
|
27
|
-
# spec.add_development_dependency 'rspec-scaffold', '>= 1.0', '< 2'
|
28
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Buckley
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: '2.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: '2.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
88
|
requirements:
|
89
89
|
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 2.
|
91
|
+
version: 2.7.0
|
92
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
requirements: []
|
98
|
-
rubygems_version: 3.
|
98
|
+
rubygems_version: 3.3.7
|
99
99
|
signing_key:
|
100
100
|
specification_version: 4
|
101
101
|
summary: Mounts and configures modules
|