Class: Riser::Resource::Proxy

Inherits:
Delegator
  • Object
show all
Includes:
DRb::DRbUndumped, Delegatable, DelegateUnrefAlias
Defined in:
lib/riser/resource.rb

Instance Method Summary collapse

Methods included from DelegateUnrefAlias

#respond_to_missing?

Methods included from Delegatable

#__getobj__

Constructor Details

#initialize(manager, unref_alias_set) ⇒ Proxy

Returns a new instance of Proxy.



125
126
127
128
129
130
131
# File 'lib/riser/resource.rb', line 125

def initialize(manager, unref_alias_set)
  @manager = manager
  @unref_alias_set = unref_alias_set
  # if an exception occurs at `@create.call', the proxy should not be referenced.
  super(@manager.ref_object)
  @manager.ref_proxy(self)
end

Instance Method Details

#__unref__Object



133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/riser/resource.rb', line 133

def __unref__
  delegated = true
  __getobj__{ delegated = false }

  if (delegated) then
    __setobj__(nil)
    @manager.unref_proxy(self)
    # even if an exception occurs at `@destroy.call', the proxy should be unreferenced.
    @manager.unref_object
  end

  nil
end