commit_tracker 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/commit_tracker/error.rb +3 -0
- data/lib/commit_tracker/message.rb +48 -0
- data/lib/commit_tracker/task.rb +52 -0
- data/lib/commit_tracker/trackstudio.rb +131 -2
- data/lib/commit_tracker/version.rb +3 -2
- data/lib/commit_tracker.rb +2 -0
- metadata +12 -12
data/lib/commit_tracker/error.rb
CHANGED
@@ -2,7 +2,25 @@ require "commit_tracker/error"
|
|
2
2
|
require "commit_tracker/trackstudio"
|
3
3
|
|
4
4
|
module CommitTracker
|
5
|
+
|
6
|
+
# = CommitTracker::Message
|
7
|
+
#
|
8
|
+
# Abstract class for message
|
5
9
|
class Message
|
10
|
+
|
11
|
+
# Initializes the CommitTracker::Message
|
12
|
+
#
|
13
|
+
#
|
14
|
+
# * type tracker (:type)
|
15
|
+
# * url api (:url)
|
16
|
+
# * auth login (:login)
|
17
|
+
# * password (:password)
|
18
|
+
#
|
19
|
+
# == Examples
|
20
|
+
# commit = CommitTracker::Message.new(:type => 'trackstudio'
|
21
|
+
# :url => 'http://ts.domain.com/TrackStudio/services/',
|
22
|
+
# :login => 'user',
|
23
|
+
# :password => 'qwerty')
|
6
24
|
def initialize(options={})
|
7
25
|
@type = options[:type] || 'trackstudio'
|
8
26
|
@commit = nil
|
@@ -12,6 +30,31 @@ module CommitTracker
|
|
12
30
|
end
|
13
31
|
end
|
14
32
|
|
33
|
+
# create message and return message id
|
34
|
+
#
|
35
|
+
# * task number (:task_number)
|
36
|
+
# * message status (:msg_status)
|
37
|
+
# * text message (:comment)
|
38
|
+
# * time spent (:hrs)
|
39
|
+
# * assigned user (:user)
|
40
|
+
# * change resolution task (:resolution)
|
41
|
+
# * change priority task (:priority)
|
42
|
+
# * add budget time for task in seconds (:budget_sec)
|
43
|
+
# * set deadline day (:deadline_sec)
|
44
|
+
# * send notify to email (:is_notify)
|
45
|
+
#
|
46
|
+
# == Examples
|
47
|
+
#
|
48
|
+
# messageId = commit.create(:task_number => "1234",
|
49
|
+
# :msg_status => "Assigned",
|
50
|
+
# :comment => "test msg!!!!",
|
51
|
+
# :hrs => 3*3600,
|
52
|
+
# :user => "user_1",
|
53
|
+
# :resolution => nil,
|
54
|
+
# :priority => "Normal",
|
55
|
+
# :budget_sec => nil,
|
56
|
+
# :deadline_sec => Time.now.to_i + 4 * 86400,
|
57
|
+
# :is_notify => true)
|
15
58
|
def create(options={})
|
16
59
|
case @type
|
17
60
|
when 'trackstudio'
|
@@ -21,6 +64,11 @@ module CommitTracker
|
|
21
64
|
end
|
22
65
|
end
|
23
66
|
|
67
|
+
# delete message by message id
|
68
|
+
#
|
69
|
+
# == Examples
|
70
|
+
#
|
71
|
+
# ts.delete(:messageId => "4028929033561c0801335a5490e80433")
|
24
72
|
def delete(options={})
|
25
73
|
case @type
|
26
74
|
when 'trackstudio'
|
data/lib/commit_tracker/task.rb
CHANGED
@@ -2,7 +2,25 @@ require "commit_tracker/error"
|
|
2
2
|
require "commit_tracker/trackstudio"
|
3
3
|
|
4
4
|
module CommitTracker
|
5
|
+
|
6
|
+
# = CommitTracker::Task
|
7
|
+
#
|
8
|
+
# Abstract class for task
|
5
9
|
class Task
|
10
|
+
|
11
|
+
# Initializes the CommitTracker::Task
|
12
|
+
#
|
13
|
+
#
|
14
|
+
# * type tracker (:type)
|
15
|
+
# * url api (:url)
|
16
|
+
# * auth login (:login)
|
17
|
+
# * password (:password)
|
18
|
+
#
|
19
|
+
# == Examples
|
20
|
+
# commit = CommitTracker::Task.new(:type => 'trackstudio'
|
21
|
+
# :url => 'http://ts.domain.com/TrackStudio/services/',
|
22
|
+
# :login => 'user',
|
23
|
+
# :password => 'qwerty')
|
6
24
|
def initialize(options={})
|
7
25
|
@type = options[:type] || 'trackstudio'
|
8
26
|
@commit = nil
|
@@ -12,6 +30,34 @@ module CommitTracker
|
|
12
30
|
end
|
13
31
|
end
|
14
32
|
|
33
|
+
# create task and return task id
|
34
|
+
#
|
35
|
+
# Options:
|
36
|
+
# * name task (:name)
|
37
|
+
# * short name task (:shortname)
|
38
|
+
# * assigned user (:user)
|
39
|
+
# * parent task (:parent_number)
|
40
|
+
# * description (:description)
|
41
|
+
# * priority (:priority)
|
42
|
+
# * category task (:category)
|
43
|
+
# * budget time for task in seconds (:budget_sec)
|
44
|
+
# * deadline day (:deadline_sec)
|
45
|
+
# * name custom fields (:udf_names)(array)
|
46
|
+
# * value custom fields (:udf_values)(array)
|
47
|
+
#
|
48
|
+
# == Examples
|
49
|
+
#
|
50
|
+
# taskId = commit.create(:name => "example task 1"
|
51
|
+
# :shortname => "ex1",
|
52
|
+
# :user => "user_1",
|
53
|
+
# :parent_number => 123,
|
54
|
+
# :description => "This is example task"
|
55
|
+
# :priority => "Normal",
|
56
|
+
# :category => "Task",
|
57
|
+
# :budget_sec => 3 * 3600,
|
58
|
+
# :deadline_sec => Time.now.to_i + 5 * 86400,
|
59
|
+
# :udf_names => ['one', 'two'],
|
60
|
+
# :udf_values => ['test', 4] )
|
15
61
|
def create(options={})
|
16
62
|
case @type
|
17
63
|
when 'trackstudio'
|
@@ -21,6 +67,12 @@ module CommitTracker
|
|
21
67
|
end
|
22
68
|
end
|
23
69
|
|
70
|
+
# delete task by id or number
|
71
|
+
#
|
72
|
+
# == Examples
|
73
|
+
#
|
74
|
+
# commit.delete(:task_number => 1234)
|
75
|
+
# commit.delete(:task_number => taskId)
|
24
76
|
def delete(options={})
|
25
77
|
case @type
|
26
78
|
when 'trackstudio'
|
@@ -2,8 +2,18 @@ require "savon"
|
|
2
2
|
require "commit_tracker/error"
|
3
3
|
|
4
4
|
module CommitTracker
|
5
|
+
|
6
|
+
# = CommitTracker::TrackStudio
|
7
|
+
#
|
8
|
+
# Cleint for TrackStudio
|
5
9
|
class TrackStudio
|
6
10
|
|
11
|
+
# Initializes the CommitTracker::TrackStudio
|
12
|
+
#
|
13
|
+
# == Examples
|
14
|
+
# ts = CommitTracker::TrackStudio.new(:url => 'http://ts.domain.com/TrackStudio/services/',
|
15
|
+
# :login => 'user',
|
16
|
+
# :password => 'qwerty')
|
7
17
|
def initialize(options={})
|
8
18
|
url = options[:url] || 'http://localhost/TrackStudio/services/'
|
9
19
|
@login = options[:login] || 'login'
|
@@ -110,6 +120,11 @@ module CommitTracker
|
|
110
120
|
end
|
111
121
|
end
|
112
122
|
|
123
|
+
# return task id by number
|
124
|
+
#
|
125
|
+
# == Examples
|
126
|
+
#
|
127
|
+
# taskId = ts.get_task_id(1234)
|
113
128
|
def get_task_id(task_number)
|
114
129
|
raise ErrorCommitTask, "task number is nil" if task_number.nil?
|
115
130
|
begin
|
@@ -125,6 +140,13 @@ module CommitTracker
|
|
125
140
|
end
|
126
141
|
end
|
127
142
|
|
143
|
+
|
144
|
+
# return message status id by name
|
145
|
+
#
|
146
|
+
# == Examples
|
147
|
+
#
|
148
|
+
# msg_status = "New"
|
149
|
+
# mstatusId = ts.get_mstatus_id(taskId, msg_status)
|
128
150
|
def get_mstatus_id(taskId, msg_status)
|
129
151
|
raise ErrorCommitTask, "msg_status is nil" if msg_status.nil?
|
130
152
|
begin
|
@@ -149,6 +171,12 @@ module CommitTracker
|
|
149
171
|
return nil
|
150
172
|
end
|
151
173
|
|
174
|
+
|
175
|
+
# return user id by name
|
176
|
+
#
|
177
|
+
# == Examples
|
178
|
+
#
|
179
|
+
# userId = ts.get_user_id("user_1")
|
152
180
|
def get_user_id(user)
|
153
181
|
begin
|
154
182
|
find_user = user || @login
|
@@ -163,6 +191,12 @@ module CommitTracker
|
|
163
191
|
end
|
164
192
|
end
|
165
193
|
|
194
|
+
# return available workflows by task id
|
195
|
+
#
|
196
|
+
# == Examples
|
197
|
+
#
|
198
|
+
# taskId = ts.get_task_id(1234)
|
199
|
+
# workflow_list = ts.get_workflow_for_task(taskId)
|
166
200
|
def get_workflow_for_task(taskId)
|
167
201
|
begin
|
168
202
|
response = @Workflow.request :soap,
|
@@ -176,6 +210,11 @@ module CommitTracker
|
|
176
210
|
end
|
177
211
|
end
|
178
212
|
|
213
|
+
# retrun available priority for workflow id
|
214
|
+
#
|
215
|
+
# == Examples
|
216
|
+
#
|
217
|
+
# priorityId = ts.get_priority_for_wokflow(workflowId)
|
179
218
|
def get_priority_for_wokflow(workflow_id)
|
180
219
|
response = @Workflow.request :soap,
|
181
220
|
:getPriorityList,
|
@@ -185,7 +224,13 @@ module CommitTracker
|
|
185
224
|
value = response.to_hash[:get_priority_list_response][:return]
|
186
225
|
return value
|
187
226
|
end
|
188
|
-
|
227
|
+
|
228
|
+
# return priority id by name and task id
|
229
|
+
#
|
230
|
+
# == Examples
|
231
|
+
#
|
232
|
+
# taskId = ts.get_task_id(1234)
|
233
|
+
# priorityId = ts.get_priority_id(taskId, "Medium")
|
189
234
|
def get_priority_id(taskId, priority)
|
190
235
|
begin
|
191
236
|
workflow_list = get_workflow_for_task(taskId)
|
@@ -209,6 +254,11 @@ module CommitTracker
|
|
209
254
|
return nil
|
210
255
|
end
|
211
256
|
|
257
|
+
# return priority id by message status id and resolution name
|
258
|
+
#
|
259
|
+
# == Examples
|
260
|
+
#
|
261
|
+
# resolutionId = ts.get_resolution_id(mstatusId, "inProgress")
|
212
262
|
def get_resolution_id(mstatusId, resolution)
|
213
263
|
begin
|
214
264
|
response = @Workflow.request :soap,
|
@@ -232,6 +282,12 @@ module CommitTracker
|
|
232
282
|
return nil
|
233
283
|
end
|
234
284
|
|
285
|
+
|
286
|
+
# return categoryes by task id
|
287
|
+
#
|
288
|
+
# == Examples
|
289
|
+
#
|
290
|
+
# categoryes_list = ts.get_category_list_for_task(taskId)
|
235
291
|
def get_category_list_for_task(taskId)
|
236
292
|
begin
|
237
293
|
response = @Category.request :soap,
|
@@ -249,6 +305,11 @@ module CommitTracker
|
|
249
305
|
end
|
250
306
|
end
|
251
307
|
|
308
|
+
# return category id by task id and name category
|
309
|
+
#
|
310
|
+
# == Examples
|
311
|
+
#
|
312
|
+
# category = ts.get_category_for_task(taskId, "Task")
|
252
313
|
def get_category_for_task(taskId, category)
|
253
314
|
begin
|
254
315
|
categories_list = get_category_list_for_task(taskId)
|
@@ -264,6 +325,13 @@ module CommitTracker
|
|
264
325
|
end
|
265
326
|
end
|
266
327
|
|
328
|
+
|
329
|
+
# delete task by id or number
|
330
|
+
#
|
331
|
+
# == Examples
|
332
|
+
#
|
333
|
+
# ts.delete_task(:task_number => 1234)
|
334
|
+
# ts.delete_task(:task_number => taskId)
|
267
335
|
def delete_task(options={})
|
268
336
|
begin
|
269
337
|
|
@@ -284,6 +352,11 @@ module CommitTracker
|
|
284
352
|
end
|
285
353
|
end
|
286
354
|
|
355
|
+
# delete message by message id
|
356
|
+
#
|
357
|
+
# == Examples
|
358
|
+
#
|
359
|
+
# ts.delete_message(:messageId => "4028929033561c0801335a5490e80433")
|
287
360
|
def delete_message(options={})
|
288
361
|
begin
|
289
362
|
@Message.request :soap,
|
@@ -295,6 +368,34 @@ module CommitTracker
|
|
295
368
|
end
|
296
369
|
end
|
297
370
|
|
371
|
+
# create task and return task id
|
372
|
+
#
|
373
|
+
# Options:
|
374
|
+
# * name task (:name)
|
375
|
+
# * short name task (:shortname)
|
376
|
+
# * assigned user (:user)
|
377
|
+
# * parent task (:parent_number)
|
378
|
+
# * description (:description)
|
379
|
+
# * priority (:priority)
|
380
|
+
# * category task (:category)
|
381
|
+
# * budget time for task in seconds (:budget_sec)
|
382
|
+
# * deadline day (:deadline_sec)
|
383
|
+
# * name custom fields (:udf_names)(array)
|
384
|
+
# * value custom fields (:udf_values)(array)
|
385
|
+
#
|
386
|
+
# == Examples
|
387
|
+
#
|
388
|
+
# taskId = ts.create_task(:name => "example task 1"
|
389
|
+
# :shortname => "ex1",
|
390
|
+
# :user => "user_1",
|
391
|
+
# :parent_number => 123,
|
392
|
+
# :description => "This is example task"
|
393
|
+
# :priority => "Normal",
|
394
|
+
# :category => "Task",
|
395
|
+
# :budget_sec => 3 * 3600,
|
396
|
+
# :deadline_sec => Time.now.to_i + 5 * 86400,
|
397
|
+
# :udf_names => ['one', 'two'],
|
398
|
+
# :udf_values => ['test', 4] )
|
298
399
|
def create_task(options={})
|
299
400
|
begin
|
300
401
|
handlerUserId = get_user_id(options[:user])
|
@@ -325,6 +426,34 @@ module CommitTracker
|
|
325
426
|
end
|
326
427
|
end
|
327
428
|
|
429
|
+
|
430
|
+
# create message and return message id
|
431
|
+
#
|
432
|
+
# [notice] if you api is broke and not return message id, method return "0"
|
433
|
+
#
|
434
|
+
# * task number (:task_number)
|
435
|
+
# * message status (:msg_status)
|
436
|
+
# * text message (:comment)
|
437
|
+
# * time spent (:hrs)
|
438
|
+
# * assigned user (:user)
|
439
|
+
# * change resolution task (:resolution)
|
440
|
+
# * change priority task (:priority)
|
441
|
+
# * add budget time for task in seconds (:budget_sec)
|
442
|
+
# * set deadline day (:deadline_sec)
|
443
|
+
# * send notify to email (:is_notify)
|
444
|
+
#
|
445
|
+
# == Examples
|
446
|
+
#
|
447
|
+
# messageId = ts.create_message(:task_number => "1234",
|
448
|
+
# :msg_status => "Assigned",
|
449
|
+
# :comment => "test msg!!!!",
|
450
|
+
# :hrs => 3*3600,
|
451
|
+
# :user => "user_1",
|
452
|
+
# :resolution => nil,
|
453
|
+
# :priority => "Normal",
|
454
|
+
# :budget_sec => nil,
|
455
|
+
# :deadline_sec => Time.now.to_i + 4 * 86400,
|
456
|
+
# :is_notify => true)
|
328
457
|
def create_message(options={})
|
329
458
|
begin
|
330
459
|
priorityId = nil
|
@@ -362,7 +491,7 @@ module CommitTracker
|
|
362
491
|
|
363
492
|
#if message_number == nil than retrun 0
|
364
493
|
if message_number.to_hash[:create_message_response][:return].nil?
|
365
|
-
return 0
|
494
|
+
return "0"
|
366
495
|
else
|
367
496
|
return message_number.to_hash[:create_message_response][:return]
|
368
497
|
end
|
data/lib/commit_tracker.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commit_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-05 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|
16
|
-
requirement: &
|
16
|
+
requirement: &70105363654880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.1.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70105363654880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: savon
|
27
|
-
requirement: &
|
27
|
+
requirement: &70105363654040 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.7
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70105363654040
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: nokogiri
|
38
|
-
requirement: &
|
38
|
+
requirement: &70105363653520 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.4.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70105363653520
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70105363652840 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.8.7
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70105363652840
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70105363652100 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 2.5.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70105363652100
|
69
69
|
description: client tracking system
|
70
70
|
email: alfss.obsd@gmail.com
|
71
71
|
executables: []
|