Module: Card::Format::Error

Included in:
Card::Format
Defined in:
lib/card/format/error.rb

Instance Method Summary collapse

Instance Method Details

#error_cardname(_exception) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/card/format/error.rb', line 9

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

#loud_error(e, view) ⇒ Object



21
22
23
24
# File 'lib/card/format/error.rb', line 21

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

#loud_error?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/card/format/error.rb', line 17

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

#quiet_error(e, view) ⇒ Object



26
27
28
29
30
# File 'lib/card/format/error.rb', line 26

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

#rendering_error(exception, view) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/card/format/error.rb', line 32

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

#rescue_view(e, view) ⇒ Object



4
5
6
7
# File 'lib/card/format/error.rb', line 4

def rescue_view e, view
  method = loud_error? ? :loud_error : :quiet_error
  send method, e, view
end