poly_delegate 1.2.0 → 1.2.1

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
  SHA1:
3
- metadata.gz: a7fcad9a72a440e37588f0f23762a308769e7acb
4
- data.tar.gz: 93a6a8d47694723c9fefa0915e1fe202bd372e04
3
+ metadata.gz: c018aa113ece721f6bacfa91534316cd75b7c911
4
+ data.tar.gz: f763daa3e840b6fa9d2ade107bf4b6354779d940
5
5
  SHA512:
6
- metadata.gz: e5258510581cb77085ad24fbc9c8928587a34f77f24b14df927328ba24acfaf56b1313165a3cfee55326b605853d147b40d9d5364b5234b890d6324aa752efeb
7
- data.tar.gz: 4c31e1ec469f488d217f8b843c77b069979fc83d789d1865064a0ee717f9a4d560b10c9092f0782cfdf4ea1c919d8b90fe83f91e351bad4bc480f1336c359c0c
6
+ metadata.gz: bf264d0aac873af98c61611264a29c79624e676a3e4de2f654ff0304d96997438cef37504f8916cdbf759779910c63e9fd1a6a2a489f7110e578b8de0853cea8
7
+ data.tar.gz: e887dfa4b0775aeaaf7c9408e5fd23bc15351077c9b4f63d35812bd099de165ed0b037df66244f433ca0e74cb4b19208216be9c2873fd7e137936af3423d9588
data/Gemfile CHANGED
@@ -10,6 +10,7 @@ source 'https://rubygems.org'
10
10
  gemspec path: __dir__
11
11
 
12
12
  gem 'force_bind', require: false, platforms: :mri
13
+ gem 'force_bind_rbx', require: false, platforms: :rbx
13
14
 
14
15
  group :development do
15
16
  gem 'rake', require: false
data/ext/mkrf_conf.rb ADDED
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ # Copyright (c) 2016 Nathan Currier
3
+
4
+ require 'rubygems'
5
+ require 'rubygems/command'
6
+ require 'rubygems/dependency_installer'
7
+
8
+ begin
9
+ Gem::Command.build_args = ARGV
10
+ rescue NoMethodError
11
+ end
12
+
13
+ installer = Gem::DependencyInstaller.new
14
+
15
+ case RUBY_ENGINE
16
+ when 'rbx'
17
+ installer.install 'force_bind_rbx'
18
+ when 'ruby'
19
+ installer.install 'force_bind'
20
+ end
21
+
22
+ File.open(File.join(File.dirname(__FILE__), 'Rakefile'), 'w') do |f|
23
+ f.write('task :default')
24
+ end
@@ -7,6 +7,8 @@
7
7
 
8
8
  require 'poly_delegate/method'
9
9
 
10
+ require 'force_bind'
11
+
10
12
  module PolyDelegate
11
13
  def self.distinguish_delegator(obj, *args)
12
14
  delegator =
@@ -21,7 +23,7 @@ module PolyDelegate
21
23
 
22
24
  def self.delegate_call(obj, method, *args, &block)
23
25
  delegator, args = distinguish_delegator(obj, *args)
24
- bound = force_bind(delegator, method)
26
+ bound = method.force_bind(delegator)
25
27
  bound.call(*args, &block)
26
28
  end
27
29
 
@@ -7,7 +7,6 @@
7
7
 
8
8
  require 'poly_delegate/call'
9
9
  require 'poly_delegate/classic_access'
10
- require 'poly_delegate/force_bind'
11
10
 
12
11
  module PolyDelegate
13
12
  module Delegated
@@ -6,5 +6,5 @@
6
6
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
7
 
8
8
  module PolyDelegate
9
- VERSION = '1.2.0'.freeze
9
+ VERSION = '1.2.1'.freeze
10
10
  end
@@ -24,6 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
25
25
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
26
26
  spec.require_paths = ['lib']
27
-
28
- spec.add_dependency 'bundler', '>= 1.11.2'
27
+ spec.extensions = ['ext/mkrf_conf.rb']
29
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poly_delegate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Currier
@@ -9,26 +9,13 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-02-03 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- type: :runtime
15
- name: bundler
16
- prerelease: false
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ">="
20
- - !ruby/object:Gem::Version
21
- version: 1.11.2
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 1.11.2
12
+ dependencies: []
27
13
  description: ''
28
14
  email:
29
15
  - nathan.currier@gmail.com
30
16
  executables: []
31
- extensions: []
17
+ extensions:
18
+ - ext/mkrf_conf.rb
32
19
  extra_rdoc_files: []
33
20
  files:
34
21
  - ".gitignore"
@@ -38,6 +25,7 @@ files:
38
25
  - Gemfile
39
26
  - LICENSE.md
40
27
  - Rakefile
28
+ - ext/mkrf_conf.rb
41
29
  - gemfiles/Gemfile.ci
42
30
  - gemfiles/Gemfile.doc
43
31
  - lib/poly_delegate.rb
@@ -45,7 +33,6 @@ files:
45
33
  - lib/poly_delegate/classic_access.rb
46
34
  - lib/poly_delegate/delegated.rb
47
35
  - lib/poly_delegate/delegator.rb
48
- - lib/poly_delegate/force_bind.rb
49
36
  - lib/poly_delegate/method.rb
50
37
  - lib/poly_delegate/version.rb
51
38
  - poly_delegate.gemspec
@@ -74,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
61
  version: '0'
75
62
  requirements: []
76
63
  rubyforge_project:
77
- rubygems_version: 2.4.8
64
+ rubygems_version: 2.5.1
78
65
  signing_key:
79
66
  specification_version: 4
80
67
  summary: ''
@@ -1,31 +0,0 @@
1
- # encoding: utf-8
2
- # Copyright (c) 2016 Nathan Currier
3
-
4
- # This Source Code Form is subject to the terms of the Mozilla Public
5
- # License, v. 2.0. If a copy of the MPL was not distributed with this
6
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
-
8
- module PolyDelegate
9
- # rubocop:disable Lint/DuplicateMethods
10
- case RUBY_ENGINE
11
- when 'rbx'
12
- def self.force_bind(bound_obj, method)
13
- method_args = [method.defined_in, method.executable, method.name]
14
-
15
- Method.new(bound_obj, *method_args)
16
- end
17
- when 'ruby'
18
- require 'force_bind'
19
-
20
- def self.force_bind(bound_obj, method)
21
- if bound_obj.class == method.owner
22
- method.bind(bound_obj)
23
- else
24
- method.force_bind(bound_obj)
25
- end
26
- end
27
- else
28
- fail "force binding is not supported on #{RUBY_ENGINE}"
29
- end
30
- # rubocop:enable Lint/DuplicateMethods
31
- end