todoist-api 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README +14 -0
  2. data/lib/todo.rb +18 -0
  3. data/lib/todoist_api.rb +39 -0
  4. metadata +66 -0
data/README ADDED
@@ -0,0 +1,14 @@
1
+ == todoist-api
2
+
3
+ A simple ruby API for the todoist http interface.
4
+
5
+ Inspired by this http://bit.ly/KJzzU article from rubybestpractices.com I created
6
+ a small API which you could use from the command line to have a fast way to
7
+ create a todo list without to be disturbed at your daily developer work.
8
+
9
+ Simply install the gem with:
10
+
11
+ sudo gem install blackhacker-todoist-api
12
+
13
+ and link the todo.rb into your path.
14
+
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'todoist_api'
4
+ require 'configuration'
5
+
6
+ include Configuration
7
+
8
+ # work in progress
9
+ # TODO:
10
+ # * get predefined props from YAML
11
+ # * externalize email and pswd
12
+ # * query mechanism
13
+ # * use som cli project
14
+
15
+ init
16
+ todoist = TodoistApi.new load
17
+ todoist.login
18
+ todoist.add_item "ARGV[0]"
@@ -0,0 +1,39 @@
1
+ require 'rubygems'
2
+ require 'httparty'
3
+
4
+ class TodoistApi
5
+ include HTTParty
6
+ base_uri "https://todoist.com/API/"
7
+ format :json
8
+
9
+ def initialize config
10
+ @options = {}
11
+ @config = config
12
+ end
13
+
14
+ def login
15
+ p "do login with user: #{@config["user"]}"
16
+ @options[:token] = self.class.get("/login?email=#{@config["user"]}&password=#{@config["pswd"]}")["api_token"]
17
+ end
18
+
19
+ def projects
20
+ self.class.get("/getProjects", build_query)
21
+ end
22
+
23
+ def items project_id
24
+ self.class.get("/getUncompletedItems", build_query(:project_id => project_id)).collect do |item|
25
+ item["content"]
26
+ end
27
+ end
28
+
29
+ def add_item content
30
+ self.class.get("/addItem?priority=1", build_query(:content => content, :project_id => @config["default_project_id"]))
31
+ end
32
+
33
+ private
34
+
35
+ def build_query options = {}
36
+ {:query => {:token => @options[:token]}.merge(options)}
37
+ end
38
+
39
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: todoist-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Thilko Richter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-09-20 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: httparty
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.4.4
24
+ version:
25
+ description:
26
+ email: thilko.richter@googlemail.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - README
35
+ - lib/todo.rb
36
+ - lib/todoist_api.rb
37
+ has_rdoc: true
38
+ homepage:
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options: []
43
+
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: "0"
51
+ version:
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ version:
58
+ requirements: []
59
+
60
+ rubyforge_project:
61
+ rubygems_version: 1.3.5
62
+ signing_key:
63
+ specification_version: 2
64
+ summary: Simple ruby interface for the Todoist http API.
65
+ test_files: []
66
+