class ModelTemplateResolver::Resolver

Public Class Methods

new(opts={}) click to toggle source
# File lib/model_template_resolver/resolver.rb, line 4
def initialize(opts={})
  @lookup_context = opts.fetch(:lookup_context)
  @template = opts[:template] || opts[:partial]
  @is_partial = opts.has_key?(:partial)
  @model = opts.fetch(:model)
end

Public Instance Methods

path() click to toggle source
# File lib/model_template_resolver/resolver.rb, line 11
def path
  if !(@model.class < ActiveRecord::Base)
    fail ArgumentError, "model given is not an ActiveRecord::Base model"
  end

  resources_names = @model.class.ancestors.select do |klass|
    klass < ActiveRecord::Base
  end.map { |klass| klass.name.underscore.pluralize }

  template = @lookup_context.find(@template, resources_names, @is_partial)
  template ? template.virtual_path.gsub("/_", "/") : nil
end