class TodoFilter
Public Class Methods
new(todos)
click to toggle source
# File lib/todo_filter.rb, line 4 def initialize(todos) @todos = todos.dup @todos.reject! { |todo| todo.status == :deleted } end
Public Instance Methods
execute()
click to toggle source
# File lib/todo_filter.rb, line 33 def execute TodoList.new(@todos) end
recent()
click to toggle source
# File lib/todo_filter.rb, line 25 def recent @todos.reject! do |todo| todo.status == :finished && todo.finished_at < (Time.now - 86400) end self end
with_hash(search)
click to toggle source
# File lib/todo_filter.rb, line 9 def with_hash(search) @todos.reject! { |todo| not /^#{search}/.match(todo.id) } self end
with_status(statuses)
click to toggle source
# File lib/todo_filter.rb, line 14 def with_status(statuses) result = [] statuses.each do |status| todos_with_status(status).each do |todo| result << todo end end @todos = result self end
Private Instance Methods
todos_with_status(status)
click to toggle source
# File lib/todo_filter.rb, line 39 def todos_with_status(status) @todos.reject { |todo| todo.status != status } end