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:



61
62
63
64
# File 'lib/surrogate/values.rb', line 61

def dequeue
  raise QueueEmpty if empty?
  queue.shift
end

#empty?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/surrogate/values.rb', line 66

def empty?
  queue.empty?
end

#queueObject



57
58
59
# File 'lib/surrogate/values.rb', line 57

def queue
  @value
end

#value(hatchling, method_name) ⇒ Object



51
52
53
54
55
# File 'lib/surrogate/values.rb', line 51

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