poly_delegate 1.2.0 → 1.2.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
  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