Class: Faye::Error

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

Constant Summary collapse

VERSION_MISMATCH =
[300, 'Version mismatch']
CONNTYPE_MISMATCH =
[301, 'Connection types not supported']
EXT_MISMATCH =
[302, 'Extension mismatch']
BAD_REQUEST =
[400, 'Bad request']
CLIENT_UNKNOWN =
[401, 'Unknown client']
PARAMETER_MISSING =
[402, 'Missing required parameter']
CHANNEL_FORBIDDEN =
[403, 'Forbidden channel']
CHANNEL_UNKNOWN =
[404, 'Unknown channel']
CHANNEL_INVALID =
[405, 'Invalid channel']
EXT_UNKNOWN =
[406, 'Unknown extension']
PUBLISH_FAILED =
[407, 'Failed to publish']
SERVER_ERROR =
[500, 'Internal server error']

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code, params, message) ⇒ Error

Returns a new instance of Error.



23
24
25
26
27
# File 'lib/faye/error.rb', line 23

def initialize(code, params, message)
  @code     = code
  @params   = params
  @message  = message
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



21
22
23
# File 'lib/faye/error.rb', line 21

def code
  @code
end

#messageObject (readonly)

Returns the value of attribute message.



21
22
23
# File 'lib/faye/error.rb', line 21

def message
  @message
end

#paramsObject (readonly)

Returns the value of attribute params.



21
22
23
# File 'lib/faye/error.rb', line 21

def params
  @params
end

Class Method Details

.method_missing(type, *args) ⇒ Object



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

def self.method_missing(type, *args)
  code = const_get(type.to_s.upcase)
  new(code[0], args, code[1]).to_s
end

.parse(message) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/faye/error.rb', line 9

def self.parse(message)
  message ||= ''
  return new(nil, [], message) unless Grammar::ERROR =~ message

  parts   = message.split(':')
  code    = parts[0].to_i
  params  = parts[1].split(',')
  message = parts[2]

  new(code, params, message)
end

Instance Method Details

#to_sObject



29
30
31
# File 'lib/faye/error.rb', line 29

def to_s
  "#{ @code }:#{ @params * ',' }:#{ @message }"
end