bzproxies 0.1.1 → 0.1.2

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/README.md CHANGED
@@ -30,7 +30,7 @@ You can use some objects that mimics objects covered by proxies:
30
30
  end
31
31
  end
32
32
 
33
- <i>TODO: create global function creting stub for concrete proxy (as same one in Delegate class).</i>
33
+ <i>TODO: create global function creating stub for concrete proxy (as same one in Delegate class).</i>
34
34
 
35
35
  Than you may use proxy_accessor to specify attribute that will cover some given values with proxy:
36
36
 
data/bzproxies.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.email = Base64.decode64("Ym9tYmF6b29rQGdtYWlsLmNvbQ==\n")
11
11
  s.homepage = "http://github.com/bombazook/bzproxies"
12
12
  s.summary = "collection of reusable proxies and accessors"
13
- s.description = s.summary + "etc."
13
+ s.description = s.summary + " and etc."
14
14
 
15
15
  s.rubyforge_project = "bzproxies"
16
16
 
@@ -1,5 +1,5 @@
1
- if RUBY_VERSION.gsub(/\D/, "").to_i < 190
2
- class BasicObject
3
- instance_methods.each { |m| undef_method m unless m =~ /(^__|^send$|^object_id$|^equal?$)/ }
1
+ class BasicObject
2
+ instance_methods.each do |m|
3
+ undef_method m unless m =~ /(^__|^send$|^object_id$|^equal\?$|^instance_eval$|^instance_exec$)/
4
4
  end
5
- end
5
+ end unless defined? BasicObject
@@ -18,7 +18,7 @@ module Proxies
18
18
  proxies.flatten!
19
19
  proxies.compact!
20
20
  proxy = proxies.shift || Proxies::Base
21
- unless proxy.instance_methods.include? :proxy?
21
+ unless proxy.method_defined? :proxy?
22
22
  raise ArgumentError, "Expected proxy, given #{proxy.inspect} #{proxy.class}"
23
23
  end
24
24
  args.each do |name|
@@ -26,11 +26,13 @@ module Proxies
26
26
  raise ArgumentError, "Expected String or Symbol, given #{name.inspect} #{name.class}"
27
27
  end
28
28
  define_method("#{name}=") do |v|
29
+ val = nil
29
30
  if v.respond_to? :stub?
30
31
  val = v
31
32
  else
32
33
  val = proxy.send :new, v, :proxies => proxies
33
34
  end
35
+ #instance_exec(val){|x| instance_eval("@#{name} = x")}
34
36
  instance_eval("@#{name} = val")
35
37
  end
36
38
  end
@@ -42,5 +44,6 @@ module Proxies
42
44
  end
43
45
 
44
46
  end
47
+
45
48
  end
46
49
  end
@@ -1,3 +1,3 @@
1
1
  module Bzproxies
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -37,8 +37,10 @@ describe Proxies::Owner::Accessors do
37
37
  owner = Ex2.new
38
38
  owner.test = a
39
39
  owner.test.equal?(a).should be_true
40
+ owner.test.object_id.should be_equal(a.object_id)
40
41
  owner.test = b
41
42
  owner.test.equal?(b).should be_true
43
+ owner.test.object_id.should be_equal(b.object_id)
42
44
  end
43
45
 
44
46
  it "should raise an exception while non-proxy class given" do
data/spec/base_spec.rb CHANGED
@@ -28,11 +28,6 @@ describe Proxies::Base do
28
28
  proxy.target.should be_equal(a)
29
29
  a.should be_equal(inherited.target)
30
30
  a.should be_equal(proxy.target)
31
-
32
- (inherited.equal? a).should be_false
33
- (proxy.equal? a).should be_false
34
- a.should_not be_equal(inherited)
35
- a.should_not be_equal(proxy)
36
31
  end
37
32
 
38
33
  it "return proxy-contained object of 2-level proxy" do
@@ -58,28 +53,42 @@ describe Proxies::Base do
58
53
 
59
54
 
60
55
  it "should be eql and == for same and equal object proxies" do
61
- a = false
62
- test1 = Proxy.new a
63
- test2 = Proxy.new a
64
- test3 = Proxy.new false
56
+ ["string", 1, false, nil].each do |val|
57
+ a = val
58
+ test1 = Proxy.new a
59
+ test2 = Proxy.new a
60
+ test3 = Proxy.new val
61
+
62
+ (a == test1).should be_true
63
+ (a == test3).should be_true
64
+ (test1 == a).should be_true
65
+ (test3 == a).should be_true
65
66
 
66
- (a == test1).should be_true
67
- (a == test3).should be_true
68
- (test1 == a).should be_true
69
- (test3 == a).should be_true
70
-
71
- a.should_not be_eql test1
72
- (test1.eql? a).should be_false
73
-
74
- (test1 == test2).should be_true
75
- (test2 == test1).should be_true
76
- (test1 == test3).should be_true
77
- (test3 == test1).should be_true
78
-
79
- (test1.eql? test2).should be_true
80
- (test2.eql? test1).should be_true
81
- (test1.eql? test3).should be_true
82
- (test3.eql? test1).should be_true
67
+ a.should_not be_eql test1
68
+ (test1.eql? a).should be_false
69
+
70
+ (test1 == test2).should be_true
71
+ (test2 == test1).should be_true
72
+ (test1 == test3).should be_true
73
+ (test3 == test1).should be_true
74
+
75
+ (test1.eql? test2).should be_true
76
+ (test2.eql? test1).should be_true
77
+ (test1.eql? test3).should be_true
78
+ (test3.eql? test1).should be_true
79
+ end
83
80
  end
84
81
 
82
+ it "shouldn't be equal with non-proxy object" do
83
+ a = "source"
84
+ inherited = Inherited.new(a)
85
+ proxy = Proxy.new(a)
86
+ (inherited.equal? a).should be_false
87
+ (proxy.equal? a).should be_false
88
+ (a.equal? inherited).should be_false
89
+ (a.equal? proxy).should be_false
90
+ end
91
+
92
+
93
+
85
94
  end
metadata CHANGED
@@ -1,44 +1,61 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bzproxies
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 2
10
+ version: 0.1.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Bombazook
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-10-22 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-10-27 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: bundler
16
- requirement: &77099130 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
25
+ requirements:
19
26
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '1.0'
27
+ - !ruby/object:Gem::Version
28
+ hash: 15
29
+ segments:
30
+ - 1
31
+ - 0
32
+ version: "1.0"
22
33
  type: :runtime
23
- prerelease: false
24
- version_requirements: *77099130
25
- - !ruby/object:Gem::Dependency
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
26
36
  name: rspec
27
- requirement: &77098880 !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
28
39
  none: false
29
- requirements:
40
+ requirements:
30
41
  - - ~>
31
- - !ruby/object:Gem::Version
32
- version: '2.6'
42
+ - !ruby/object:Gem::Version
43
+ hash: 15
44
+ segments:
45
+ - 2
46
+ - 6
47
+ version: "2.6"
33
48
  type: :development
34
- prerelease: false
35
- version_requirements: *77098880
36
- description: collection of reusable proxies and accessorsetc.
49
+ version_requirements: *id002
50
+ description: collection of reusable proxies and accessors and etc.
37
51
  email: bombazook@gmail.com
38
52
  executables: []
53
+
39
54
  extensions: []
55
+
40
56
  extra_rdoc_files: []
41
- files:
57
+
58
+ files:
42
59
  - .gitignore
43
60
  - .rspec
44
61
  - Gemfile
@@ -65,26 +82,36 @@ files:
65
82
  - spec/spec_helper.rb
66
83
  homepage: http://github.com/bombazook/bzproxies
67
84
  licenses: []
85
+
68
86
  post_install_message:
69
87
  rdoc_options: []
70
- require_paths:
88
+
89
+ require_paths:
71
90
  - lib
72
- required_ruby_version: !ruby/object:Gem::Requirement
91
+ required_ruby_version: !ruby/object:Gem::Requirement
73
92
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- required_rubygems_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
101
  none: false
80
- requirements:
81
- - - ! '>='
82
- - !ruby/object:Gem::Version
83
- version: '0'
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
84
109
  requirements: []
110
+
85
111
  rubyforge_project: bzproxies
86
- rubygems_version: 1.8.6
112
+ rubygems_version: 1.8.10
87
113
  signing_key:
88
114
  specification_version: 3
89
115
  summary: collection of reusable proxies and accessors
90
116
  test_files: []
117
+