Sha256: f30af6dc4abd39c1a82e3d4c06ea9dfe8c04d7cffdb3a5880cd75ec2c914cf11

Contents?: true

Size: 807 Bytes

Versions: 50

Compression:

Stored size: 807 Bytes

Contents

# frozen_string_literal: true

module Haml
  # Ruby code generator, which is a limited version of Temple::Generator.
  # Limit methods since Haml doesn't need most of them.
  class Generator
    include Temple::Mixins::CompiledDispatcher
    include Temple::Mixins::Options

    define_options freeze_static: RUBY_VERSION >= '2.1'

    def call(exp)
      compile(exp)
    end

    def on_multi(*exp)
      exp.map { |e| compile(e) }.join('; ')
    end

    def on_static(text)
      concat(options[:freeze_static] ? "#{Util.inspect_obj(text)}.freeze" : Util.inspect_obj(text))
    end

    def on_dynamic(code)
      concat(code)
    end

    def on_code(exp)
      exp
    end

    def on_newline
      "\n"
    end

    private

    def concat(str)
      "_hamlout.buffer << (#{str});"
    end
  end
end

Version data entries

50 entries across 46 versions & 4 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/generator.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-7.0.0 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.2.2 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.2.2.rc1 bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.2.1 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.2.0 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.1.2 bundle/ruby/3.3.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.1.1 bundle/ruby/3.0.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.1.0 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.0.1 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-6.0.0 bundle/ruby/3.0.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.4.1 bundle/ruby/3.1.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.4.0 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.3.1 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.3.0 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.2.3 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.2.2 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.2.1 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb
brakeman-5.2.0 bundle/ruby/2.7.0/gems/haml-5.2.2/lib/haml/generator.rb