Sha256: 975cfca3fd18963a039e3196b94f71657a19ec3fc83271852b433fbc6b2f03ea

Contents?: true

Size: 962 Bytes

Versions: 3

Compression:

Stored size: 962 Bytes

Contents

require 'opal'
require 'opal/haml/builder'
require 'opal/haml/processor'
require 'opal/haml/version'

module Opal
  module Haml
    haml_major_version = ::Haml::VERSION.to_i
    @options = if haml_major_version > 4
      {freeze_static: false, remove_whitespace: true}
    else
      {freeze_static: false, remove_whitespace: true, ugly: true}
    end.freeze

    def self.compile(source, file = '(haml)')
      Opal.compile(compile_haml(source, file))
    end

    def self.compile_haml(source, file)
      haml = ::Haml::Engine.new(source, @options).precompiled
      haml = haml.gsub('_hamlout.buffer', '_hamlout')
      wrap(haml, file)
    end

    def self.wrap(haml, file)
      <<-EOS
        require 'opal-haml'
        Template.new('#{file}') do |_hamlout|
          _hamlout.extend Haml::Buffer
          #{haml}
          _hamlout.join
        end
      EOS
    end
  end
end

Opal.append_path File.expand_path('../../../lib-opal', __FILE__).untaint

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
opal-haml-0.5.0 lib/opal/haml.rb
opal-haml-0.4.6 lib/opal/haml.rb
opal-haml-0.4.5 lib/opal/haml.rb