Sha256: 6757d910d91a90090da8045038756b450586082569bb45ff0f76a9e87161c0d5

Contents?: true

Size: 769 Bytes

Versions: 47

Compression:

Stored size: 769 Bytes

Contents

require 'hamlit/concerns/escapable'
require 'hamlit/concerns/included'

module Hamlit
  module Compilers
    module Script
      extend Concerns::Included

      included do
        include Concerns::Escapable
      end

      def on_haml_script(code, options, *exps)
        variable = result_identifier

        assign = [:code, "#{variable} = #{code}"]
        result = escape_html([:dynamic, variable], options[:force_escape])
        result = [:dynamic, variable] if options[:disable_escape]
        [:multi, assign, *exps.map { |exp| compile(exp) }, compile(result)]
      end

      private

      def result_identifier
        @id_auto_increment ||= -1
        @id_auto_increment += 1
        "_hamlit_compiler#{@id_auto_increment}"
      end
    end
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
hamlit-1.7.2 lib/hamlit/compilers/script.rb
hamlit-1.7.1 lib/hamlit/compilers/script.rb
hamlit-1.7.0 lib/hamlit/compilers/script.rb
hamlit-1.6.7 lib/hamlit/compilers/script.rb
hamlit-1.6.6 lib/hamlit/compilers/script.rb
hamlit-1.6.5 lib/hamlit/compilers/script.rb
hamlit-1.6.4 lib/hamlit/compilers/script.rb
hamlit-1.6.3 lib/hamlit/compilers/script.rb
hamlit-1.6.2 lib/hamlit/compilers/script.rb
hamlit-1.6.1 lib/hamlit/compilers/script.rb
hamlit-1.6.0 lib/hamlit/compilers/script.rb
hamlit-1.5.9 lib/hamlit/compilers/script.rb
hamlit-1.5.8 lib/hamlit/compilers/script.rb
hamlit-1.5.7 lib/hamlit/compilers/script.rb
hamlit-1.5.6 lib/hamlit/compilers/script.rb
hamlit-1.5.5 lib/hamlit/compilers/script.rb
hamlit-1.5.4 lib/hamlit/compilers/script.rb
hamlit-1.5.3 lib/hamlit/compilers/script.rb
hamlit-1.5.2 lib/hamlit/compilers/script.rb
hamlit-1.5.1 lib/hamlit/compilers/script.rb