Sha256: 87586ab75fd9286494467fa31fb40947068554aafb4646f085981a9c5b5e3a1b

Contents?: true

Size: 718 Bytes

Versions: 6

Compression:

Stored size: 718 Bytes

Contents

# frozen_string_literal: true

require 'forwardable'

module Bemer
  class Context
    extend Forwardable

    def_delegators :node, :bem, :bem_cascade, :block, :elem, :first?, :last?, :name, :position, :tag

    def initialize(node, template = nil)
      @node     = node
      @template = template
    end

    def params
      @params ||= Hash[node.params]
    end

    def attrs
      @attrs ||= Hash[node.attrs]
    end

    def cls
      @cls ||= node.cls.dup
    end

    def js
      @js ||= node.js.dup
    end

    def mix
      @mix ||= node.mix.dup
    end

    def mods
      @mods ||= ActiveSupport::HashWithIndifferentAccess[node.mods]
    end

    protected

    attr_reader :template, :node
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
bemer-0.6.0 lib/bemer/context.rb
bemer-0.5.0 lib/bemer/context.rb
bemer-0.4.0 lib/bemer/context.rb
bemer-0.3.0 lib/bemer/context.rb
bemer-0.2.0 lib/bemer/context.rb
bemer-0.1.0 lib/bemer/context.rb