Module: IIRC::Sender

Defined in:
lib/iirc/sender.rb

Overview

A mixin which adds IRC hostmask introspection methods to strings.

CoolNick, :NickName, :nick!user@host, :server.name, another.server.name forms are supported.

A leading colon may be present in the string, and will be ignored.

Examples:

sender = "[email protected]".extend(IIRC::Sender)
sender.user? # => true
sender.host  # => "example.com"

:irc.server

sender = ":irc.server".extend(IIRC::Sender)
sender.server? # => true
sender.host    # => "irc.server"

JimBob

sender = "JimBob".extend(IIRC::Sender)
sender.user? # => true
sender.nick  # => "JimBob"

Instance Method Summary collapse

Instance Method Details

#hostObject



36
# File 'lib/iirc/sender.rb', line 36

def host; user ? user.host : without_leading_colon end

#nickObject



34
# File 'lib/iirc/sender.rb', line 34

def nick; user ? user.nick : without_leading_colon end

#server?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/iirc/sender.rb', line 26

def server?
  user.nil?
end

#to_prefixObject Also known as: inspect



38
39
40
# File 'lib/iirc/sender.rb', line 38

def to_prefix
  ":#{self}"
end

#userObject



22
23
24
# File 'lib/iirc/sender.rb', line 22

def user
  @user ||= User.from_source(self)
end

#user?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/iirc/sender.rb', line 30

def user?
  not user.nil?
end

#usernameObject



35
# File 'lib/iirc/sender.rb', line 35

def username; user&.username end

#without_leading_colonObject Also known as: to_s



42
43
44
# File 'lib/iirc/sender.rb', line 42

def without_leading_colon
  delete_prefix(':')
end