Sha256: 6d921c098d8bc12704f488d88ed9331f55d19570ce2f0a1b893a76982823b9cb

Contents?: true

Size: 1.06 KB

Versions: 6

Compression:

Stored size: 1.06 KB

Contents

class Card
  class Format
    module Error
      def rescue_view e, view
        method = loud_error? ? :loud_error : :quiet_error
        send method, e, view
      end

      def error_cardname _exception
        if card&.name.present?
          safe_name
        else
          I18n.t :no_cardname, scope: %i[lib card format error]
        end
      end

      def loud_error?
        focal? || Card.config.raise_all_rendering_errors
      end

      def loud_error e, view
        card.errors.add "#{view} view", rendering_error(e, view) if card.errors.empty?
        raise e
      end

      def quiet_error e, view
        # TODO: unify with Card::Error#report
        Rails.logger.info "#{e.message}\n#{e.backtrace}"
        rendering_error e, view
      end

      def rendering_error exception, view
        if exception.is_a? Card::Error::UserError
          exception.message
        else
          tr :error_rendering, scope: [:lib, :card, :format, :error],
                               cardname: error_cardname(exception), view: view
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.96.8 lib/card/format/error.rb
card-1.96.7 lib/card/format/error.rb
card-1.96.6 lib/card/format/error.rb
card-1.96.5 lib/card/format/error.rb
card-1.96.4 lib/card/format/error.rb
card-1.96.3 lib/card/format/error.rb