Class: IRC::Messages::Factory

Inherits:
Object
  • Object
show all
Defined in:
lib/irc/messages/factory.rb

Class Method Summary collapse

Class Method Details

.create(raw_message) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/irc/messages/factory.rb', line 46

def self.create(raw_message)

  # Remove new line from raw message if available.
  raw_message.chomp!

  # Create a new message object, to get access to the message code.        
  message = Message.new(raw_message)
  
  # Create a new specialized message object, depending on the message code.
  case message.code     
  
  when ErrorMessage::CODE
    return ErrorMessage.new(raw_message)
  
  when ErrorAlreadyRegisteredMessage::CODE
    return ErrorAlreadyRegisteredMessage.new(raw_message)
  
  when ErrorBadChannelKeyMessage::CODE
    return ErrorBadChannelKeyMessage.new(raw_message)   
    
  when ErrorBadChannelMaskMessage::CODE
    return ErrorBadChannelMaskMessage.new(raw_message)          
    
  when ErrorBannedFromChannelMessage::CODE
    return ErrorBannedFromChannelMessage.new(raw_message)
    
  when ErrorChannelIsFulMessage::CODE
    return ErrorChannelIsFulMessage.new(raw_message)
  
  when ErrorErroneusNickNameMessage::CODE
    return ErrorErroneusNickNameMessage.new(raw_message)
    
  when ErrorInviteOnlyChannelMessage::CODE
    return ErrorInviteOnlyChannelMessage.new(raw_message)
    
  when ErrorNeedMoreParametersMessage::CODE
    return ErrorNeedMoreParametersMessage.new(raw_message)                    

  when ErrorNickCollisionMessage::CODE
    return ErrorNickCollisionMessage.new(raw_message)

  when ErrorNickNameInUseMessage::CODE
    return ErrorNickNameInUseMessage.new(raw_message)

  when ErrorNoNickNameGivenMessage::CODE
    return ErrorNoNickNameGivenMessage.new(raw_message)
  
  when ErrorNoOriginMessage::CODE
    return ErrorNoOriginMessage.new(raw_message)
    
  when ErrorNoSuchChannelMessage::CODE
    return ErrorNoSuchChannelMessage.new(raw_message)
  
  when ErrorNoSuchServerMessage::CODE
    return ErrorNoSuchServerMessage.new(raw_message)
    
  when ErrorNotOnChannelMessage::CODE
    return ErrorNotOnChannelMessage.new(raw_message)          
    
  when ErrorTooManyChannelsMessage::CODE
    return ErrorTooManyChannelsMessage.new(raw_message)             
    
  when ISupportMessage::CODE
    return ISupportMessage.new(raw_message)             

  when JoinMessage::CODE
    return JoinMessage.new(raw_message)
    
  when KickMessage::CODE
    return KickMessage.new(raw_message)
    
  when NickMessage::CODE
    return NickMessage.new(raw_message)

  when NoticeMessage::CODE
    return NoticeMessage.new(raw_message)

  when PartMessage::CODE
    return PartMessage.new(raw_message)
    
  when PingMessage::CODE
    return PingMessage.new(raw_message)          

  when PongMessage::CODE
    return PongMessage.new(raw_message)          

  when PrivateMessage::CODE
    return PrivateMessage.new(raw_message)
    
  when WelcomeMessage::CODE
    return WelcomeMessage.new(raw_message)
    
  end
  
  return message
  
end