diff --git a/lib/liquid/registers.rb b/lib/liquid/registers.rb index 95cd8f9f..0b65d862 100644 --- a/lib/liquid/registers.rb +++ b/lib/liquid/registers.rb @@ -5,31 +5,31 @@ module Liquid attr_reader :static def initialize(registers = {}) - @static = registers.is_a?(Registers) ? registers.static : registers - @registers = {} + @static = registers.is_a?(Registers) ? registers.static : registers + @changes = {} end def []=(key, value) - @registers[key] = value + @changes[key] = value end def [](key) - if @registers.key?(key) - @registers[key] + if @changes.key?(key) + @changes[key] else @static[key] end end def delete(key) - @registers.delete(key) + @changes.delete(key) end UNDEFINED = Object.new def fetch(key, default = UNDEFINED, &block) - if @registers.key?(key) - @registers.fetch(key) + if @changes.key?(key) + @changes.fetch(key) elsif default != UNDEFINED if block_given? @static.fetch(key, &block) @@ -42,7 +42,7 @@ module Liquid end def key?(key) - @registers.key?(key) || @static.key?(key) + @changes.key?(key) || @static.key?(key) end end