Class: Cakewalk::Ban

Inherits:
Object
  • Object
show all
Defined in:
lib/cakewalk/ban.rb

Overview

This class represents channel bans.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mask, by, at) ⇒ Ban

Returns a new instance of Ban.

Parameters:

  • mask (String, Mask)

    The mask

  • by (User, nil)

    The user who created the ban.

  • at (Time)

    The time at which the ban was created



25
26
27
28
29
30
31
32
33
34
# File 'lib/cakewalk/ban.rb', line 25

def initialize(mask, by, at)
  @by, @created_at = by, at
  if mask =~ /^[\$~]/
    @extended = true
    @mask     = mask
  else
    @extended = false
    @mask = Mask.from(mask)
  end
end

Instance Attribute Details

#byUser? (readonly)

The user who created the ban. Might be nil on networks that do not strictly follow the RFCs, for example IRCnet in some(?) cases.

Returns:

  • (User, nil)

    The user who created the ban



14
15
16
# File 'lib/cakewalk/ban.rb', line 14

def by
  @by
end

#created_atTime (readonly)

Returns:

  • (Time)


17
18
19
# File 'lib/cakewalk/ban.rb', line 17

def created_at
  @created_at
end

#extendedBoolean (readonly)

Returns whether this is an extended ban (as used by for example Freenode).

Returns:

  • (Boolean)

    whether this is an extended ban (as used by for example Freenode)



20
21
22
# File 'lib/cakewalk/ban.rb', line 20

def extended
  @extended
end

#maskMask, String (readonly)

Returns:



7
8
9
# File 'lib/cakewalk/ban.rb', line 7

def mask
  @mask
end

Instance Method Details

#match(user) ⇒ Boolean Also known as: =~

Returns true if the ban matches user.

Returns:

  • (Boolean)

    true if the ban matches user

Raises:



39
40
41
42
# File 'lib/cakewalk/ban.rb', line 39

def match(user)
  raise UnsupportedFeature, "extended bans are not supported yet" if @extended
  @mask =~ user
end

#to_sString

Returns:



46
47
48
# File 'lib/cakewalk/ban.rb', line 46

def to_s
  @mask.to_s
end