Class: Posto::List
- Inherits:
-
Object
- Object
- Posto::List
- Defined in:
- lib/posto/list.rb
Class Method Summary collapse
- .add(todos, todo) ⇒ Object
- .choose_todo_lines(lines) ⇒ Object
- .do_bottom(todos) ⇒ Object
- .done(todos, n) ⇒ Object (also: delete)
- .lookup(todos, n) ⇒ Object
- .number_todos(todos) ⇒ Object
- .numbered_group(todos) ⇒ Object
- .quick(todos, n) ⇒ Object
- .resort(todos) ⇒ Object
- .sort(todos) ⇒ Object
- .starred_group(todos) ⇒ Object
- .top(todos, n) ⇒ Object (also: do)
- .unsort(todos, n) ⇒ Object
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 |