class Liquid::Registers
def [](key)
def [](key) if @changes.key?(key) @changes[key] else @static[key] end end
def []=(key, value)
def []=(key, value) @changes[key] = value end
def delete(key)
def delete(key) @changes.delete(key) end
def fetch(key, default = UNDEFINED, &block)
def fetch(key, default = UNDEFINED, &block) if @changes.key?(key) @changes.fetch(key) elsif default != UNDEFINED if block_given? @static.fetch(key, &block) else @static.fetch(key, default) end else @static.fetch(key, &block) end end
def initialize(registers = {})
def initialize(registers = {}) @static = registers.is_a?(Registers) ? registers.static : registers @changes = {} end
def key?(key)
def key?(key) @changes.key?(key) || @static.key?(key) end