Class: Rumember::Task

Inherits:
Abstract show all
Defined in:
lib/rumember/task.rb

Instance Attribute Summary

Attributes inherited from Abstract

#parent

Instance Method Summary collapse

Methods inherited from Abstract

boolean_reader, #initialize, integer_reader, reader, time_reader

Methods included from Dispatcher

#dispatch, #lists, #locations

Constructor Details

This class inherits a constructor from Rumember::Abstract

Instance Method Details

#add_tags(tags) ⇒ Object



46
47
48
# File 'lib/rumember/task.rb', line 46

def add_tags(tags)
  transaction_dispatch('tasks.addTags', 'tags' => tags)
end

#completeObject



34
35
36
# File 'lib/rumember/task.rb', line 34

def complete
  transaction_dispatch('tasks.complete')
end

#deleteObject



30
31
32
# File 'lib/rumember/task.rb', line 30

def delete
  transaction_dispatch('tasks.delete')
end

#lower_priorityObject



58
59
60
# File 'lib/rumember/task.rb', line 58

def lower_priority
  transaction_dispatch('tasks.movePriority', 'direction' => 'down')
end

#move_to(list) ⇒ Object



62
63
64
65
66
67
68
69
70
# File 'lib/rumember/task.rb', line 62

def move_to(list)
  transaction_dispatch(
    'tasks.moveTo',
    'from_list_id' => parent.id,
    'to_list_id' => list.id
  ).tap do
    @parent = list
  end
end

#paramsObject



20
21
22
# File 'lib/rumember/task.rb', line 20

def params
  {'taskseries_id' => taskseries_id, 'task_id' => task_id}
end

#postponeObject



42
43
44
# File 'lib/rumember/task.rb', line 42

def postpone
  transaction_dispatch('tasks.postpone')
end

#raise_priorityObject



54
55
56
# File 'lib/rumember/task.rb', line 54

def raise_priority
  transaction_dispatch('tasks.movePriority', 'direction' => 'up')
end

#remove_tags(tags) ⇒ Object



50
51
52
# File 'lib/rumember/task.rb', line 50

def remove_tags(tags)
  transaction_dispatch('tasks.removeTags', 'tags' => tags)
end

#set_due_date(url) ⇒ Object Also known as: due_date=



84
85
86
# File 'lib/rumember/task.rb', line 84

def set_due_date(url)
  transaction_dispatch('tasks.setDueDate', 'url' => url)
end

#set_location(id) ⇒ Object Also known as: location=



89
90
91
92
# File 'lib/rumember/task.rb', line 89

def set_location(id)
  id = id.location_id if id.respond_to?(:location_id)
  transaction_dispatch('tasks.setLocation', id)
end

#set_tags(tags) ⇒ Object Also known as: tags=



79
80
81
# File 'lib/rumember/task.rb', line 79

def set_tags(tags)
  transaction_dispatch('tasks.setTags', 'tags' => Array(tags).join(' '))
end

#tagsObject



12
13
14
15
16
17
18
# File 'lib/rumember/task.rb', line 12

def tags
  if @attributes['tags'].empty?
    []
  else
    Array(@attributes['tags']['tag'])
  end
end

#task_idObject



8
9
10
# File 'lib/rumember/task.rb', line 8

def task_id
  Integer(@attributes['task']['id'])
end

#transaction_dispatch(*args) ⇒ Object



24
25
26
27
28
# File 'lib/rumember/task.rb', line 24

def transaction_dispatch(*args)
  super(*args) do |response|
    @attributes = response['list']['taskseries']
  end
end

#uncompleteObject



38
39
40
# File 'lib/rumember/task.rb', line 38

def uncomplete
  transaction_dispatch('tasks.uncomplete')
end