Sha256: 213154a04b767ceca6aabb1efab158c2387f33217a22cdf9c603b994ca66d3a4

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require 'angular-rails4-templates/compact_javascript_escape'

module AngularRails4Templates
  class Processor

    include CompactJavaScriptEscape

    def self.instance
      @instance ||= new
    end

    def self.call(input)
      instance.call(input)
    end

    def self.cache_key
      instance.cache_key
    end

    attr_reader :cache_key, :config

    def config
      Rails.configuration.angular_templates
    end

    def initialize(options = {})
      @cache_key = [self.class.name, VERSION, options].freeze
    end

    def render_html(input)
      escape_javascript input[:data].chomp
    end

    def template_name(name)
      path = name.sub /^(#{config.ignore_prefix.join('|')})/, ''
      "#{path}.html"
    end

    def call(input)
      angular_template_name = template_name(input[:name])
      angular_module = config.module_name
      html = render_html(input)
      source_file = "#{input[:filename]}".sub(/^#{Rails.root}\//,'')
      erb = ERB.new(File.read("#{File.dirname __FILE__}/javascript_template.js.erb"))

      result = erb.result binding

      result
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
angular-rails4-templates-0.4.1 lib/angular-rails4-templates/processor.rb
angular-rails4-templates-0.4.0 lib/angular-rails4-templates/processor.rb