Class: ModelTemplateResolver::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/model_template_resolver/resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Resolver

Returns a new instance of Resolver.



4
5
6
7
8
9
# 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

Instance Method Details

#pathObject



11
12
13
14
15
16
17
18
19
20
21
22
# 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