Sha256: 2a6b5b1323e7b2ef1626f923832a7e7f08c1c42c1444fcbe89d9d521b1943b41

Contents?: true

Size: 1.24 KB

Versions: 12

Compression:

Stored size: 1.24 KB

Contents

module Jpmobile
  class Resolver < ActionView::FileSystemResolver
    # EXTENSION_ORDER = [:variants, :locale, :formats, :handlers]

    def find_templates(name, prefix, partial, details)
      path = build_path(name, prefix, partial, details)
      query(path, EXTENSION_ORDER.map { |ext| details[ext] }, details[:formats], details[:mobile])
    end

    def build_path(name, prefix, partial, details)
      path = ""
      path << "#{prefix}/" unless prefix.empty?
      path << (partial ? "_#{name}" : name)
      path
    end

    def query(path, exts, formats, mobile)
      query = File.join(@path, path)
      query << '{' << mobile.map {|v| "_#{v}"}.join(',') << ',}' if mobile and mobile.respond_to?(:map)

      exts.each do |ext|
        query << '{' << ext.map {|e| e && ".#{e}" }.join(',') << ',}'
      end

      query.gsub!(/\{\.html,/, "{.html,.text.html,")
      query.gsub!(/\{\.text,/, "{.text,.text.plain,")

      Dir[query].reject { |p| File.directory?(p) }.map do |p|
        handler, format = extract_handler_and_format(p, formats)

        contents = File.open(p, "rb") {|io| io.read }

        ActionView::Template.new(contents, File.expand_path(p), handler,
          :virtual_path => path, :format => format)
      end
    end
  end
end

Version data entries

12 entries across 7 versions & 1 rubygems

Version Path
jpmobile-1.0.0.pre.6 lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.5 lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.4 lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.4 test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.3 lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.3 test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.2 lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.2 test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.1 test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre.1 lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
jpmobile-1.0.0.pre lib/jpmobile/resolver.rb