todoist-ruby 0.1.1 → 0.1.2

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: eae81f26048e5304824cb26dbb794166ecffcb90
4
- data.tar.gz: 9a3c4c2bdd624e0c5f9c1b387a7014b4b1138ac1
3
+ metadata.gz: d36fbf13110d44679219837d5b8e7fa0b9f0f079
4
+ data.tar.gz: 7b6ed748aaadf0b41a5387ce597201eb5c1187fd
5
5
  SHA512:
6
- metadata.gz: f3fd6042062b81c40304c84608acd333c17309e7a2cac47d09203741147a5d8037a66209b40a583915d83826bfe44baeb2061ea8de11736d051018048a9dcc91
7
- data.tar.gz: 6ab12386bcaff94b62512deca61d10088482bb8317987d29f83f4a97ca0877c71539ab17caf74233410712596fad8e5ea86b6b2e36d88be437a5b9c24daf13af
6
+ metadata.gz: 12ddbea8f9a2663df0322e42bf804799b8fec78b0914f7171b3cb0e99c884d91793e9f5579ca2de8140c83fa0e87574cc8e2740cf451db47445ff4069dec0b27
7
+ data.tar.gz: 8d26cf0c27ad96dc3195d07ef04dbde27330903f729098253b823f27cf55317a1da5c744701096866875d8c23e4002605c2a3e0d67a53f80899474dd20fdc166
data/README.md CHANGED
@@ -190,6 +190,11 @@ rake spec:clean["misc_items"]
190
190
 
191
191
  Once tests pass cleanly, subsquent runs that do not change the network requests run quickly since no network calls are made and in fact ```rake``` can be run with no issues.
192
192
 
193
+ ## Version History
194
+
195
+ * 0.1.2: Renamed method ```Todoist::Util::ParseHelper.make_objects_as_array``` to ```Todoist::Util::ParseHelper.make_objects_as_hash``` to reflect the fact that it was actually returning hashes. Added the aforementioned deleted method to return arrays and finally altered ```Todoist::Misc::Completed``` to return objects as arrays instead of hashes due to the fact that recurring completed items were being de-duped unintentionally and data was being lost as a result.
196
+ * 0.1.1: Initial release.
197
+
193
198
  ## Contributing
194
199
 
195
200
  Bug reports and pull requests are welcome on GitHub at https://github.com/h6y3/todoist-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
@@ -44,7 +44,7 @@ module Todoist
44
44
  end
45
45
 
46
46
  result = NetworkHelper.getResponse(Config::TODOIST_ACTIVITY_GET_COMMAND, params)
47
- ParseHelper.make_objects_as_array(result)
47
+ ParseHelper.make_objects_as_hash(result)
48
48
  end
49
49
  end
50
50
  end
@@ -6,7 +6,7 @@ module Todoist
6
6
  # Returns the backups for a user.
7
7
  def get()
8
8
  result = NetworkHelper.getResponse(Config::TODOIST_BACKUPS_GET_COMMAND, {})
9
- ParseHelper.make_objects_as_array(result)
9
+ ParseHelper.make_objects_as_hash(result)
10
10
  end
11
11
  end
12
12
  end
@@ -46,7 +46,7 @@ module Todoist
46
46
  result = NetworkHelper.getResponse(Config::TODOIST_ITEMS_GET_COMMAND, params)
47
47
  item = ParseHelper.make_object(result["item"])
48
48
  project = ParseHelper.make_object(result["project"])
49
- notes = result["notes"] ? ParseHelper.make_objects_as_array(result["notes"]) : nil
49
+ notes = result["notes"] ? ParseHelper.make_objects_as_hash(result["notes"]) : nil
50
50
  return {"item" => item, "project" => project, "notes" => notes}
51
51
  end
52
52
 
@@ -6,7 +6,7 @@ module Todoist
6
6
  # Get archived projects. Returns projects as documented here.
7
7
  def get_archived_projects()
8
8
  result = NetworkHelper.getResponse(Config::TODOIST_PROJECTS_GET_ARCHIVED_COMMAND)
9
- return ParseHelper.make_objects_as_array(result)
9
+ return ParseHelper.make_objects_as_hash(result)
10
10
  end
11
11
 
12
12
  # Gets project information including all notes.
@@ -15,7 +15,7 @@ module Todoist
15
15
  result = NetworkHelper.getResponse(Config::TODOIST_PROJECTS_GET_COMMAND, {project_id: project.id, all_data: true})
16
16
 
17
17
  project = result["project"] ? ParseHelper.make_object(result["project"]) : nil
18
- notes = result["notes"] ? ParseHelper.make_objects_as_array(result["notes"]) : nil
18
+ notes = result["notes"] ? ParseHelper.make_objects_as_hash(result["notes"]) : nil
19
19
  return {"project" => project, "notes" => notes}
20
20
  end
21
21
 
@@ -23,7 +23,7 @@ module Todoist
23
23
  def get_project_data(project)
24
24
  result = NetworkHelper.getResponse(Config::TODOIST_PROJECTS_GET_DATA_COMMAND, {project_id: project.id})
25
25
  project = result["project"] ? ParseHelper.make_object(result["project"]) : nil
26
- items = result["items"] ? ParseHelper.make_objects_as_array(result["items"]) : nil
26
+ items = result["items"] ? ParseHelper.make_objects_as_hash(result["items"]) : nil
27
27
  return {"project" => project, "items" => items}
28
28
  end
29
29
  end
@@ -14,7 +14,7 @@ module Todoist
14
14
  def queries(queries)
15
15
  result = NetworkHelper.getResponse(Config::TODOIST_QUERY_COMMAND,
16
16
  queries: queries.to_json)
17
- return ParseHelper.make_objects_as_array(result, "query")
17
+ return ParseHelper.make_objects_as_hash(result, "query")
18
18
  end
19
19
 
20
20
  # Given a query, return result. See return structure in comments above.
@@ -32,23 +32,42 @@ module Todoist
32
32
  datetime.strftime("%Y-%m-%dT%H:%M")
33
33
  end
34
34
 
35
- def self.make_objects_as_array(objects_as_hashes, key = "id")
36
- objects = {}
35
+ def self.make_objects_as_array(object_datas, key = "id")
36
+ objects_as_array = []
37
37
 
38
- objects_as_hashes.each do |object_data|
38
+ object_datas.each do |object_data|
39
39
  begin
40
40
  object = make_object(object_data)
41
- objects[object.send(key)] = object
41
+ objects_as_array << object
42
42
  rescue
43
43
  # Occasionally the API returns arrays of arrays of hashes
44
44
  if object_data.kind_of? Array
45
45
 
46
46
  object = make_object(object_data[1])
47
- objects[object.send(key)] = object
47
+ objects_as_array << object
48
48
  end
49
49
  end
50
50
  end
51
- return objects
51
+ return objects_as_array
52
+ end
53
+
54
+ def self.make_objects_as_hash(object_datas, key = "id")
55
+ objects_as_hash = {}
56
+
57
+ object_datas.each do |object_data|
58
+ begin
59
+ object = make_object(object_data)
60
+ objects_as_hash[object.send(key)] = object
61
+ rescue
62
+ # Occasionally the API returns arrays of arrays of hashes
63
+ if object_data.kind_of? Array
64
+
65
+ object = make_object(object_data[1])
66
+ objects_as_hash[object.send(key)] = object
67
+ end
68
+ end
69
+ end
70
+ return objects_as_hash
52
71
  end
53
72
 
54
73
  def self.make_object(object_as_hash)
@@ -1,3 +1,3 @@
1
1
  module Todoist
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: todoist-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Han Yuan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-19 00:00:00.000000000 Z
11
+ date: 2017-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -224,4 +224,3 @@ signing_key:
224
224
  specification_version: 4
225
225
  summary: This gem provides access to the latest Todoist API.
226
226
  test_files: []
227
- has_rdoc: