Class: Vetinari::ISupport

Inherits:
Hash
  • Object
show all
Defined in:
lib/vetinari/isupport.rb

Instance Method Summary collapse

Constructor Details

#initializeISupport

Returns a new instance of ISupport.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/vetinari/isupport.rb', line 3

def initialize
  super

  # Defaults:
  self['CASEMAPPING'] = 'rfc1459'
  self['CHANLIMIT'] = {}
  self['CHANMODES'] = {
    'A' => ['b'],
    'B' => ['k'],
    'C' => ['l'],
    'D' => %w(i m n p s t r)
  }
  self['CHANNELLEN'] = 200
  self['CHANTYPES'] = ['#', '&']
  self['EXCEPTS'] = false
  self['IDCHAN'] = {}
  self['INVEX'] = false
  self['KICKLEN'] = Float::INFINITY
  self['MAXLIST'] = {}
  self['MODES'] = 3
  self['NETWORK'] = ''
  self['NICKLEN'] = Float::INFINITY
  self['PREFIX'] = {'o' => '@', 'v' => '+'}
  self['SAFELIST'] = false
  self['STATUSMSG'] = false
  self['STD'] = false
  self['TARGMAX'] = {}
  self['TOPICLEN'] = Float::INFINITY
end

Instance Method Details

#parse(message) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/vetinari/isupport.rb', line 33

def parse(message)
  patterns = message.split(' ')
  patterns.delete_at(0)
  patterns.each do |pattern|
    return self if pattern.start_with?(':')
    key = pattern.scan(/\w+/).first
    method_name = "set_#{key.downcase}"
    begin
      if respond_to?(method_name, true)
        send method_name, pattern
      else
        set_different key, pattern
      end
    rescue
    end
  end
end