class Rjax::Resolver

Public Class Methods

process(*args) click to toggle source
# File lib/rjax/resolver.rb, line 4
def self.process(*args)
  new(*args).process
end

Public Instance Methods

process() click to toggle source
# File lib/rjax/resolver.rb, line 8
def process
  case options
  when Hash     then general_partial
  when Array    then collection_partial
  when NilClass then template_name
  else
    instance_partial
  end
end

Private Instance Methods

collection_partial() click to toggle source
# File lib/rjax/resolver.rb, line 25
def collection_partial
  { :partial => partial_name, :collection => options, :as => singular_name, :layout => false }
end
general_partial() click to toggle source
# File lib/rjax/resolver.rb, line 20
def general_partial
  partial = options.has_key?(:partial) ? options.delete(:partial) : partial_name(:multi)
  { :partial => partial, :locals => options, :layout => false }
end
instance_partial() click to toggle source
# File lib/rjax/resolver.rb, line 29
def instance_partial
  { :partial => partial_name, :locals => { singular_name.to_sym => options }, :layout => false }
end
partial_name(multi = false) click to toggle source
# File lib/rjax/resolver.rb, line 37
def partial_name(multi = false)
  name = multi ? singular_name.pluralize : singular_name
  result = [rjax_version(name), name].detect { |item| controller.template_exists?(item, prefixes, true) }
  result ? result : raise(Rjax::PartialMissingError, name)
end
prefixes() click to toggle source
# File lib/rjax/resolver.rb, line 55
def prefixes
  @prefixes ||= controller.send(:_normalize_render)[:prefixes]
end
rjax_version(base) click to toggle source
# File lib/rjax/resolver.rb, line 47
def rjax_version(base)
  result = ""
  result << "#{ Rjax.config.prefix }_" if Rjax.config.prefix?
  result << base
  result << "_#{ Rjax.config.suffix }" if Rjax.config.suffix?
  result
end
singular_name() click to toggle source
# File lib/rjax/resolver.rb, line 43
def singular_name
  @singular_name ||= controller.controller_name.singularize
end
template_name() click to toggle source
# File lib/rjax/resolver.rb, line 33
def template_name
  rjax_version(controller.action_name).to_sym
end