Sha256: 57a3b4dcf0b977cf8dfa58f27670416e3a5f097ce4349ba6d7f63cc9bf3170ff

Contents?: true

Size: 1.96 KB

Versions: 1

Compression:

Stored size: 1.96 KB

Contents

require 'handlebars_assets'
require 'handlebars_assets/config'
require 'handlebars_assets/tilt_handlebars'
require 'handlebars_assets/handlebars'

require 'test/unit'

module SprocketsScope
  # Try to act like sprockets.
  def make_scope(root, file)
    Class.new do
      define_method(:logical_path) { pathname.to_s.gsub(root + '/', '').gsub(/\..*/, '') }

      define_method(:pathname) { Pathname.new(root) + file }

      define_method(:root_path) { root }
    end.new
  end
end

module CompilerSupport
  include HandlebarsAssets::Unindent

  def compile_hbs(source)
    compiler_src = Pathname(HandlebarsAssets::Config.compiler_path).join(HandlebarsAssets::Config.compiler).read
    ExecJS.compile(compiler_src).call('Handlebars.precompile', source, HandlebarsAssets::Config.options)
  end

  def hbs_compiled(template_name, source)
    compiled_hbs = compile_hbs(source)
    template_namespace = HandlebarsAssets::Config.template_namespace

    unindent <<-END_EXPECTED
      (function() {
        this.#{template_namespace} || (this.#{template_namespace} = {});
        this.#{template_namespace}[#{template_name.dump}] = Handlebars.template(#{compiled_hbs});
        return this.#{template_namespace}[#{template_name.dump}];
      }).call(this);
    END_EXPECTED
  end

  def hbs_compiled_partial(partial_name, source)
    compiled_hbs = compile_hbs(source)

    unindent <<-END_EXPECTED
      (function() {
        Handlebars.registerPartial(#{partial_name.dump}, Handlebars.template(#{compiled_hbs}));
      }).call(this);
    END_EXPECTED
  end
end

module HandlebarsAssets
  module Config
    extend self

    def reset!
      @compiler = nil
      @compiler_path = nil
      @haml_options = nil
      @known_helpers = nil
      @known_helpers_only = nil
      @options = nil
      @path_prefix = nil
      @template_namespace = nil
    end

  end

  class Handlebars

    def self.reset!
      @context = nil
      @source = nil
      @path = nil
      @assets_path = nil
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
handlebars_assets-0.7.2 test/test_helper.rb