Class: Posto::List

Inherits:
Object
  • Object
show all
Defined in:
lib/posto/list.rb

Class Method Summary collapse

Class Method Details

.add(todos, todo) ⇒ Object



41
42
43
# File 'lib/posto/list.rb', line 41

def add(todos, todo)
  todos + [Todo.create(todo)]
end

.choose_todo_lines(lines) ⇒ Object



12
13
14
# File 'lib/posto/list.rb', line 12

def choose_todo_lines(lines)
  lines.select { |todo| Todo.todo?(todo) }
end

.do_bottom(todos) ⇒ Object



58
59
60
# File 'lib/posto/list.rb', line 58

def do_bottom(todos)
  top(todos, todos.size)
end

.done(todos, n) ⇒ Object Also known as: delete



28
29
30
# File 'lib/posto/list.rb', line 28

def done(todos, n)
  unsort(todos, n)[0..-2]
end

.lookup(todos, n) ⇒ Object



62
63
64
# File 'lib/posto/list.rb', line 62

def lookup(todos, n)
  Posto::Todo.hide_markdown(todos[n.to_i - 1])
end

.number_todos(todos) ⇒ Object



8
9
10
# File 'lib/posto/list.rb', line 8

def number_todos(todos)
  todos.each_with_index.map { |todo, i| Posto::Todo.number(todo, i + 1) }
end

.numbered_group(todos) ⇒ Object



24
25
26
# File 'lib/posto/list.rb', line 24

def numbered_group(todos)
  sort todos.select { |todo| Todo.numbered?(todo) }
end

.quick(todos, n) ⇒ Object



45
46
47
48
# File 'lib/posto/list.rb', line 45

def quick(todos, n)
  todos[n -1] = Todo.mark_quick(todos[n - 1])
  todos
end

.resort(todos) ⇒ Object



37
38
39
# File 'lib/posto/list.rb', line 37

def resort(todos)
  sort todos.map { |todo| Todo.star(todo) }
end

.sort(todos) ⇒ Object



16
17
18
# File 'lib/posto/list.rb', line 16

def sort(todos)
  number_todos(todos.sort { |x, y| Todo.compare_sorted_todos(x, y) or HumanComparison.ask_human(x, y) })
end

.starred_group(todos) ⇒ Object



20
21
22
# File 'lib/posto/list.rb', line 20

def starred_group(todos)
  todos.select { |todo| Todo.starred?(todo) }
end

.top(todos, n) ⇒ Object Also known as: do



50
51
52
53
54
55
# File 'lib/posto/list.rb', line 50

def top(todos, n)
  starred_group = starred_group(todos.reject_at(n - 1))
  numbered_group = numbered_group(todos.reject_at(n - 1))
  array = [todos[n - 1]]
  number_todos(array + numbered_group) + starred_group
end

.unsort(todos, n) ⇒ Object



33
34
35
# File 'lib/posto/list.rb', line 33

def unsort(todos, n)
  numbered_group(todos.reject_at(n - 1)) + starred_group(todos.reject_at(n - 1)) + [Todo.star(todos[n - 1])]
end