class Ruboty::Handlers::Rotation

Constants

NAMESPACE

Attributes

items[W]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/ruboty/handlers/rotation.rb, line 18
def initialize(*args)
  super
  set_current
end

Public Instance Methods

add_item(message) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 23
def add_item(message)
  item = message[:item]

  if items.include?(item)
    message.reply("Item #{item} already exist")
  else
    items << item
    message.reply("Item #{item} added")
  end
end
current(message) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 69
def current(message)
  message.reply([
      ENV['ROTATION_CURRENT_PREFIX'],
      current_item,
      ENV['ROTATION_CURRENT_SUFFIX']
    ].compact.join(""))
end
delete_item(message) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 34
def delete_item(message)
  item = message[:item]

  if items.include?(item)
    items.delete(item)
    message.reply("Item #{item} deleted")
  else
    message.reply("Item #{item} does not exist")
  end
end
list_items(message) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 45
def list_items(message)
  message.reply(items.join(","), code: true)
end
move_to_next(message) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 49
def move_to_next(message)
  index = current_index + 1

  if index >= items.size
    set_index(0)
  else
    set_index(index)
  end
end
move_to_prev(message) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 59
def move_to_prev(message)
  index = current_index - 1

  if index < 0
    set_index(items.size - 1)
  else
    set_index(index)
  end
end

Private Instance Methods

current_index() click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 83
def current_index
  robot.brain.data[NAMESPACE][:current_index]
end
current_item() click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 79
def current_item
  items[current_index]
end
items() click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 96
def items
  setup_brain
  robot.brain.data[NAMESPACE][:items] ||= []
end
set_current() click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 91
def set_current
  setup_brain
  robot.brain.data[NAMESPACE][:current_index] ||= 0
end
set_index(index) click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 87
def set_index(index)
  robot.brain.data[NAMESPACE][:current_index] = index
end
setup_brain() click to toggle source
# File lib/ruboty/handlers/rotation.rb, line 101
def setup_brain
  robot.brain.data[NAMESPACE] ||= {}
end