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.
@@ -1,5 +1,8 @@
1
1
  module CommitTracker
2
2
 
3
+ # = CommitTracker::ErrorCommitTask
4
+ #
5
+ # Abstract error class
3
6
  class ErrorCommitTask < RuntimeError
4
7
  end
5
8
 
@@ -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'
@@ -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
@@ -1,5 +1,6 @@
1
1
  module CommitTracker
2
-
3
- Version = "0.0.1"
2
+
3
+ # = CommitTracker::Version
4
+ Version = "0.0.2"
4
5
 
5
6
  end
@@ -1,4 +1,6 @@
1
1
  require "commit_tracker/task"
2
2
  require "commit_tracker/message"
3
+
4
+ # = CommitTracker
3
5
  module CommitTracker
4
6
  end
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.1
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-04 00:00:00.000000000Z
12
+ date: 2011-12-05 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: builder
16
- requirement: &70252471296980 !ruby/object:Gem::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: *70252471296980
24
+ version_requirements: *70105363654880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: savon
27
- requirement: &70252471294800 !ruby/object:Gem::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: *70252471294800
35
+ version_requirements: *70105363654040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokogiri
38
- requirement: &70252471294020 !ruby/object:Gem::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: *70252471294020
46
+ version_requirements: *70105363653520
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70252471292580 !ruby/object:Gem::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: *70252471292580
57
+ version_requirements: *70105363652840
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &70252471291840 !ruby/object:Gem::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: *70252471291840
68
+ version_requirements: *70105363652100
69
69
  description: client tracking system
70
70
  email: alfss.obsd@gmail.com
71
71
  executables: []