Module: IRCSupport::Validations

Defined in:
lib/ircsupport/validations.rb

Constant Summary collapse

@@nickname =
/
  \A
  [A-Za-z_`\-^\|\\\{}\[\]]
  [A-Za-z_0-9`\-^\|\\\{}\[\]]*
  \z
/x
@@channel =
/[^\x00\x07\x0a\x0d :,]+/

Class Method Summary collapse

Class Method Details

.valid_channel_name?(channel, chantypes = ['#', '&']) ⇒ Boolean

Check if a string is a valid channel name.

Parameters:

  • channel (String)

    A channel name to validate.

  • chantypes (Array) (defaults to: ['#', '&'])

    The channel types which are allowed. This is the same as the “CHANTYPES” isupport option.

Returns:

  • (Boolean)

    Will be true if the channel name is valid.



28
29
30
31
32
33
# File 'lib/ircsupport/validations.rb', line 28

def valid_channel_name?(channel, chantypes = ['#', '&'])
  prefix = Regexp.quote(chantypes.join)
  return false if channel.bytesize > 200
  return true if channel =~ /\A[#{prefix}]#@@channel\z/
  return false
end

.valid_nickname?(nickname) ⇒ Boolean

Check if a string is a valid nickname.

Parameters:

  • nickname (String)

    A nickname to validate.

Returns:

  • (Boolean)

    Will be true if the nickname is valid.



18
19
20
21
# File 'lib/ircsupport/validations.rb', line 18

def valid_nickname?(nickname)
  return true if nickname =~ @@nickname
  return false
end