Exception: Card::Error

Inherits:
StandardError show all
Defined in:
card/lib/card/error.rb

Overview

exceptions and errors. (arguably most of these should be Card::Exception)

Direct Known Subclasses

ServerError, UserError

Defined Under Namespace

Classes: Abort, BadAddress, BadQuery, CodenameNotFound, EditConflict, NotFound, PermissionDenied, ServerError, UserError

Constant Summary collapse

KEY_MAP =
{ permission_denied: PermissionDenied,
conflict: EditConflict }.freeze

Constants inherited from StandardError

StandardError::MAX_BACKTRACE_LINES

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from StandardError

#report

Constructor Details

#initialize(message = nil) ⇒ Error

Returns a new instance of Error.



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

def initialize message=nil
  if message.is_a? Card
    self.card = message
    message = message_from_card
  end
  super message
end

Instance Attribute Details

#backtraceObject



37
38
39
# File 'card/lib/card/error.rb', line 37

def backtrace
  @backtrace || super
end

#cardObject

Returns the value of attribute card.



23
24
25
# File 'card/lib/card/error.rb', line 23

def card
  @card
end

Class Method Details

.report(exception, card) ⇒ Object



130
131
132
133
134
135
# File 'card/lib/card/error.rb', line 130

def report exception, card
  e = cardify_exception exception, card
  self.current = e
  e.report
  e
end

.rescue_card(card) ⇒ Object



137
138
139
140
141
# File 'card/lib/card/error.rb', line 137

def rescue_card card
  yield
rescue StandardError => e
  report e, card
end

Instance Method Details

#card_message_textObject



41
42
43
# File 'card/lib/card/error.rb', line 41

def card_message_text
  card.errors.first&.message
end

#message_from_cardObject



33
34
35
# File 'card/lib/card/error.rb', line 33

def message_from_card
  ::I18n.t :lib_exception_for_card, cardname: card.name, message: card_message_text
end