Sha256: 978bf1cfd05cd5f630082279bce1fc92b85a51716d35408b24f3ff842a4a1292

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

require 'tilt'
require 'angular/html2js/configuration'

module Angular
  module Html2js
    class Template < Tilt::Template
      attr_accessor :file

      def self.default_mime_type
        'application/javascript'
      end

      TEMPLATE = <<-TEMPLATE
angular.module('%s', []).run(['$templateCache', function($templateCache) {
  $templateCache.put('%s',
  '%s');
}]);
      TEMPLATE


      SINGLE_MODULE_TPL = <<-SINGLE_MODULE_TPL
(function(module) {
  try {
    module = angular.module('%s');
  } catch (e) {
    module = angular.module('%s', []);
  }
  module.run(['$templateCache', function($templateCache) {
    $templateCache.put('%s',
    '%s');
  }]);
})();
      SINGLE_MODULE_TPL

      def config
        Html2js.config
      end

      def prepare; end

      def evaluate(scope, locals, &block)
        @module_name = config.module_name
        @cache_id = config.cache_id || default_cache_id_proc
        @scope = scope
        if @module_name
          SINGLE_MODULE_TPL % [@module_name, @module_name, cache_id, escapeContent(data)]
        else
          TEMPLATE % [cache_id, cache_id, escapeContent(data)]
        end
      end

      private

      def escapeContent(content)
        content.gsub(/\\/, '\\\\\\').gsub("'", %q{\\\\'}).gsub(/\r?\n/, "\\\\n\' +\n   \'")
      end

      def cache_id
        @cache_id.call(file, @scope)
      end

      def default_cache_id_proc
        Proc.new { file }
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
angular-html2js-0.0.4 lib/angular/html2js/template.rb