zeevex_proxy 0.9.2 → 0.9.4
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.
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/Rakefile +14 -5
- data/lib/zeevex_proxy/base.rb +11 -4
- data/lib/zeevex_proxy/version.rb +1 -1
- data/spec/proxy_base_spec.rb +6 -4
- metadata +16 -14
- data/.rvmrc +0 -1
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -7,15 +7,17 @@ require 'rspec/core/rake_task'
|
|
7
7
|
RSpec::Core::RakeTask.new(:spec)
|
8
8
|
|
9
9
|
namespace :spec do
|
10
|
+
PLATFORMS = %w{1.9.3-p448 2.0.0-p247 1.8.7-p374 jruby-1.7.4}
|
11
|
+
|
10
12
|
desc "Run on three Rubies"
|
11
13
|
task :platforms do
|
12
|
-
current = %x{
|
14
|
+
# current = %x[rbenv version | awk '{print $1}']
|
13
15
|
|
14
16
|
fail = false
|
15
|
-
|
17
|
+
PLATFORMS.each do |version|
|
16
18
|
puts "Switching to #{version}"
|
17
19
|
Bundler.with_clean_env do
|
18
|
-
system %{bash -c '
|
20
|
+
system %{bash -c 'eval "$(rbenv init -)" && rbenv use #{version} && rbenv rehash && rbenv which ruby && ruby -v && rbenv exec bundle exec rake spec'}
|
19
21
|
end
|
20
22
|
if $?.exitstatus != 0
|
21
23
|
fail = true
|
@@ -23,10 +25,17 @@ namespace :spec do
|
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
|
-
system %{rvm #{current}}
|
27
|
-
|
28
28
|
exit (fail ? 1 : 0)
|
29
29
|
end
|
30
|
+
|
31
|
+
task :platform_setup do
|
32
|
+
PLATFORMS.each do |version|
|
33
|
+
puts "Switching to #{version}"
|
34
|
+
Bundler.with_clean_env do
|
35
|
+
system %{bash -c 'eval "$(rbenv init -)" && rbenv use #{version} && rbenv rehash && gem install bundler && bundle install'}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
30
39
|
end
|
31
40
|
|
32
41
|
task :default => 'spec'
|
data/lib/zeevex_proxy/base.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module ZeevexProxy
|
2
|
-
if
|
2
|
+
if Object.const_defined?("BasicObject")
|
3
3
|
# A class with no predefined methods that behaves similarly to Builder's
|
4
4
|
# BlankSlate. Used for proxy classes.
|
5
5
|
class BasicObject < ::BasicObject
|
@@ -10,17 +10,20 @@ module ZeevexProxy
|
|
10
10
|
def raise(*args)
|
11
11
|
::Object.send(:raise, *args)
|
12
12
|
end
|
13
|
+
|
14
|
+
def initialize(*args); end
|
13
15
|
end
|
14
16
|
else
|
17
|
+
puts "Defining our own BasicObject"
|
15
18
|
class BasicObject
|
16
|
-
KEEP_METHODS = %w"__id__ __send__ method_missing __getobj__"
|
19
|
+
KEEP_METHODS = %w"__id__ __send__ method_missing __getobj__".map(&:to_sym)
|
17
20
|
|
18
21
|
def self.remove_methods!
|
19
|
-
m = (instance_methods) - KEEP_METHODS
|
22
|
+
m = (instance_methods.map(&:to_sym)) - KEEP_METHODS
|
20
23
|
m.each{|m| undef_method(m)}
|
21
24
|
end
|
22
25
|
|
23
|
-
def
|
26
|
+
def self.inherited(subclass)
|
24
27
|
BasicObject.remove_methods!
|
25
28
|
end
|
26
29
|
|
@@ -53,5 +56,9 @@ module ZeevexProxy
|
|
53
56
|
__substitute_self__(obj.__send__(name, *args, &block), obj)
|
54
57
|
end
|
55
58
|
|
59
|
+
def object_id
|
60
|
+
__getobj__.object_id
|
61
|
+
end
|
62
|
+
|
56
63
|
end
|
57
64
|
end
|
data/lib/zeevex_proxy/version.rb
CHANGED
data/spec/proxy_base_spec.rb
CHANGED
@@ -30,8 +30,6 @@ describe ZeevexProxy::Base do
|
|
30
30
|
"shouldn't see this one"
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
34
|
-
class ProxyClass < ZeevexProxy::Base; end
|
35
33
|
end
|
36
34
|
|
37
35
|
after(:each) do
|
@@ -42,13 +40,17 @@ describe ZeevexProxy::Base do
|
|
42
40
|
Responder.new
|
43
41
|
end
|
44
42
|
|
43
|
+
let :proxyclass do
|
44
|
+
Class.new(ZeevexProxy::Base)
|
45
|
+
end
|
46
|
+
|
45
47
|
let :proxy do
|
46
|
-
|
48
|
+
proxyclass.new object
|
47
49
|
end
|
48
50
|
|
49
51
|
context "hygiene" do
|
50
52
|
it "should not have instance methods previously defined on Object" do
|
51
|
-
|
53
|
+
proxyclass.instance_methods.map(&:to_sym).should_not include(:responder_method)
|
52
54
|
end
|
53
55
|
end
|
54
56
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zeevex_proxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 51
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 4
|
10
|
+
version: 0.9.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Robert Sanders
|
@@ -15,10 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-
|
18
|
+
date: 2013-08-09 00:00:00 -04:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
+
name: rspec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
25
|
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
@@ -29,12 +32,12 @@ dependencies:
|
|
29
32
|
- 9
|
30
33
|
- 0
|
31
34
|
version: 2.9.0
|
32
|
-
prerelease: false
|
33
35
|
type: :development
|
34
|
-
|
35
|
-
requirement: *id001
|
36
|
+
version_requirements: *id001
|
36
37
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
38
|
+
name: rake
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
41
|
none: false
|
39
42
|
requirements:
|
40
43
|
- - ">="
|
@@ -43,10 +46,8 @@ dependencies:
|
|
43
46
|
segments:
|
44
47
|
- 0
|
45
48
|
version: "0"
|
46
|
-
prerelease: false
|
47
49
|
type: :development
|
48
|
-
|
49
|
-
requirement: *id002
|
50
|
+
version_requirements: *id002
|
50
51
|
description: This is a Proxy object; there are many others like it, but this one is ours.
|
51
52
|
email:
|
52
53
|
- robert@zeevex.com
|
@@ -58,7 +59,7 @@ extra_rdoc_files: []
|
|
58
59
|
|
59
60
|
files:
|
60
61
|
- .gitignore
|
61
|
-
- .
|
62
|
+
- .travis.yml
|
62
63
|
- Gemfile
|
63
64
|
- Rakefile
|
64
65
|
- lib/zeevex_proxy.rb
|
@@ -67,6 +68,7 @@ files:
|
|
67
68
|
- spec/proxy_base_spec.rb
|
68
69
|
- spec/spec_helper.rb
|
69
70
|
- zeevex_proxy.gemspec
|
71
|
+
has_rdoc: true
|
70
72
|
homepage: ""
|
71
73
|
licenses: []
|
72
74
|
|
@@ -96,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
98
|
requirements: []
|
97
99
|
|
98
100
|
rubyforge_project: zeevex_proxy
|
99
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.6.2
|
100
102
|
signing_key:
|
101
103
|
specification_version: 3
|
102
104
|
summary: Our homegrown version of a Proxy object
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use ree@zeevex_gems --create
|