Utopia SourceUtopiaControllerVariables

class Variables

Provides a stack-based instance variable lookup mechanism. It can flatten a stack of controllers into a single hash.

Definitions

def fetch(key, default=self)

We use self as a seninel

Implementation

def fetch(key, default=self)
	if controller = self.top
		if controller.instance_variables.include?(key)
			return controller.instance_variable_get(key)
		end
	end
	
	if block_given?
		yield(key)
	elsif !default.equal?(self)
		return default
	else
		raise KeyError.new(key)
	end
end