ruby-wunderlist 0.1.pre → 0.1.rc1
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.
- data/lib/wunderlist/api.rb +91 -3
- data/lib/wunderlist/list.rb +12 -2
- data/lib/wunderlist/task.rb +1 -1
- metadata +8 -7
data/lib/wunderlist/api.rb
CHANGED
@@ -63,6 +63,10 @@ module Wunderlist
|
|
63
63
|
@lists
|
64
64
|
end
|
65
65
|
|
66
|
+
def inbox
|
67
|
+
lists.to_a.first[1]
|
68
|
+
end
|
69
|
+
|
66
70
|
def tasks(list)
|
67
71
|
list_obj = list.is_a?(Wunderlist::List) ? list : lists[list]
|
68
72
|
list = list.id if list.is_a? Wunderlist::List
|
@@ -89,6 +93,10 @@ module Wunderlist
|
|
89
93
|
result
|
90
94
|
end
|
91
95
|
|
96
|
+
def create_list(name)
|
97
|
+
Wunderlist::List.new(name, false, self).save
|
98
|
+
end
|
99
|
+
|
92
100
|
def save(obj)
|
93
101
|
if obj.is_a? Wunderlist::List
|
94
102
|
return save_list obj
|
@@ -97,7 +105,88 @@ module Wunderlist
|
|
97
105
|
end
|
98
106
|
end
|
99
107
|
|
108
|
+
def destroy(obj)
|
109
|
+
if obj.is_a? Wunderlist::List
|
110
|
+
return destroy_list obj
|
111
|
+
elsif obj.is_a? Wunderlist::Task
|
112
|
+
return destroy_task obj
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
protected
|
117
|
+
def destroy_list(obj)
|
118
|
+
json_data = { "id" => obj.id, "deleted" => 1 }
|
119
|
+
request = prepare_request(Net::HTTP::Post.new "#{@path}/ajax/lists/update")
|
120
|
+
request.set_form_data "list" => json_data.to_json
|
121
|
+
response = @http.request request
|
122
|
+
response_json = JSON.parse(response.body)
|
123
|
+
|
124
|
+
if response_json["status"] == "success"
|
125
|
+
obj.id = nil
|
126
|
+
return obj
|
127
|
+
end
|
128
|
+
|
129
|
+
false
|
130
|
+
end
|
131
|
+
|
132
|
+
def save_task(obj)
|
133
|
+
return update_task(obj) if obj.id
|
134
|
+
|
135
|
+
json_data = {"list_id" => obj.list.id, "name" => obj.name, "date" => 0}
|
136
|
+
json_data["date"] = obj.date.to_time.to_i if obj.date
|
137
|
+
|
138
|
+
request = prepare_request(Net::HTTP::Post.new "#{@path}/ajax/tasks/insert")
|
139
|
+
request.set_form_data "task" => json_data.to_json
|
140
|
+
response = @http.request request
|
141
|
+
response_json = JSON.parse(response.body)
|
142
|
+
|
143
|
+
if response_json["status"] == "success"
|
144
|
+
obj.id = response_json["id"]
|
145
|
+
obj.list.tasks << obj
|
146
|
+
return obj
|
147
|
+
end
|
148
|
+
|
149
|
+
nil
|
150
|
+
end
|
151
|
+
|
152
|
+
def update_task(obj)
|
153
|
+
json_data = {}
|
154
|
+
json_data["id"] = obj.id
|
155
|
+
json_data["important"] = obj.important ? 1 : 0
|
156
|
+
json_data["done"] = obj.done ? 1 : 0
|
157
|
+
json_data["name"] = obj.name
|
158
|
+
json_data["date"] = obj.date ? obj.date.to_time.to_i.to_s : "0"
|
159
|
+
|
160
|
+
request = prepare_request(Net::HTTP::Post.new "#{@path}/ajax/tasks/update")
|
161
|
+
request.set_form_data "task" => json_data.to_json
|
162
|
+
response = @http.request request
|
163
|
+
response_json = JSON.parse response.body
|
164
|
+
|
165
|
+
if response_json["status"] == "success"
|
166
|
+
return obj
|
167
|
+
end
|
168
|
+
|
169
|
+
nil
|
170
|
+
end
|
171
|
+
|
100
172
|
def save_list(obj)
|
173
|
+
return update_list(obj) if obj.id
|
174
|
+
|
175
|
+
json_data = {"name" => obj.name}
|
176
|
+
request = prepare_request(Net::HTTP::Post.new "#{@path}/ajax/lists/insert")
|
177
|
+
request.set_form_data "list" => json_data.to_json
|
178
|
+
response = @http.request request
|
179
|
+
response_json = JSON.parse(response.body)
|
180
|
+
|
181
|
+
if response_json["status"] == "success"
|
182
|
+
obj.id = response_json["id"]
|
183
|
+
return obj
|
184
|
+
end
|
185
|
+
|
186
|
+
nil
|
187
|
+
end
|
188
|
+
|
189
|
+
def update_list(obj)
|
101
190
|
json_data = {}
|
102
191
|
json_data["id"] = obj.id
|
103
192
|
json_data["name"] = obj.name
|
@@ -107,13 +196,12 @@ module Wunderlist
|
|
107
196
|
response = @http.request request
|
108
197
|
|
109
198
|
if JSON.parse(response.body)["status"] == "success"
|
110
|
-
return
|
199
|
+
return obj
|
111
200
|
end
|
112
201
|
|
113
|
-
|
202
|
+
nil
|
114
203
|
end
|
115
204
|
|
116
|
-
protected
|
117
205
|
def get_session
|
118
206
|
res = @http.request_get("#{@path}/account")
|
119
207
|
@session = res["Set-Cookie"].match(/WLSESSID=([0-9a-zA-Z]+)/)[1]
|
data/lib/wunderlist/list.rb
CHANGED
@@ -25,9 +25,10 @@ module Wunderlist
|
|
25
25
|
class List
|
26
26
|
attr_accessor :id, :name, :inbox, :shared, :api
|
27
27
|
|
28
|
-
def initialize(name = nil, inbox = nil)
|
28
|
+
def initialize(name = nil, inbox = nil, api = nil)
|
29
29
|
@name = name
|
30
30
|
@inbox = inbox
|
31
|
+
@api = api
|
31
32
|
end
|
32
33
|
|
33
34
|
def tasks
|
@@ -35,9 +36,18 @@ module Wunderlist
|
|
35
36
|
@tasks
|
36
37
|
end
|
37
38
|
|
39
|
+
def create_task(name, date = nil)
|
40
|
+
Wunderlist::Task.new(name, date, self, @api).save
|
41
|
+
end
|
42
|
+
|
38
43
|
def save(api = nil)
|
39
44
|
@api ||= api
|
40
|
-
@api.
|
45
|
+
@api.save(self)
|
46
|
+
end
|
47
|
+
|
48
|
+
def destroy(api = nil)
|
49
|
+
@api ||= api
|
50
|
+
@api.destroy(self)
|
41
51
|
end
|
42
52
|
|
43
53
|
def flush
|
data/lib/wunderlist/task.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-wunderlist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.rc1
|
5
5
|
prerelease: 4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &76874980 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *76874980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
requirement: &
|
27
|
+
requirement: &76874630 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *76874630
|
36
36
|
description:
|
37
37
|
email: fritz+wunderlist@grimpen.net
|
38
38
|
executables: []
|
@@ -43,8 +43,9 @@ files:
|
|
43
43
|
- lib/wunderlist/task.rb
|
44
44
|
- lib/wunderlist/api.rb
|
45
45
|
- lib/wunderlist.rb
|
46
|
-
homepage:
|
47
|
-
licenses:
|
46
|
+
homepage: http://grimpen.net/wunderlist
|
47
|
+
licenses:
|
48
|
+
- MIT
|
48
49
|
post_install_message:
|
49
50
|
rdoc_options: []
|
50
51
|
require_paths:
|