Sha256: 9fb49c29fc43702c7f543eb813822dd7833a06b56237ca89d50f75e211b33031

Contents?: true

Size: 835 Bytes

Versions: 1

Compression:

Stored size: 835 Bytes

Contents

module Slim
  # Base class for Temple filters used in Slim
  #
  # This base filter passes everything through and allows
  # to override only some methods without affecting the rest
  # of the expression.
  #
  # @api private
  class Filter < Temple::Filter
    # Dispatch on_slim_*
    temple_dispatch :slim

    def on_slim_control(code, content)
      [:slim, :control, code, compile(content)]
    end

    def on_slim_comment(content)
      [:slim, :comment, compile(content)]
    end

    def on_slim_output(code, escape, content)
      [:slim, :output, code, escape, compile(content)]
    end

    def on_slim_tag(name, attrs, closed, content)
      [:slim, :tag, name, compile(attrs), closed, compile(content)]
    end

    def on_slim_attrs(*attrs)
      [:slim, :attrs, *attrs.map {|k, v| [k, compile(v)] }]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slim-0.9.2 lib/slim/filter.rb