class Object
Constants
- DEFAULT_STATUS_LAYOUT
Public Class Methods
handles_error_status()
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 65 def handles_error_status status_action :internal_server_error skip_before_action :verify_authenticity_token, only: :internal_server_error, if: -> { request.format.js? } rescue_from Exception, with: :internal_server_error end
handles_not_found_status()
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 71 def handles_not_found_status status_action :not_found skip_before_action :verify_authenticity_token, only: :not_found, if: -> { request.format.js? } rescue_from *[ ActiveRecord::RecordNotFound, ActionController::RoutingError, ActionController::UnknownFormat, ::AbstractController::ActionNotFound ], with: :not_found end
status_action(*status)
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 55 def status_action(*status) status.each do |_status| unless instance_methods.include? _status define_method _status do |*_, format: nil, layout: nil| render_status _status, format: format, layout: layout end end end end
status_format?(format)
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 5 def status_format?(format) (status_formats[:only].include?(format) || status_formats[:only].empty?) && !status_formats[:except].include?(format) end
status_formats(only: nil, except: nil)
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 9 def status_formats(only: nil, except: nil) @status_formats = { only: [], except: [] } unless @status_formats.is_a? Hash only = only.to_sym if only.is_a? String only = [only] if only.is_a? Symbol except = only.to_sym if only.is_a? String except = [only] if only.is_a? Symbol if only.is_a? Array @status_formats[:only] = (@status_formats[:only] + only).uniq end if except.is_a? Array @status_formats[:except] = (@status_formats[:except] + except).uniq @status_formats[:only] -= except end @status_formats end
Also aliased as: status_format
status_layout(*name)
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 31 def status_layout(*name) @status_layout = name.first if name.any? @status_layout == false ? nil : (@status_layout || DEFAULT_STATUS_LAYOUT) end
Public Instance Methods
handles_not_found_status()
click to toggle source
# File lib/httpstatus/core_ext/mapper.rb, line 2 def handles_not_found_status match '*path' => 'application#not_found', via: :all end
render_status(status, format: nil, layout: nil)
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 43 def render_status(status, format: nil, layout: nil) format = (format.present? ? format : request.format).to_sym format = self.class.status_formats[:only].first || :html unless status_format? format layout = layout.nil? ? self.class.status_layout : layout layout = false unless lookup_context.exists? layout, [], false, formats: [format] layout = "layouts/#{layout}" unless layout == false @status = Httpstatus::Status.new status render 'http/status', formats: [format], layout: layout, status: @status.key end
status_format?(format)
click to toggle source
# File lib/httpstatus/core_ext/action_controller.rb, line 39 def status_format?(format) lookup_context.exists?('http/status', [], false, [], formats: [format]) && self.class.status_format?(format) end