class Encase::ContainerItem
Attributes
container[RW]
key[RW]
reified_value[RW]
value[RW]
Public Class Methods
new(container)
click to toggle source
# File lib/encase/container_item.rb, line 8 def initialize(container) self.container = container end
Public Instance Methods
fetch()
click to toggle source
returns just the reified value by default
# File lib/encase/container_item.rb, line 48 def fetch reified_value end
inject(object, origin = nil)
click to toggle source
# File lib/encase/container_item.rb, line 17 def inject(object, origin = nil) if origin.nil? container = self.container else container = origin end container.inject(object) end
instance(origin = nil)
click to toggle source
public api
# File lib/encase/container_item.rb, line 53 def instance(origin = nil) reify unless reified? object = fetch inject(object, origin) object end
reified?()
click to toggle source
# File lib/encase/container_item.rb, line 43 def reified? !self.reified_value.nil? end
reify()
click to toggle source
# File lib/encase/container_item.rb, line 27 def reify return false if reified? if value.is_a? Proc if value.arity == 1 self.reified_value = value.call(container) else self.reified_value = value.call end else self.reified_value = value end true end
store(key, value)
click to toggle source
# File lib/encase/container_item.rb, line 12 def store(key, value) self.key = key self.value = value end