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.
@@ -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: []