Sha256: bf4bc1dfc20342d3cd9d2d9d8760c46a31548b366eea15caccb7248bb9ed64ab

Contents?: true

Size: 662 Bytes

Versions: 2

Compression:

Stored size: 662 Bytes

Contents

# frozen_string_literal: true

module Liquid
  class StaticRegisters
    attr_reader :static, :registers

    def initialize(registers = {})
      @static    = registers.is_a?(StaticRegisters) ? registers.static : registers
      @registers = {}
    end

    def []=(key, value)
      @registers[key] = value
    end

    def [](key)
      if @registers.key?(key)
        @registers[key]
      else
        @static[key]
      end
    end

    def delete(key)
      @registers.delete(key)
    end

    def fetch(key, default = nil)
      key?(key) ? self[key] : default
    end

    def key?(key)
      @registers.key?(key) || @static.key?(key)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
liquid-render-tag-0.2.0 lib/liquid-render-tag/static_registers.rb
liquid-render-tag-0.1.0 lib/liquid-render-tag/static_registers.rb