class TodoLists::ItemsController

Constants

Item

Attributes

last_input[RW]
list[RW]

Public Instance Methods

delete() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 36
def delete
  item_index = last_input.split(' ')[1]
  item = Item.find_by_index_and_list_id(index: item_index, list_id: list.id)
  if item
    print 'Are you sure? Enter \'y/n\': '
    get_input

    if last_input.downcase == 'y'
      item.destroy
    end

  end
end
done() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 16
def done
  item_index = last_input.split(' ')[1]
  item = Item.find_by_index_and_list_id(index: item_index, list_id: list.id)
  if item
    item.done = true
    item.save
  end
end
edit() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 25
def edit
  item_index = last_input.split(' ')[1]
  item = Item.find_by_index_and_list_id(index: item_index, list_id: list.id)
  if item
    print 'Enter new content: '
    get_input
    item.content = last_input
    item.save
  end
end
get_input() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 70
def get_input
  @last_input = gets.strip
end
help() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 7
def help
  puts "\nOptions available"
  puts '/edit {item_id}'
  puts '/delete {item_id}'
  puts '/done {item_id} (mark item complete)'
  puts '/exit'
  puts
end
index() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 50
def index
  if list.items.count == 0
    puts "\nYou have no items in '#{@list.title.capitalize}'."
  else
    puts "\n---------------#{list.title.capitalize}---------------"
    puts '#   item'
    puts '--   -----'
    list.items.reload.each.with_index(1) do |item, index|
      puts "#{index}: #{item.content.capitalize} [#{'X' if item.done?}]"
    end
  end
end
new() click to toggle source
# File lib/todo_lists/controllers/items_controller.rb, line 63
def new

  item = Item.new(list: list, content: last_input)

  item.save
end