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 ADDED
@@ -0,0 +1,6 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - jruby
6
+ script: "bundle exec rake spec"
data/Gemfile CHANGED
@@ -2,3 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in zeevex_proxy.gemspec
4
4
  gemspec
5
+
6
+ group :development do
7
+ gem 'pry'
8
+ end
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{rvm-prompt v}
14
+ # current = %x[rbenv version | awk '{print $1}']
13
15
 
14
16
  fail = false
15
- %w{1.8.7 1.9.3}.each do |version|
17
+ PLATFORMS.each do |version|
16
18
  puts "Switching to #{version}"
17
19
  Bundler.with_clean_env do
18
- system %{bash -c 'source ~/.rvm/scripts/rvm && rvm #{version} && bundle exec rake spec'}
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'
@@ -1,5 +1,5 @@
1
1
  module ZeevexProxy
2
- if defined? ::BasicObject
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 initialize(*args)
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
@@ -1,3 +1,3 @@
1
1
  module ZeevexProxy
2
- VERSION = "0.9.2"
2
+ VERSION = "0.9.4"
3
3
  end
@@ -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
- ProxyClass.new object
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
- ProxyClass.instance_methods.should_not include(:responder_method)
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: 63
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 2
10
- version: 0.9.2
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-01-03 00:00:00 Z
18
+ date: 2013-08-09 00:00:00 -04:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- name: rspec
35
- requirement: *id001
36
+ version_requirements: *id001
36
37
  - !ruby/object:Gem::Dependency
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- name: rake
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
- - .rvmrc
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.8.24
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