Class: AwesomeErrors::Error

Inherits:
Object
  • Object
show all
Defined in:
lib/awesome_errors/error.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key:, code: :invalid, message: "is invalid", metadata: {}) ⇒ Error

Returns a new instance of Error.

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
16
# File 'lib/awesome_errors/error.rb', line 7

def initialize(key:, code: :invalid, message: "is invalid", metadata: {})
  raise ArgumentError unless code.is_a?(Symbol) || code.is_a?(Integer)

  @key = key
  @code = code
  @message = message
  @metadata = 

  freeze
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



5
6
7
# File 'lib/awesome_errors/error.rb', line 5

def code
  @code
end

#keyObject (readonly)

Returns the value of attribute key.



5
6
7
# File 'lib/awesome_errors/error.rb', line 5

def key
  @key
end

#messageObject (readonly)

Returns the value of attribute message.



5
6
7
# File 'lib/awesome_errors/error.rb', line 5

def message
  @message
end

#metadataObject (readonly)

Returns the value of attribute metadata.



5
6
7
# File 'lib/awesome_errors/error.rb', line 5

def 
  @metadata
end

Instance Method Details

#==(other) ⇒ Object



36
37
38
39
40
# File 'lib/awesome_errors/error.rb', line 36

def ==(other)
  return false unless other.is_a?(AwesomeErrors::Error)

  to_hash == other.to_hash
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/awesome_errors/error.rb', line 42

def eql?(other)
  self == other
end

#full_message(include_key: true) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/awesome_errors/error.rb', line 18

def full_message(include_key: true)
  if include_key
    [key, message].compact.join(" ")
  else
    message
  end
end

#hashObject



46
47
48
# File 'lib/awesome_errors/error.rb', line 46

def hash
  to_hash.hash
end

#to_hash(full_message: false) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/awesome_errors/error.rb', line 26

def to_hash(full_message: false)
  message_method = full_message ? :full_message : :message
  {
    key: key,
    code: code,
    message: public_send(message_method),
    metadata: 
  }
end