Sha256: bafdd1f0ef94d142579e73ce107f0b18eac78b35197243a5f80a6e4452a1815d

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'active_support/concern'
require 'responders'
require 'roar-rails'

module HalApi::Controller
  extend ActiveSupport::Concern

  require 'hal_api/controller/actions'
  require 'hal_api/controller/cache'
  require 'hal_api/controller/resources'
  require 'hal_api/controller/exceptions'
  require 'hal_api/responders/api_responder'

  include HalApi::Controller::Actions
  include HalApi::Controller::Cache
  include HalApi::Controller::Resources
  include HalApi::Controller::Exceptions

  included do
    include Roar::Rails::ControllerAdditions

    before_action :set_accepts
    respond_to :hal, :json

    hal_rescue_standard_errors

    def self.responder
      HalApi::Responders::ApiResponder
    end
  end

  private

  def set_accepts
    mime_comparator = case HalApi::rails_major_version
                      when 5
                        Mime[:html]
                      else
                        Mime::HTML
                      end
    request.format = :json if request.format == mime_comparator
  end

  def env
    case HalApi.rails_major_version
    when 5
      request.env
    else
      super
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hal_api-rails-0.5.0 lib/hal_api/controller.rb