module ForceFormat::Controller

Constants

FORCE_FORMAT_DEFAULT_TYPES
FORCE_FORMAT_EXCEPTION
FORCE_FORMAT_TYPES
FORCE_FORMAT_WILDCARD

Private Instance Methods

force_format_extract_exception() click to toggle source
# File lib/force_format/controller.rb, line 73
def force_format_extract_exception
  force_format_load_filter_chain.options[:exception] || FORCE_FORMAT_EXCEPTION
end
force_format_extract_formats() click to toggle source
# File lib/force_format/controller.rb, line 49
def force_format_extract_formats
  force_formats = force_format_load_filter_chain.options[:for]

  if force_formats.is_a? (Array || Symbol)
    [*force_formats]
  elsif force_formats.is_a? Hash
    if force_formats[self.action_name.to_sym]
      [*force_formats[self.action_name.to_sym]]
    else
      force_formats[:default] ? [*force_formats[:default]] : nil
    end
  else
    FORCE_FORMAT_DEFAULT_TYPES
  end
end
force_format_extract_wildcard_option() click to toggle source
# File lib/force_format/controller.rb, line 65
def force_format_extract_wildcard_option
  force_format_load_filter_chain.options[:skip_wildcard]
end
force_format_filter_method() click to toggle source
# File lib/force_format/controller.rb, line 29
def force_format_filter_method
  force_formats = force_format_extract_formats
  return unless force_formats
  unsupported = force_formats - FORCE_FORMAT_TYPES
  raise ForceFormat::Errors::UnsupportedFormat.new("There is no support for #{unsupported} format") if unsupported.any?

  if request.format.to_s == FORCE_FORMAT_WILDCARD and not force_format_skip_wildcard_rewrite?
    request.format = :html
  end

  format = request.format
  unless force_formats.include?(format.try(:to_sym))
    force_format_extract_exception.call("Format '#{format}' not supported for #{request.path.inspect}")
  end
end
force_format_load_filter_chain() click to toggle source
# File lib/force_format/controller.rb, line 45
def force_format_load_filter_chain
  filter = self._process_action_callbacks.find { |f| f.filter == :force_format_filter_method }
end
force_format_skip_wildcard_rewrite?() click to toggle source
# File lib/force_format/controller.rb, line 69
def force_format_skip_wildcard_rewrite?
  force_format_extract_wildcard_option
end