producteev 1.0.2 → 1.1.1
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/Rakefile +6 -0
- data/lib/producteev/activities.rb +16 -16
- data/lib/producteev/api.rb +45 -45
- data/lib/producteev/client.rb +5 -5
- data/lib/producteev/dashboards.rb +68 -68
- data/lib/producteev/labels.rb +22 -22
- data/lib/producteev/tasks.rb +108 -108
- data/lib/producteev/version.rb +3 -3
- data/lib/producteev.rb +2 -3
- data/spec/api_spec.rb +29 -0
- data/spec/spec_helper.rb +12 -0
- metadata +25 -14
- data/Gemfile +0 -5
- data/Gemfile.lock +0 -16
- data/producteev.gemspec +0 -20
data/Rakefile
ADDED
@@ -1,23 +1,23 @@
|
|
1
1
|
module Producteev
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
class Activities
|
3
|
+
def initialize(token)
|
4
|
+
@token = token
|
5
|
+
end
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
def show_activities(options = {})
|
8
|
+
return Producteev::Api.instance.send_request("/activities/show_activities.json",options,@token)
|
9
|
+
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
def show_notifications(options = {})
|
12
|
+
return Producteev::Api.instance.send_request("/activities/show_notifications.json",options,@token)
|
13
|
+
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
def notifications_set_read(options = {})
|
16
|
+
return Producteev::Api.instance.send_request("/activities/notifications_set_read.json",options,@token)
|
17
|
+
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
def set_read(options = {})
|
20
|
+
return Producteev::Api.instance.send_request("/activities/set_read.json",options,@token)
|
21
|
+
end
|
22
22
|
end
|
23
23
|
end
|
data/lib/producteev/api.rb
CHANGED
@@ -1,59 +1,59 @@
|
|
1
1
|
module Producteev
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
@@instance = Api.new
|
7
|
-
|
8
|
-
def self.instance
|
9
|
-
return @@instance
|
10
|
-
end
|
11
|
-
|
12
|
-
def api_set(apikey, secret, debug)
|
13
|
-
@@apikey = apikey
|
14
|
-
@@secret = secret
|
15
|
-
@debug = debug
|
16
|
-
end
|
17
|
-
|
18
|
-
private_class_method :new
|
2
|
+
class Api
|
3
|
+
include HTTParty
|
4
|
+
base_uri 'https://api.producteev.com/'
|
19
5
|
|
20
|
-
|
21
|
-
signature = ""
|
6
|
+
@@instance = Api.new
|
22
7
|
|
23
|
-
|
24
|
-
|
8
|
+
def self.instance
|
9
|
+
return @@instance
|
10
|
+
end
|
25
11
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
12
|
+
def api_set(apikey, secret, debug = false)
|
13
|
+
@@apikey = apikey
|
14
|
+
@@secret = secret
|
15
|
+
@debug = debug
|
16
|
+
end
|
31
17
|
|
32
|
-
|
33
|
-
signature = Digest::MD5.hexdigest(signature)
|
34
|
-
return signature
|
35
|
-
end
|
18
|
+
private_class_method :new
|
36
19
|
|
20
|
+
def generate_signature(parameters)
|
21
|
+
signature = ""
|
37
22
|
|
38
|
-
|
39
|
-
|
23
|
+
parameters = parameters.sort_by { |name, value| name.to_s }
|
24
|
+
#sort the hash alphabetically and make an array
|
40
25
|
|
41
|
-
|
42
|
-
|
26
|
+
parameters.each { |key,value|
|
27
|
+
if (value.kind_of? String or value.kind_of? Integer)
|
28
|
+
signature = "#{signature}#{key}#{value}"
|
43
29
|
end
|
44
|
-
|
30
|
+
}
|
45
31
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
32
|
+
signature = "#{signature}#{@@secret}"
|
33
|
+
signature = Digest::MD5.hexdigest(signature)
|
34
|
+
return signature
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def send_request(path, options={},token = nil)
|
39
|
+
options.merge!({:api_key => @@apikey})
|
40
|
+
|
41
|
+
if token != nil
|
42
|
+
options.merge!({:token => token})
|
43
|
+
end
|
44
|
+
options.merge!({:api_sig => generate_signature(options)})
|
45
|
+
|
46
|
+
if @debug
|
47
|
+
response = self.class.get(path, {:query => options, :debug_output => $stderr})
|
48
|
+
else
|
49
|
+
response = self.class.get(path, {:query => options})
|
50
|
+
end
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
52
|
+
if response.success?
|
53
|
+
return JSON.parse(response.body)
|
54
|
+
else
|
55
|
+
raise response.response
|
57
56
|
end
|
57
|
+
end
|
58
58
|
end
|
59
59
|
end
|
data/lib/producteev/client.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Producteev
|
2
2
|
class Client
|
3
|
-
|
3
|
+
|
4
4
|
def initialize(email,password)
|
5
5
|
param = {:email => email, :password => password}
|
6
6
|
@token = Producteev::Api.instance.send_request("/users/login.json",param)['login']['token']
|
@@ -11,7 +11,7 @@ module Producteev
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def labels()
|
14
|
-
|
14
|
+
return Producteev::Labels.new(@token)
|
15
15
|
end
|
16
16
|
|
17
17
|
def time()
|
@@ -19,15 +19,15 @@ module Producteev
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def activities()
|
22
|
-
|
22
|
+
return Producteev::Activities.new(@token)
|
23
23
|
end
|
24
24
|
|
25
25
|
def dashboards()
|
26
|
-
|
26
|
+
return Producteev::Dashboards.new(@token)
|
27
27
|
end
|
28
28
|
|
29
29
|
def users()
|
30
|
-
|
30
|
+
return Producteev::Users.new(@token)
|
31
31
|
end
|
32
32
|
|
33
33
|
end
|
@@ -1,72 +1,72 @@
|
|
1
1
|
module Producteev
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
2
|
+
class Dashboards
|
3
|
+
def initialize(token)
|
4
|
+
@token = token
|
5
|
+
end
|
6
|
+
|
7
|
+
def create(options = {})
|
8
|
+
return Producteev::Api.instance.send_request("/dashboards/create.json",options,@token)
|
9
|
+
end
|
10
|
+
|
11
|
+
def view(options = {})
|
12
|
+
return Producteev::Api.instance.send_request("/dashboards/view.json",options,@token)
|
13
|
+
end
|
14
|
+
|
15
|
+
def show_list(options = {})
|
16
|
+
return Producteev::Api.instance.send_request("/dashboards/show_list.json",options,@token)
|
17
|
+
end
|
18
|
+
|
19
|
+
def access(options = {})
|
20
|
+
return Producteev::Api.instance.send_request("/dashboards/access.json",options,@token)
|
21
|
+
end
|
22
|
+
|
23
|
+
def leave(options = {})
|
24
|
+
return Producteev::Api.instance.send_request("/dashboards/leave.json",options,@token)
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_title(options = {})
|
28
|
+
return Producteev::Api.instance.send_request("/dashboards/set_title.json",options,@token)
|
29
|
+
end
|
30
|
+
|
31
|
+
def set_smart_labels(options = {})
|
32
|
+
return Producteev::Api.instance.send_request("/dashboards/set_smart_labels.json",options,@token)
|
33
|
+
end
|
34
|
+
|
35
|
+
def delete(options = {})
|
36
|
+
return Producteev::Api.instance.send_request("/dashboards/delete.json",options,@token)
|
37
|
+
end
|
38
|
+
|
39
|
+
def tasks(options = {})
|
40
|
+
return Producteev::Api.instance.send_request("/dashboards/tasks.json",options,@token)
|
41
|
+
end
|
42
|
+
|
43
|
+
def confirm(options = {})
|
44
|
+
return Producteev::Api.instance.send_request("/dashboards/confirm.json",options,@token)
|
45
|
+
end
|
46
|
+
|
47
|
+
def refuse(options = {})
|
48
|
+
return Producteev::Api.instance.send_request("/dashboards/refuse.json",options,@token)
|
49
|
+
end
|
50
|
+
|
51
|
+
def invite_user_by_id(options = {})
|
52
|
+
return Producteev::Api.instance.send_request("/dashboards/invite_user_by_id.json",options,@token)
|
53
|
+
end
|
54
|
+
|
55
|
+
def invite_user_by_email(options = {})
|
56
|
+
return Producteev::Api.instance.send_request("/dashboards/invite_user_by_email.json",options,@token)
|
57
|
+
end
|
58
|
+
|
59
|
+
def need_upgrade_list(options = {})
|
60
|
+
return Producteev::Api.instance.send_request("/dashboards/need_upgrade_list.json",options,@token)
|
61
|
+
end
|
62
|
+
|
63
|
+
def needs_upgrade(options = {})
|
64
|
+
return Producteev::Api.instance.send_request("/dashboards/needs_upgrade.json",options,@token)
|
65
|
+
end
|
66
|
+
|
67
|
+
def reorder(options = {})
|
68
|
+
return Producteev::Api.instance.send_request("/dashboards/reorder.json",options,@token)
|
69
|
+
end
|
70
70
|
|
71
71
|
end
|
72
72
|
end
|
data/lib/producteev/labels.rb
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
module Producteev
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
class Labels
|
3
|
+
def initialize(token)
|
4
|
+
@token = token
|
5
|
+
end
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
def create(options = {})
|
8
|
+
return Producteev::Api.instance.send_request("/labels/create.json",options,@token)
|
9
|
+
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
def delete(options = {})
|
12
|
+
return Producteev::Api.instance.send_request("/labels/delete.json",options,@token)
|
13
|
+
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
def view(options = {})
|
16
|
+
return Producteev::Api.instance.send_request("/labels/view.json",options,@token)
|
17
|
+
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
def show_list(options = {})
|
20
|
+
return Producteev::Api.instance.send_request("/labels/show_list.json",options,@token)
|
21
|
+
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
def tasks(options = {})
|
24
|
+
return Producteev::Api.instance.send_request("/labels/tasks.json",options,@token)
|
25
|
+
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
def set_title(options = {})
|
28
|
+
return Producteev::Api.instance.send_request("/labels/set_title.json",options,@token)
|
29
|
+
end
|
30
30
|
end
|
31
31
|
end
|
data/lib/producteev/tasks.rb
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
module Producteev
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
2
|
+
class Tasks
|
3
|
+
def initialize(token)
|
4
|
+
@token = token
|
5
|
+
end
|
6
|
+
|
7
|
+
def create(options = {})
|
8
|
+
return Producteev::Api.instance.send_request("/tasks/create.json", options,@token)
|
9
|
+
end
|
10
|
+
|
11
|
+
def delete(options = {})
|
12
|
+
return Producteev::Api.instance.send_request("/tasks/delete.json",options,@token)
|
13
|
+
end
|
14
|
+
|
15
|
+
def view(options = {})
|
16
|
+
return Producteev::Api.instance.send_request("/tasks/view.json",options,@token)
|
17
|
+
end
|
18
|
+
|
19
|
+
def show_list(options = {})
|
20
|
+
return Producteev::Api.instance.send_request("/tasks/show_list.json",options,@token)
|
21
|
+
end
|
22
|
+
|
23
|
+
def my_tasks(options = {})
|
24
|
+
return Producteev::Api.instance.send_request("/tasks/show_list.json",options,@token)
|
25
|
+
end
|
26
|
+
|
27
|
+
def my_tasks(options = {})
|
28
|
+
return Producteev::Api.instance.send_request("/tasks/archived.json",options,@token)
|
29
|
+
end
|
30
|
+
|
31
|
+
def my_team_tasks(options = {})
|
32
|
+
return Producteev::Api.instance.send_request("/tasks/my_team_tasks.json",options,@token)
|
33
|
+
end
|
34
|
+
|
35
|
+
def set_title(options = {})
|
36
|
+
return Producteev::Api.instance.send_request("/tasks/set_title.json",options,@token)
|
37
|
+
end
|
38
|
+
|
39
|
+
def set_status(options = {})
|
40
|
+
return Producteev::Api.instance.send_request("/tasks/set_status.json",options,@token)
|
41
|
+
end
|
42
|
+
|
43
|
+
def set_star(options = {})
|
44
|
+
return Producteev::Api.instance.send_request("/tasks/set_star.json",options,@token)
|
45
|
+
end
|
46
|
+
|
47
|
+
def set_responsible(options = {})
|
48
|
+
return Producteev::Api.instance.send_request("/tasks/set_responsible.json",options,@token)
|
49
|
+
end
|
50
|
+
|
51
|
+
def unset_responsible(options = {})
|
52
|
+
return Producteev::Api.instance.send_request("/tasks/unset_responsible.json",options,@token)
|
53
|
+
end
|
54
|
+
|
55
|
+
def set_deadline(options = {})
|
56
|
+
return Producteev::Api.instance.send_request("/tasks/set_deadline.json",options,@token)
|
57
|
+
end
|
58
|
+
|
59
|
+
def unset_deadline(options = {})
|
60
|
+
return Producteev::Api.instance.send_request("/tasks/unset_deadline.json",options,@token)
|
61
|
+
end
|
62
|
+
|
63
|
+
def set_reminder(options = {})
|
64
|
+
return Producteev::Api.instance.send_request("/tasks/set_reminder.json",options,@token)
|
65
|
+
end
|
66
|
+
|
67
|
+
def set_repeating(options = {})
|
68
|
+
return Producteev::Api.instance.send_request("/tasks/set_repeating.json",options,@token)
|
69
|
+
end
|
70
|
+
|
71
|
+
def unset_repeating(options = {})
|
72
|
+
return Producteev::Api.instance.send_request("/tasks/unset_repeating.json",options,@token)
|
73
|
+
end
|
74
|
+
|
75
|
+
def labels(options = {})
|
76
|
+
return Producteev::Api.instance.send_request("/tasks/labels.json",options,@token)
|
77
|
+
end
|
78
|
+
|
79
|
+
def change_labels(options = {})
|
80
|
+
return Producteev::Api.instance.send_request("/tasks/change_labels.json",options,@token)
|
81
|
+
end
|
82
|
+
|
83
|
+
def set_workspace(options = {})
|
84
|
+
return Producteev::Api.instance.send_request("/tasks/set_workspace.json",options,@token)
|
85
|
+
end
|
86
|
+
|
87
|
+
def note_view(options = {})
|
88
|
+
return Producteev::Api.instance.send_request("/tasks/note_view.json",options,@token)
|
89
|
+
end
|
90
|
+
|
91
|
+
def notes_get(options = {})
|
92
|
+
return Producteev::Api.instance.send_request("/tasks/notes_get.json",options,@token)
|
93
|
+
end
|
94
|
+
|
95
|
+
def note_create(options = {})
|
96
|
+
return Producteev::Api.instance.send_request("/tasks/note_create.json",options,@token)
|
97
|
+
end
|
98
|
+
|
99
|
+
def note_delete(options = {})
|
100
|
+
return Producteev::Api.instance.send_request("/tasks/note_delete.json",options,@token)
|
101
|
+
end
|
102
|
+
|
103
|
+
def activity_view(options = {})
|
104
|
+
return Producteev::Api.instance.send_request("/tasks/activity_view.json",options,@token)
|
105
|
+
end
|
106
|
+
|
107
|
+
def activities_get(options = {})
|
108
|
+
return Producteev::Api.instance.send_request("/tasks/activities_get.json",options,@token)
|
109
|
+
end
|
110
110
|
end
|
111
111
|
end
|
data/lib/producteev/version.rb
CHANGED
data/lib/producteev.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require "rubygems"
|
2
|
-
require "bundler/setup"
|
3
2
|
require 'digest/md5'
|
4
3
|
require "httparty"
|
5
4
|
require "json"
|
@@ -21,7 +20,7 @@ module Producteev
|
|
21
20
|
end
|
22
21
|
|
23
22
|
def login (username, password)
|
24
|
-
|
23
|
+
return Producteev::Client.new(username, password)
|
25
24
|
end
|
26
25
|
end
|
27
|
-
end
|
26
|
+
end
|
data/spec/api_spec.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'httparty'
|
3
|
+
require File.expand_path('../../lib/producteev/api.rb', __FILE__)
|
4
|
+
require File.expand_path('../spec_helper.rb', __FILE__)
|
5
|
+
|
6
|
+
describe Producteev::Api do
|
7
|
+
before do
|
8
|
+
Producteev::Api.instance.api_set("123","123")
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should generate the correct signature with 3 inputs" do
|
12
|
+
data = { :password => "asdasd", :page => "1", :email => "test@test.com"}
|
13
|
+
sign = "f287c3869cfe040db57340ca0656f6e8"
|
14
|
+
Producteev::Api.instance.generate_signature(data).should == sign
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should generate the correct signature with 0 inputs" do
|
18
|
+
sign = "202cb962ac59075b964b07152d234b70"
|
19
|
+
Producteev::Api.instance.generate_signature({}).should == sign
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should generate the correct signature with an hash/hash input" do
|
23
|
+
data = { :password => "asdasd", :page => "1", :email => "test@test.com",
|
24
|
+
:data => {:data1 =>"test", :data2 => "test2"}}
|
25
|
+
sign = "f287c3869cfe040db57340ca0656f6e8"
|
26
|
+
Producteev::Api.instance.generate_signature(data).should == sign
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# Require this file using `require "spec_helper.rb"` to ensure that it is only
|
4
|
+
# loaded once.
|
5
|
+
#
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
+
config.run_all_when_everything_filtered = true
|
10
|
+
#config.formatter = :documentation
|
11
|
+
#config.filter_run :focus
|
12
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: producteev
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-26 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement: &
|
16
|
+
requirement: &5591040 !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: *5591040
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &5589960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,26 +32,37 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *5589960
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &5588020 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.8.0
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *5588020
|
36
47
|
description: Api client for producteev
|
37
48
|
email: steve@thatbytes.co.uk
|
38
49
|
executables: []
|
39
50
|
extensions: []
|
40
51
|
extra_rdoc_files: []
|
41
52
|
files:
|
42
|
-
-
|
43
|
-
- Gemfile.lock
|
44
|
-
- README.md
|
45
|
-
- lib/producteev.rb
|
53
|
+
- Rakefile
|
46
54
|
- lib/producteev/activities.rb
|
47
|
-
- lib/producteev/
|
55
|
+
- lib/producteev/tasks.rb
|
48
56
|
- lib/producteev/client.rb
|
57
|
+
- lib/producteev/users.rb
|
49
58
|
- lib/producteev/dashboards.rb
|
59
|
+
- lib/producteev/api.rb
|
50
60
|
- lib/producteev/labels.rb
|
51
|
-
- lib/producteev/tasks.rb
|
52
|
-
- lib/producteev/users.rb
|
53
61
|
- lib/producteev/version.rb
|
54
|
-
- producteev.
|
62
|
+
- lib/producteev.rb
|
63
|
+
- spec/api_spec.rb
|
64
|
+
- spec/spec_helper.rb
|
65
|
+
- README.md
|
55
66
|
homepage: http://github.com/stephenrjohnson/producteev
|
56
67
|
licenses: []
|
57
68
|
post_install_message:
|
@@ -72,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
83
|
version: '0'
|
73
84
|
requirements: []
|
74
85
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.8.
|
86
|
+
rubygems_version: 1.8.15
|
76
87
|
signing_key:
|
77
88
|
specification_version: 3
|
78
89
|
summary: Api client for producteev
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
data/producteev.gemspec
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require File.expand_path('../lib/producteev/version.rb', __FILE__)
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = 'producteev'
|
5
|
-
s.version = Producteev::VERSION::STRING.dup
|
6
|
-
s.date = '2012-01-26'
|
7
|
-
s.summary = "Api client for producteev"
|
8
|
-
s.description = "Api client for producteev"
|
9
|
-
s.authors = ["Stephen Johnson"]
|
10
|
-
s.email = 'steve@thatbytes.co.uk'
|
11
|
-
s.required_ruby_version = '>= 1.8.7'
|
12
|
-
s.homepage =
|
13
|
-
'http://github.com/stephenrjohnson/producteev'
|
14
|
-
|
15
|
-
s.add_dependency 'httparty'
|
16
|
-
s.add_dependency 'json'
|
17
|
-
s.files = `git ls-files`.split("\n")
|
18
|
-
|
19
|
-
s.require_paths = ["lib"]
|
20
|
-
end
|