class ActionView::TemplateRenderer

Public Instance Methods

render(context, options) click to toggle source
# File lib/bizside/user_agent/action_view/action_view_4.rb, line 5
def render(context, options)
  @view    = context
  @details = extract_details(options)
  template = get_template_by_user_agent(context, options)
  context  = @lookup_context

  prepend_formats(template.formats)

  unless context.rendered_format
    context.rendered_format = template.formats.first || formats.first
  end

  render_template(template, options[:layout], options[:locals])
end

Private Instance Methods

get_template_by_user_agent(context, options) click to toggle source
# File lib/bizside/user_agent/action_view/action_view_4.rb, line 32
def get_template_by_user_agent(context, options)
  ret = nil
  option_for_template = options[:template]

  ua = get_user_agent(context)
  if ua
    ua.priorities.each do |priority|
      begin
        options[:template] = option_for_template + '.' + priority
        ret = determine_template(options)
        break
      rescue ActionView::MissingTemplate => e
      end
    end
  end

  unless ret
    options[:template] = option_for_template
    ret = determine_template(options)
  end

  Rails.logger.debug "UserAgent: #{ua ? ua.name : 'unknown'} => #{ret.identifier}"
  ret
end
get_user_agent(context) click to toggle source
# File lib/bizside/user_agent/action_view/action_view_4.rb, line 22
def get_user_agent(context)
  if context.respond_to?(:user_agent)
    if context.respond_to?(:controller)
      if context.controller.respond_to?(:session)
        context.user_agent
      end
    end
  end
end