Class: Delegator
- Inherits:
 - BasicObject
 
- Defined in:
 - opal/stdlib/delegate.rb
 
Direct Known Subclasses
Constant Summary collapse
- VERSION =
 '0.2.0'
Class Method Summary collapse
- 
  
    
      .const_missing(n)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:stopdoc:.
 - 
  
    
      .delegating_block(mid)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - 
  
    
      .public_api  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 
Instance Method Summary collapse
- 
  
    
      #!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Delegates ! to the __getobj__.
 - 
  
    
      #!=(obj)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns true if two objects are not considered of equal value.
 - 
  
    
      #==(obj)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns true if two objects are considered of equal value.
 - 
  
    
      #__getobj__  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
This method must be overridden by subclasses and should return the object method calls are being delegated to.
 - 
  
    
      #__setobj__(obj)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
This method must be overridden by subclasses and change the object delegate to obj.
 - 
  
    
      #eql?(obj)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Returns true if two objects are considered of equal value.
 - 
  
    
      #freeze  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:method: freeze Freeze both the object returned by __getobj__ and self.
 - #frozen? ⇒ Boolean
 - 
  
    
      #initialize(obj)  ⇒ Delegator 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Pass in the obj to delegate method calls to.
 - 
  
    
      #marshal_dump  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Serialization support for the object returned by __getobj__.
 - 
  
    
      #marshal_load(data)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Reinitializes delegation from a serialized object.
 - 
  
    
      #methods(all = true)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the methods available to this delegate object as the union of this object's and __getobj__ methods.
 - 
  
    
      #protected_methods(all = true)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the methods available to this delegate object as the union of this object's and __getobj__ protected methods.
 - 
  
    
      #public_methods(all = true)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the methods available to this delegate object as the union of this object's and __getobj__ public methods.
 - 
  
    
      #respond_to_missing?(m, include_private)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Checks for a method provided by this the delegate object by forwarding the call through __getobj__.
 
Constructor Details
#initialize(obj) ⇒ Delegator
Pass in the obj to delegate method calls to. All methods supported by obj will be delegated to.
      83 84 85  | 
    
      # File 'opal/stdlib/delegate.rb', line 83 def initialize(obj) __setobj__(obj) end  | 
  
Class Method Details
.const_missing(n) ⇒ Object
:stopdoc:
      68 69 70  | 
    
      # File 'opal/stdlib/delegate.rb', line 68 def self.const_missing(n) ::Object.const_get(n) end  | 
  
.delegating_block(mid) ⇒ Object
:nodoc:
      360 361 362 363 364 365  | 
    
      # File 'opal/stdlib/delegate.rb', line 360 def Delegator.delegating_block(mid) # :nodoc: ->(*args, &block) do target = __getobj__ target.__send__(mid, *args, &block) end.ruby2_keywords end  | 
  
.public_api ⇒ Object
:nodoc:
      257 258 259  | 
    
      # File 'opal/stdlib/delegate.rb', line 257 def self.public_api # :nodoc: @delegator_api end  | 
  
Instance Method Details
#! ⇒ Object
Delegates ! to the __getobj__
      188 189 190  | 
    
      # File 'opal/stdlib/delegate.rb', line 188 def ! !__getobj__ end  | 
  
#!=(obj) ⇒ Object
Returns true if two objects are not considered of equal value.
      172 173 174 175  | 
    
      # File 'opal/stdlib/delegate.rb', line 172 def !=(obj) return false if obj.equal?(self) __getobj__ != obj end  | 
  
#==(obj) ⇒ Object
Returns true if two objects are considered of equal value.
      164 165 166 167  | 
    
      # File 'opal/stdlib/delegate.rb', line 164 def ==(obj) return true if obj.equal?(self) __getobj__ == obj end  | 
  
#__getobj__ ⇒ Object
This method must be overridden by subclasses and should return the object method calls are being delegated to.
      196 197 198  | 
    
      # File 'opal/stdlib/delegate.rb', line 196 def __getobj__ __raise__ ::NotImplementedError, "need to define `__getobj__'" end  | 
  
#__setobj__(obj) ⇒ Object
This method must be overridden by subclasses and change the object delegate to obj.
      204 205 206  | 
    
      # File 'opal/stdlib/delegate.rb', line 204 def __setobj__(obj) __raise__ ::NotImplementedError, "need to define `__setobj__'" end  | 
  
#eql?(obj) ⇒ Boolean
Returns true if two objects are considered of equal value.
      180 181 182 183  | 
    
      # File 'opal/stdlib/delegate.rb', line 180 def eql?(obj) return true if obj.equal?(self) obj.eql?(__getobj__) end  | 
  
#freeze ⇒ Object
:method: freeze Freeze both the object returned by __getobj__ and self.
      246 247 248 249 250  | 
    
      # File 'opal/stdlib/delegate.rb', line 246 def freeze __getobj__.freeze `$freeze_props(self)` `$freeze(self)` end  | 
  
#frozen? ⇒ Boolean
      252 253 254  | 
    
      # File 'opal/stdlib/delegate.rb', line 252 def frozen? `(self.$$frozen || false)` end  | 
  
#marshal_dump ⇒ Object
Serialization support for the object returned by __getobj__.
      211 212 213 214 215 216 217 218  | 
    
      # File 'opal/stdlib/delegate.rb', line 211 def marshal_dump ivars = instance_variables.reject { |var| /\A@delegate_/ =~ var } [ :__v2__, ivars, ivars.map { |var| instance_variable_get(var) }, __getobj__ ] end  | 
  
#marshal_load(data) ⇒ Object
Reinitializes delegation from a serialized object.
      223 224 225 226 227 228 229 230 231  | 
    
      # File 'opal/stdlib/delegate.rb', line 223 def marshal_load(data) version, vars, values, obj = data if version == :__v2__ vars.each_with_index { |var, i| instance_variable_set(var, values[i]) } __setobj__(obj) else __setobj__(data) end end  | 
  
#methods(all = true) ⇒ Object
Returns the methods available to this delegate object as the union of this object's and __getobj__ methods.
      139 140 141  | 
    
      # File 'opal/stdlib/delegate.rb', line 139 def methods(all = true) __getobj__.methods(all) | super end  | 
  
#protected_methods(all = true) ⇒ Object
Returns the methods available to this delegate object as the union of this object's and __getobj__ protected methods.
      155 156 157  | 
    
      # File 'opal/stdlib/delegate.rb', line 155 def protected_methods(all = true) __getobj__.protected_methods(all) | super end  | 
  
#public_methods(all = true) ⇒ Object
Returns the methods available to this delegate object as the union of this object's and __getobj__ public methods.
      147 148 149  | 
    
      # File 'opal/stdlib/delegate.rb', line 147 def public_methods(all = true) __getobj__.public_methods(all) | super end  | 
  
#respond_to_missing?(m, include_private) ⇒ Boolean
Checks for a method provided by this the delegate object by forwarding the call through __getobj__.
      107 108 109 110 111 112 113 114 115 116  | 
    
      # File 'opal/stdlib/delegate.rb', line 107 def respond_to_missing?(m, include_private) r = true target = __getobj__ { r = false } r &&= target_respond_to?(target, m, include_private) if r && include_private && !target_respond_to?(target, m, false) warn "delegator does not forward private method \##{m}", uplevel: 3 return false end r end  |