Class: TasksCollection

Inherits:
Object
  • Object
show all
Defined in:
lib/doneski/tasks_collection.rb

Constant Summary collapse

@@location =
File.expand_path '~/.task.store'

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTasksCollection

Returns a new instance of TasksCollection.



7
8
9
10
11
12
# File 'lib/doneski/tasks_collection.rb', line 7

def initialize
  create unless File.exists? @@location
  @yaml = YAML.load_file(@@location)
  @tasks = @yaml ? @yaml['tasks'] : []
  update_attributes(@tasks)
end

Class Method Details



51
52
53
# File 'lib/doneski/tasks_collection.rb', line 51

def self.display_footer
  "#{'-'*132}"
end

.display_headerObject



47
48
49
# File 'lib/doneski/tasks_collection.rb', line 47

def self.display_header
  "#{'-'*132}\n| #{'id:'.ljust(8)}#{'title:'.ljust(80)}#{'created:'.ljust(30)}#{'priority:'.ljust(10)} |\n#{'-'*132}"
end

Instance Method Details

#add(title) ⇒ Object



32
33
34
35
# File 'lib/doneski/tasks_collection.rb', line 32

def add(title)
  @tasks << Task.new({'title' => title})
  store
end

#allObject



14
15
16
# File 'lib/doneski/tasks_collection.rb', line 14

def all
  @tasks
end

#finish(id) ⇒ Object



37
38
39
40
# File 'lib/doneski/tasks_collection.rb', line 37

def finish(id)
  @tasks.select{|task| task.id.to_s == id.to_s}.first.complete
  store
end

#remove(options) ⇒ Object



22
23
24
25
# File 'lib/doneski/tasks_collection.rb', line 22

def remove(options)
  @tasks = @tasks.select{|task| !task.match(options)}
  store
end

#set_priority(id, priority) ⇒ Object



27
28
29
30
# File 'lib/doneski/tasks_collection.rb', line 27

def set_priority(id, priority)
  @tasks.select{|task| task.match({id: id})}.first.priority = priority
  store
end

#sort(column = :stage) ⇒ Object



18
19
20
# File 'lib/doneski/tasks_collection.rb', line 18

def sort(column = :stage)
  @tasks.sort {|a, b| a.send(column) <=> b.send(column)} if @tasks.length > 0
end

#start(id) ⇒ Object



42
43
44
45
# File 'lib/doneski/tasks_collection.rb', line 42

def start(id)
  @tasks.select{|task| task.id.to_s == id.to_s}.first.start
  store
end