Sha256: 0f54030536075fc5d6813cdd86fa4f2716c6c2991bbda8408c121b2253b5ab07

Contents?: true

Size: 928 Bytes

Versions: 21

Compression:

Stored size: 928 Bytes

Contents

# Decko's only controller.
class CardController
  # controller error handling
  module Errors
    # controller class method to handle top-level error rescuing
    module Rescue
      def rescue_from_class *klasses
        klasses.each do |klass|
          rescue_from(klass) { |exception| handle_exception exception }
        end
      end

      def rescue_all?
        Cardio.config.rescue_all_in_controller
      end
    end

    def handle_exception exception
      raise exception if debug_exception?(exception)

      @card ||= Card.new
      error = Card::Error.report exception, card
      show error.class.view, error.class.status_code
    end

    # TODO: move to exception object
    def debug_exception? e
      !e.is_a?(Card::Error::UserError) &&
        !e.is_a?(ActiveRecord::RecordInvalid) &&
        Card::Codename[:debugger] &&
        Card[:debugger]&.content =~ /on/  # && !Card::Env.ajax?
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
decko-0.18.1 lib/card_controller/errors.rb
decko-0.18.0 lib/card_controller/errors.rb
decko-0.17.0 lib/card_controller/errors.rb
decko-0.16.0 lib/card_controller/errors.rb
decko-0.15.6 lib/card_controller/errors.rb
decko-0.15.5 lib/card_controller/errors.rb
decko-0.15.4 lib/card_controller/errors.rb
decko-0.15.3 lib/card_controller/errors.rb
decko-0.15.2.pre1 lib/card_controller/errors.rb
decko-0.15.1.1 lib/card_controller/errors.rb
decko-0.15.1 lib/card_controller/errors.rb
decko-0.15.0 lib/card_controller/errors.rb
decko-0.14.2 lib/card_controller/errors.rb
decko-0.14.1 lib/card_controller/errors.rb
decko-0.14.0 lib/card_controller/errors.rb
decko-0.13.4 lib/card_controller/errors.rb
decko-0.13.3 lib/card_controller/errors.rb
decko-0.13.2 lib/card_controller/errors.rb
decko-0.13.1 lib/card_controller/errors.rb
decko-0.13.0 lib/card_controller/errors.rb