class Ruboty::Handlers::ScopedAlias

Constants

NAMESPACE

Public Instance Methods

create(message) click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 31
def create(message)
  scope = message.from
  from = message[:original]
  to = message[:alias]
  table[scope] ||= {}
  table[scope][from] = to
  message.reply("Registered alias: #{from} -> #{to}")
end
delete(message) click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 40
def delete(message)
  scope = message.from
  table[scope] ||= {}
  if table[scope].delete(message[:alias])
    message.reply("Deleted")
  else
    message.reply("Not found")
  end
end
list(message) click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 50
def list(message)
  message.reply(aliases(message.from), code: true)
end
resolve(message) click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 54
def resolve(message)
  scope = message.from
  table[scope] ||= {}
  from = message.body.gsub(prefix, "")
  if aliased = table[scope][from]
    robot.receive(
      message.original.merge(
        body: "#{message.body[prefix]}#{aliased}"
      )
    )
    true
  else
    false
  end
end

Private Instance Methods

aliases(scope) click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 76
def aliases(scope)
  scoped_table = table[scope] || {}
  if scoped_table.empty?
    "No alias registered"
  else
    scoped_table.map {|from, to| "#{from} -> #{to}" }.join("\n")
  end
end
prefix() click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 85
def prefix
  Ruboty::Action.prefix_pattern(robot.name)
end
table() click to toggle source
# File lib/ruboty/handlers/scoped_alias.rb, line 72
def table
  robot.brain.data[NAMESPACE] ||= {}
end