commit_tracker 0.0.1 → 0.0.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.
- 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: []
|