Class: Proxies::Base
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Stub
#stub?
Constructor Details
#initialize(*args) ⇒ Base
Returns a new instance of Base.
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/bzproxies/base.rb', line 37
def initialize *args
@proxies = []
if ((args.length > 1) && args.last.kind_of?(::Hash))
@proxies << args.last[:proxy] << args.last[:proxies]
@options = args.last[:options]
args.pop if (args.last.keys - [:proxy, :proxies, :options]).empty?
@proxies.flatten!
@proxies.compact!
end
__setobj__(args.first)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
63
64
65
|
# File 'lib/bzproxies/base.rb', line 63
def method_missing m, *args, &block
__getobj__.__send__ m, *args, &block
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
14
15
16
|
# File 'lib/bzproxies/base.rb', line 14
def options
@options
end
|
#proxies ⇒ Object
Returns the value of attribute proxies.
14
15
16
|
# File 'lib/bzproxies/base.rb', line 14
def proxies
@proxies
end
|
Class Method Details
.const_missing(name) ⇒ Object
8
9
10
|
# File 'lib/bzproxies/base.rb', line 8
def self.const_missing(name)
::Object.const_get(name) if ::Object.const_defined?(name)
end
|
Instance Method Details
#==(any) ⇒ Object
33
34
35
|
# File 'lib/bzproxies/base.rb', line 33
def == any
(any.respond_to? :proxy?) ? __getobj__ == any.__getobj__ : __getobj__ == any
end
|
#__getobj__ ⇒ Object
Also known as:
target
49
50
51
52
53
54
55
|
# File 'lib/bzproxies/base.rb', line 49
def __getobj__
if @target.respond_to? :__getobj__
@target.__getobj__
else
@target
end
end
|
#__setobj__(value) ⇒ Object
59
60
61
|
# File 'lib/bzproxies/base.rb', line 59
def __setobj__ value
@target = value
end
|
#eql?(any) ⇒ Boolean
27
28
29
30
31
|
# File 'lib/bzproxies/base.rb', line 27
def eql? any
class1 = (any.respond_to? :proxy?) ? (class << any; self; end).superclass : any.class
class2 = (class << self; self; end).superclass
(self == any) && (class1 == class2)
end
|
#proxy? ⇒ Boolean
18
19
20
|
# File 'lib/bzproxies/base.rb', line 18
def proxy?
true
end
|
#respond_to?(meth, hidden = false) ⇒ Boolean
22
23
24
25
|
# File 'lib/bzproxies/base.rb', line 22
def respond_to? meth, hidden = false
metaclass = class << self; self; end
(metaclass.method_defined? meth) || (__getobj__.respond_to? meth, hidden)
end
|