class Liquid::StaticRegisters

Constants

UNDEFINED

Attributes

static[R]

Public Class Methods

new(registers = {}) click to toggle source
# File lib/liquid/registers.rb, line 7
def initialize(registers = {})
  @static = registers.is_a?(Registers) ? registers.static : registers
  @changes = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/liquid/registers.rb, line 16
def [](key)
  if @changes.key?(key)
    @changes[key]
  else
    @static[key]
  end
end
[]=(key, value) click to toggle source
# File lib/liquid/registers.rb, line 12
def []=(key, value)
  @changes[key] = value
end
delete(key) click to toggle source
# File lib/liquid/registers.rb, line 24
def delete(key)
  @changes.delete(key)
end
fetch(key, default = UNDEFINED, &block) click to toggle source
# File lib/liquid/registers.rb, line 30
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
key?(key) click to toggle source
# File lib/liquid/registers.rb, line 44
def key?(key)
  @changes.key?(key) || @static.key?(key)
end