usable 3.9.4 → 3.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: 5cf9d19795cfe5f243f7d50765251306761edf87790628b28438503bfd28a93c
4
- data.tar.gz: 238dab15466918520cdf25408e0bad760a5013687e2025e560ada0e725bd2020
3
+ metadata.gz: 2585dd25c2d40dd7155c135d8fc0d68d0827fa2ad1941861d663f2700408ab3d
4
+ data.tar.gz: 3d8af0397933e015907b136878a1efbb7b5a61f9fd898d30b5a33ac454008f6d
5
5
  SHA512:
6
- metadata.gz: e8d4b8b59389b40d377b23775f9f4bef80839bc833b18f0ea0d0c8bccbebd6acddf548bd28b0a745cb3908fd73cccafc74b4612df5c847d66c5cb11cb4e40076
7
- data.tar.gz: 95212036395041fcda47c5eb3c6eab5a9d422767689254736e612221175143a2088d8990db4609adc8d8cc14c524fb11d38906542e6231bc24170d18bf131907
6
+ metadata.gz: f3784807c7898f63fd3a2b9a73b9e867ad72127e9c33ea371ea575f3fc8567828f96ae2a622122d04c5b4f40aa19d3ccabfee30437aea3f89e07d106525fe338
7
+ data.tar.gz: 6c9aa43dcb1dc71a093190d6700633e676a97039ee619312b983598604855ac70df5eda0a7d5f2be45a7e99b089daec1b393450481a6bce49381956ae91ebb08
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Usable
2
- VERSION = "3.9.4".freeze
2
+ VERSION = "3.10.0".freeze
3
3
  end
data/lib/usable.rb CHANGED
@@ -115,17 +115,15 @@ module Usable
115
115
  # end
116
116
  #
117
117
  # @note Hides methods
118
- # @param [Module] mod
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: extension_method).call self
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
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.0.0'
22
+ spec.required_ruby_version = '>= 2.7.0'
23
23
 
24
- spec.add_development_dependency "bundler", "~> 2.2.11"
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.9.4
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: 2021-07-14 00:00:00.000000000 Z
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.2.11
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.2.11
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.0.0
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.2.11
98
+ rubygems_version: 3.3.7
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Mounts and configures modules