goot 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95fc310ede4c25016158e742ae5f50b8e6940ae0
4
- data.tar.gz: 7a52e44e7f319776e0377d21c8cdd8b88cde3544
3
+ metadata.gz: 624fa57fb1f3eb82e6b225bf187090839b168741
4
+ data.tar.gz: 33998e10ddadbb42a7a143b4424f2961f0516d0a
5
5
  SHA512:
6
- metadata.gz: e78530e764eed2d0db52c54a0215de4b7b17fd02b1f2d96573887a8e20fa75a843d514b872df368bb97b9ccefbc4ab4068ec734815863e0a88f296e9a4d660b6
7
- data.tar.gz: 3ec71020734ddae8cad10f7197623b47ed3912188f858a1ac1df4d07f780c3fa68d891548e03fb0c2b87c8295f3a206809efa7cf9ae119b5df3969292d70b311
6
+ metadata.gz: ee3b00654d6241c27d1edc2331f9defdf1518feab1c0d39aa25ea87c7c6b666213d0dc29d5f58953b3a17eeda85ae6e4df12e6f8742d61539c4ef00649a16d9d
7
+ data.tar.gz: bf11b0e243e3cdc1bdaa17d94e80a289f47671e065bf86d9dda669a385a59fd081fc1d9b0a394a27e4c87575e289ce149420a2bf083921f2768f04d75f286538
data/README.md CHANGED
@@ -14,12 +14,12 @@ A command-line interface to Google Tasks das ist goot.
14
14
 
15
15
  # Lists tasks in a given list (0 by default)
16
16
  goot list
17
- goot l -l 1
17
+ goot l
18
18
 
19
19
  # Toggle a task by index
20
20
  goot toggle 3
21
- goot t 3 -l 1
21
+ goot t 3
22
22
 
23
23
  # Clear completed tasks
24
24
  goot clear
25
- goot c -l 1
25
+ goot c
@@ -7,7 +7,6 @@ class GoogleTasks::CLI < Thor
7
7
  end
8
8
 
9
9
  desc "list", "Displays available tasks for a given tasklist"
10
- method_option :aliases => "l"
11
10
  method_option :tasklist, :aliases => "-l", :type => :numeric, :default => 0
12
11
  def list
13
12
  tab = ' '
@@ -32,7 +31,6 @@ class GoogleTasks::CLI < Thor
32
31
  end
33
32
 
34
33
  desc "summary", "Displays all task lists and their task counts"
35
- method_option :aliases => "s"
36
34
  def summary
37
35
  @api.get_lists.each.with_index do |tasklist, i|
38
36
  tasks = @api.get_tasks(tasklist)
@@ -40,8 +38,7 @@ class GoogleTasks::CLI < Thor
40
38
  end
41
39
  end
42
40
 
43
- desc "toggle", "Toggles a given task"
44
- method_option :aliases => "t"
41
+ desc "toggle INDEX", "Toggles a given task"
45
42
  method_option :tasklist, :aliases => "-l", :type => :numeric, :default => 0
46
43
  def toggle(index)
47
44
  tasklist = @api.get_tasklist(options[:tasklist])
@@ -67,7 +64,6 @@ class GoogleTasks::CLI < Thor
67
64
  end
68
65
 
69
66
  desc "clear", "Clears completed tasks"
70
- method_option :aliases => "c"
71
67
  method_option :tasklist, :aliases => "-l", :type => :numeric, :default => 0
72
68
  def clear
73
69
  tasklist = @api.get_tasklist(options[:tasklist])
@@ -75,4 +71,64 @@ class GoogleTasks::CLI < Thor
75
71
 
76
72
  invoke :list, [], :tasklist => options[:tasklist]
77
73
  end
74
+
75
+ desc "delete INDEX", "Deletes a given task"
76
+ method_option :tasklist, :aliases => "-l", :type => :numeric, :default => 0
77
+ def delete(index)
78
+ tasklist = @api.get_tasklist(options[:tasklist])
79
+ tasks = @api.get_tasks(tasklist).map(&:to_hash)
80
+
81
+ @api.delete_task(tasklist, tasks[index.to_i])
82
+
83
+ invoke :list, [], :tasklist => options[:tasklist]
84
+ end
85
+
86
+ desc "move INDEX", "Moves a given task"
87
+ method_option :after, :aliases => "-a", :type => :numeric
88
+ method_option :parent, :aliases => "-p", :type => :numeric
89
+ method_option :tasklist, :aliases => "-l", :type => :numeric, :default => 0
90
+ def move(index)
91
+ tasklist = @api.get_tasklist(options[:tasklist])
92
+ tasks = @api.get_tasks(tasklist).map(&:to_hash)
93
+
94
+ previous = tasks[options[:after].to_i] if !options[:after].nil?
95
+ parent = tasks[options[:parent].to_i] if !options[:parent].nil?
96
+
97
+ @api.move_task(tasklist, tasks[index.to_i], previous, parent)
98
+
99
+ invoke :list, [], :tasklist => options[:tasklist]
100
+ end
101
+
102
+ desc "add NAME", "Adds a task"
103
+ method_option :after, :aliases => "-a", :type => :numeric
104
+ method_option :parent, :aliases => "-p", :type => :numeric
105
+ method_option :tasklist, :aliases => "-l", :type => :numeric, :default => 0
106
+ def add(name)
107
+ tasklist = @api.get_tasklist(options[:tasklist])
108
+ tasks = @api.get_tasks(tasklist).map(&:to_hash)
109
+ task = { :title => name }
110
+
111
+ previous = tasks[options[:after].to_i] if !options[:after].nil?
112
+ parent = tasks[options[:parent].to_i] if !options[:parent].nil?
113
+
114
+ @api.insert_task(tasklist, task, previous, parent)
115
+
116
+ invoke :list, [], :tasklist => options[:tasklist]
117
+ end
118
+
119
+ desc "listadd NAME", "Adds a new tasklist"
120
+ def listadd(name)
121
+ tasklist = {:title => name}
122
+ @api.insert_tasklist(tasklist)
123
+
124
+ invoke :summary, []
125
+ end
126
+
127
+ desc "listdelete INDEX", "Deletes a tasklist"
128
+ def listdelete(index)
129
+ @api.delete_tasklist(@api.get_lists[index.to_i])
130
+
131
+ invoke :summary, []
132
+ end
133
+
78
134
  end
@@ -49,6 +49,22 @@ class GoogleTasks::GoogleAPI
49
49
  ).data
50
50
  end
51
51
 
52
+ def insert_tasklist(tasklist)
53
+ @client.execute(
54
+ :api_method => @api.tasklists.insert,
55
+ :body_object => tasklist
56
+ )
57
+ end
58
+
59
+ def delete_tasklist(tasklist)
60
+ @client.execute(
61
+ :api_method => @api.tasklists.delete,
62
+ :parameters => {
63
+ :tasklist => tasklist.id
64
+ }
65
+ )
66
+ end
67
+
52
68
  def get_tasks(tasklist)
53
69
  @client.execute(
54
70
  :api_method => @api.tasks.list,
@@ -78,4 +94,40 @@ class GoogleTasks::GoogleAPI
78
94
  )
79
95
  end
80
96
 
97
+ def insert_task(tasklist, task, previous, parent)
98
+ parameters = { :tasklist => tasklist.id }
99
+ parameters[:previous] = previous['id'] if !previous.nil?
100
+ parameters[:parent] = parent['id'] if !parent.nil?
101
+
102
+ @client.execute(
103
+ :api_method => @api.tasks.insert,
104
+ :parameters => parameters,
105
+ :body_object => task
106
+ )
107
+ end
108
+
109
+ def delete_task(tasklist, task)
110
+ @client.execute(
111
+ :api_method => @api.tasks.delete,
112
+ :parameters => {
113
+ :tasklist => tasklist.id,
114
+ :task => task['id']
115
+ }
116
+ )
117
+ end
118
+
119
+ def move_task(tasklist, task, previous, parent)
120
+ parameters = {
121
+ :tasklist => tasklist.id,
122
+ :task => task['id']
123
+ }
124
+ parameters[:previous] = previous['id'] if !previous.nil?
125
+ parameters[:parent] = parent['id'] if !parent.nil?
126
+
127
+ @client.execute(
128
+ :api_method => @api.tasks.move,
129
+ :parameters => parameters
130
+ )
131
+ end
132
+
81
133
  end
@@ -1,6 +1,6 @@
1
1
  module GoogleTasks
2
2
  APP_NAME = 'goot'
3
- VERSION = '0.0.11'
3
+ VERSION = '0.0.12'
4
4
 
5
5
  GEM_ROOT = File.expand_path('../../..', __FILE__)
6
6
  CONFIG_DIR = File.join(ENV['HOME'], '.goot')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conner McDaniel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-22 00:00:00.000000000 Z
11
+ date: 2014-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor