class Ruboty::Handlers::FlexibleAlias
Constants
- NAMESPACE
Public Instance Methods
create(message)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 39 def create(message) from = message[:original] to = message[:alias] register('*', from, to) message.reply("Registered alias: #{from} -> #{to}") end
create_scoped(message)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 46 def create_scoped(message) scope = message.from from = message[:original] to = message[:alias] register(scope, from, to) message.reply("Registered alias: #{from} -> #{to}") end
delete(message)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 54 def delete(message) scope = message.from if (table[scope] || {}).delete(message[:alias]) message.reply('Deleted') else if (table['*'] || {}).delete(message[:alias]) message.reply('Deleted') else message.reply('Not found') end end end
list(message)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 67 def list(message) message.reply(aliases(message.from), code: true) end
resolve(message)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 71 def resolve(message) scope = message.from scoped = table[scope] || {} all = table['*'] || {} from = message.body.gsub(prefix, '') hit = false all.merge(scoped).each_pair do |pattern, transformed| alias_cmd = Ruboty::FlexibleAlias::Alias.new(pattern, transformed) next unless aliased = alias_cmd.tranfrom(from) robot.receive( message.original.merge( body: "#{message.body[prefix]}#{aliased}" ) ) hit = true break end hit end
Private Instance Methods
aliases(scope)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 105 def aliases(scope) scoped = table[scope] || {} all = table['*'] || {} flexible_table = all.merge(scoped) if flexible_table.empty? 'No alias registered' else flexible_table.map { |from, to| "#{from} -> #{to}" }.join("\n") end end
prefix()
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 116 def prefix Ruboty::Action.prefix_pattern(robot.name) end
register(scope, original, transformed)
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 96 def register(scope, original, transformed) table[scope] ||= {} table[scope][original] = transformed end
table()
click to toggle source
# File lib/ruboty/handlers/flexible_alias.rb, line 101 def table robot.brain.data[NAMESPACE] ||= {} end