Class: Surrogate::Value::MethodQueue

Inherits:
Surrogate::Value show all
Defined in:
lib/surrogate/values.rb

Constant Summary collapse

QueueEmpty =
Class.new StandardError

Instance Method Summary collapse

Methods inherited from Surrogate::Value

factory, #factory, #initialize

Constructor Details

This class inherits a constructor from Surrogate::Value

Instance Method Details

#dequeueObject

Raises:



68
69
70
71
# File 'lib/surrogate/values.rb', line 68

def dequeue
  raise QueueEmpty if empty?
  queue.shift
end

#empty?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/surrogate/values.rb', line 73

def empty?
  queue.empty?
end

#queueObject



64
65
66
# File 'lib/surrogate/values.rb', line 64

def queue
  @value
end

#value(hatchling, method_name) ⇒ Object



58
59
60
61
62
# File 'lib/surrogate/values.rb', line 58

def value(hatchling, method_name)
  factory(dequeue).value(hatchling, method_name)
ensure
  hatchling.unset_ivar method_name if empty?
end