usable 3.9.1 → 3.9.2

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: 8d093d52f78626baa592fae6b4f153c36ea06b126ec9735512decb05eacaf25c
4
- data.tar.gz: 47c6d034d5f36101007a734059055eee6568945b44349b303cb5edc0d69f9dc4
3
+ metadata.gz: 7cefce69155452022ece9c3d5cfc0e4549e03f88fad7782dd5bfea9f91f10ecb
4
+ data.tar.gz: b6d292586d41623d20269afb372af61ea91f227dd4cd04c8feeb5683231f018f
5
5
  SHA512:
6
- metadata.gz: f4705bef50dc5e0612c4ee12571f0781f724905900483b37d948af52644044cd7e89de1c7d6cb1a284839c1fadd6f84c04306401196ed44e456f537e4d41a53a
7
- data.tar.gz: 817c5596b6d8bb5d84b84b27d1d6e01bd881502494b0b3574efccd4cb885c56c6d7cbfe58f72339cb4ca0fee39a35f47dc7f4a8432063d5fcf3ac764e8a77350
6
+ metadata.gz: 18c4e65ca8c88c73cfd7d56cea4abde25c29bfc0b7ddf37bf6163afef9cb8b2b130c62497eef8e6a53a113743e1307827ca547ea5b6aac11ba935632575be455
7
+ data.tar.gz: f67102cb0122705419b44f9f0fa451e256e401e288e5bc595f4fcb5a4b5f8c805ee5db16bc340d0101015c39677a9dd1ae31cf8364676dfaa26c1f3ba0e14665
@@ -18,9 +18,7 @@ module Usable
18
18
  # @description Directly include a module whose methods you want made available in +usables.available_methods+
19
19
  # Gives the module a name when including so that it shows up properly in the list of ancestors
20
20
  def call(target)
21
- unwanted.each do |method_name|
22
- copy.send :remove_method, method_name
23
- end
21
+ unwanted.each(&method(:remove_from_module))
24
22
  if copy.name.nil?
25
23
  const_name = "#{mod_name}Used"
26
24
  target.send :remove_const, const_name if target.const_defined? const_name, false
@@ -46,5 +44,16 @@ module Usable
46
44
  @copy.instance_methods - Array(only)
47
45
  end
48
46
  end
47
+
48
+ def remove_from_module(method_name)
49
+ begin
50
+ copy.send :remove_method, method_name
51
+ rescue NameError => e
52
+ # Expected sometimes, like it could be raised trying to remove a superclass method
53
+ Usable.logger.debug("#{e.class}: #{e.message}")
54
+ end
55
+ # Block access to superclass method, and prevent it from being copied to the target
56
+ copy.send :undef_method, method_name if copy.instance_methods.include?(method_name)
57
+ end
49
58
  end
50
59
  end
@@ -1,3 +1,3 @@
1
1
  module Usable
2
- VERSION = "3.9.1".freeze
2
+ VERSION = "3.9.2".freeze
3
3
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.required_ruby_version = '>= 2.0.0'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.10'
24
+ spec.add_development_dependency 'bundler', '~> 2'
25
25
  spec.add_development_dependency 'rake', '~> 10.0'
26
26
  spec.add_development_dependency 'rspec', '>= 3.2', '< 4'
27
27
  # spec.add_development_dependency 'rspec-scaffold', '>= 1.0', '< 2'
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.1
4
+ version: 3.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Buckley
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-23 00:00:00.000000000 Z
11
+ date: 2019-02-02 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: '1.10'
19
+ version: '2'
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: '1.10'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement