pt 0.3.9 → 0.5

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/Changelog.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # pt changelog
2
2
 
3
+ ## v0.4
4
+
5
+ Added support for calling functions without going through the walkthroughs ( orta )
6
+
3
7
  ## v0.3.9
4
8
 
5
9
  Attachments displayed in 'show' task, thanks Anthony Crumley!
data/README.md CHANGED
@@ -12,31 +12,35 @@ The first time you run it, `pt` will ask you some data about your Pivotal Tracke
12
12
 
13
13
  Run `pt` from the root folder of your project.
14
14
 
15
- pt # shows your "My work" tasks list
15
+ pt # show all available tasks
16
16
 
17
- Run `pt create` to create a new bug, chore or feature.
17
+ pt create [title] ~[owner] ~[type] # create a new task
18
18
 
19
- The rest of the commands will open you a list of your tasks and let you interact with it:
19
+ pt show [id] # shows detailed info about a task
20
20
 
21
- pt show # shows detailed info about a task
21
+ pt open [id] # open a task in the browser
22
22
 
23
- pt open # open a task in the browser
23
+ pt assign [id] [member] # assign owner
24
24
 
25
- pt assign # assign owner
25
+ pt comment [id] [comment] # add a comment
26
26
 
27
- pt comment # add a comment
27
+ pt estimate [id] [0-3] # estimate a task in points scale
28
28
 
29
- pt estimate # estimate a task in points scale
29
+ pt start [id] # mark a task as started
30
30
 
31
- pt start # mark a task as started
31
+ pt finish [id] # indicate you've finished a task
32
32
 
33
- pt finish # indicate you've finished a task
33
+ pt deliver [id] # indicate the task is delivered
34
34
 
35
- pt deliver # indicate the task is delivered
35
+ pt accept [id] # mark a task as accepted
36
36
 
37
- pt accept # mark a task as accepted
37
+ pt reject [id] [reason] # mark a task as rejected, explaining why
38
38
 
39
- pt reject # mark a task as rejected, explaining why
39
+ pt find [query] # search for a task by title and show it
40
+
41
+ pt done [id] ~[0-3] # lazy mans finish task, does everything
42
+
43
+ pt updates # show recent activity from your current project
40
44
 
41
45
  ## Problems?
42
46
 
@@ -44,6 +48,7 @@ You can [open a new issue](https://github.com/raul/pt/issues/new). It can be hel
44
48
 
45
49
  # Contributors
46
50
 
51
+ [orta therox](http://orta.github.com)
47
52
  [Anthony Crumley](https://github.com/craftycode)
48
53
  [Johan Andersson](http://johan.andersson.net)
49
54
 
data/lib/pt.rb CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  module PT
4
4
  class InputError < StandardError; end
5
- VERSION = '0.3.9'
5
+ VERSION = '0.5'
6
6
  end
7
7
 
8
8
  require 'pt/client'
data/lib/pt/client.rb CHANGED
@@ -32,6 +32,10 @@ class PT::Client
32
32
  def get_current_iteration(project)
33
33
  PivotalTracker::Iteration.current(project)
34
34
  end
35
+
36
+ def get_activities(project)
37
+ project.activities.all
38
+ end
35
39
 
36
40
  def get_my_work(project, user_name)
37
41
  project.stories.all :mywork => user_name
data/lib/pt/switch_ssl.rb CHANGED
@@ -3,8 +3,12 @@
3
3
  module PivotalTracker
4
4
  class Client
5
5
  def self.use_ssl=(val)
6
- @connection = nil if !@use_ssl == val
6
+ if !@use_ssl == val
7
+ @connection = nil if @connection
8
+ @connections = {} if @connections
9
+ end
10
+
7
11
  @use_ssl = val
8
12
  end
9
13
  end
10
- end
14
+ end
data/lib/pt/ui.rb CHANGED
@@ -15,8 +15,8 @@ class PT::UI
15
15
  @local_config = load_local_config
16
16
  @project = @client.get_project(@local_config[:project_id])
17
17
  command = args[0].to_sym rescue :my_work
18
- params = args[1..-1]
19
- commands.include?(command.to_sym) ? send(command.to_sym) : help(command)
18
+ @params = args[1..-1]
19
+ commands.include?(command.to_sym) ? send(command.to_sym) : help
20
20
  end
21
21
 
22
22
  def my_work
@@ -25,18 +25,46 @@ class PT::UI
25
25
  PT::TasksTable.new(stories).print
26
26
  end
27
27
 
28
- def create
29
- title("Let's create a new task:")
30
- name = ask("Name for the new task:")
31
- if ask('Do you want to assign it now? (y/n)').downcase == 'y'
28
+ def list
29
+ if @params[0]
30
+ user = find_owner @params[0]
31
+ if user
32
+ stories = @client.get_my_work(@project, user.name)
33
+ PT::TasksTable.new(stories).print
34
+ end
35
+ else
32
36
  members = @client.get_members(@project)
33
37
  table = PT::MembersTable.new(members)
34
- owner = select("Please select a member to assign him the task", table).name
38
+ user = select("Please select a member to see his tasks", table).name
39
+ title("Work for #{user} in #{project_to_s}")
40
+ stories = @client.get_my_work(@project, user)
41
+ PT::TasksTable.new(stories).print
42
+ end
43
+ end
44
+
45
+ def create
46
+ if @params[0]
47
+ name = @params[0]
48
+ owner = find_owner @params[1]
49
+ requester = @local_config[:user_name]
50
+ task_type = @params[2] || 'feature'
35
51
  else
36
- owner = nil
52
+ title("Let's create a new task:")
53
+ name = ask("Name for the new task:")
54
+ end
55
+
56
+ unless owner
57
+ if ask('Do you want to assign it now? (y/n)').downcase == 'y'
58
+ members = @client.get_members(@project)
59
+ table = PT::MembersTable.new(members)
60
+ owner = select("Please select a member to assign him the task", table).name
61
+ else
62
+ owner = nil
63
+ end
64
+ requester = @local_config[:user_name]
65
+ task_type = ask('Type? (c)hore, (b)ug, anything else for feature)')
37
66
  end
38
- requester = @local_config[:user_name]
39
- task_type = ask('Type? (c)hore, (b)ug, anything else for feature)')
67
+
40
68
  task_type = case task_type
41
69
  when 'c', 'chore'
42
70
  'chore'
@@ -45,7 +73,7 @@ class PT::UI
45
73
  else
46
74
  'feature'
47
75
  end
48
- result = @client.create_task(@project, name, owner, requester, task_type)
76
+ result = @client.create_task(@project, name, owner.name, requester, task_type)
49
77
  if result.errors.any?
50
78
  error(result.errors.errors)
51
79
  else
@@ -54,19 +82,32 @@ class PT::UI
54
82
  end
55
83
 
56
84
  def open
57
- title("Tasks for #{user_s} in #{project_to_s}")
58
- tasks = @client.get_my_open_tasks(@project, @local_config[:user_name])
59
- table = PT::TasksTable.new(tasks)
60
- task = select("Please select a story to open it in the browser", table)
85
+ if @params[0]
86
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
87
+ table = PT::TasksTable.new(tasks)
88
+ task = table[ @params[0].to_i ]
89
+ congrats("Opening #{task.name}")
90
+ else
91
+ tasks = @client.get_my_open_tasks(@project, @local_config[:user_name])
92
+ table = PT::TasksTable.new(tasks)
93
+ title("Tasks for #{user_s} in #{project_to_s}")
94
+ task = select("Please select a story to open it in the browser", table)
95
+ end
61
96
  `open #{task.url}`
62
97
  end
63
98
 
64
99
  def comment
65
- title("Tasks for #{user_s} in #{project_to_s}")
66
100
  tasks = @client.get_my_work(@project, @local_config[:user_name])
67
101
  table = PT::TasksTable.new(tasks)
68
- task = select("Please select a story to comment it", table)
69
- comment = ask("Write your comment")
102
+ if @params[0]
103
+ task = table[ @params[0].to_i ]
104
+ comment = @params[1]
105
+ title("Adding a comment to #{task.name}")
106
+ else
107
+ title("Tasks for #{user_s} in #{project_to_s}")
108
+ task = select("Please select a story to comment it", table)
109
+ comment = ask("Write your comment")
110
+ end
70
111
  if @client.comment_task(@project, task, comment)
71
112
  congrats("Comment sent, thanks!")
72
113
  else
@@ -75,28 +116,46 @@ class PT::UI
75
116
  end
76
117
 
77
118
  def assign
78
- title("Tasks for #{user_s} in #{project_to_s}")
79
- tasks = @client.get_tasks_to_assign(@project, @local_config[:user_name])
80
- table = PT::TasksTable.new(tasks)
81
- task = select("Please select a task to assign it an owner", table)
82
- members = @client.get_members(@project)
83
- table = PT::MembersTable.new(members)
84
- owner = select("Please select a member to assign him the task", table).name
85
- result = @client.assign_task(@project, task, owner)
119
+ if @params[0]
120
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
121
+ table = PT::TasksTable.new(tasks)
122
+ task = table[@params[0].to_i]
123
+ owner = find_owner @params[1]
124
+ else
125
+ title("Tasks for #{user_s} in #{project_to_s}")
126
+ tasks = @client.get_tasks_to_assign(@project, @local_config[:user_name])
127
+ table = PT::TasksTable.new(tasks)
128
+ task = select("Please select a task to assign it an owner", table)
129
+ members = @client.get_members(@project)
130
+ table = PT::MembersTable.new(members)
131
+ owner = select("Please select a member to assign him the task", table).name
132
+ end
133
+ result = @client.assign_task(@project, task, owner.name)
86
134
  if result.errors.any?
87
135
  error(result.errors.errors)
88
136
  else
89
- congrats("Task assigned, thanks!")
137
+ congrats("Task assigned to #{owner}, thanks!")
90
138
  end
91
-
92
139
  end
93
140
 
94
141
  def estimate
95
- title("Tasks for #{user_s} in #{project_to_s}")
96
- tasks = @client.get_my_tasks_to_estimate(@project, @local_config[:user_name])
97
- table = PT::TasksTable.new(tasks)
98
- task = select("Please select a story to estimate it", table)
99
- estimation = ask("How many points you estimate for it? (#{@project.point_scale})")
142
+ if @params[0]
143
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
144
+ table = PT::TasksTable.new(tasks)
145
+ task = table[@params[0].to_i]
146
+ title("Estimating '#{task.name}'")
147
+
148
+ if [0,1,2,3].include? @params[1].to_i
149
+ estimation = @params[1]
150
+ end
151
+ else
152
+ tasks = @client.get_my_tasks_to_estimate(@project, @local_config[:user_name])
153
+ table = PT::TasksTable.new(tasks)
154
+ title("Tasks for #{user_s} in #{project_to_s}")
155
+ task = select("Please select a story to estimate it", table)
156
+ end
157
+
158
+ estimation ||= ask("How many points you estimate for it? (#{@project.point_scale})")
100
159
  result = @client.estimate_task(@project, task, estimation)
101
160
  if result.errors.any?
102
161
  error(result.errors.errors)
@@ -105,55 +164,64 @@ class PT::UI
105
164
  end
106
165
  end
107
166
 
108
- def start
109
- title("Tasks for #{user_s} in #{project_to_s}")
110
- tasks = @client.get_my_tasks_to_start(@project, @local_config[:user_name])
111
- table = PT::TasksTable.new(tasks)
112
- task = select("Please select a story to mark it as started", table)
113
- result = @client.mark_task_as(@project, task, 'started')
114
- if result.errors.any?
115
- error(result.errors.errors)
167
+ def start
168
+ if @params[0]
169
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
170
+ table = PT::TasksTable.new(tasks)
171
+ task = table[@params[0].to_i]
172
+ title("Starting '#{task.name}'")
116
173
  else
117
- congrats("Task started, go for it!")
174
+ tasks = @client.get_my_tasks_to_start(@project, @local_config[:user_name])
175
+ table = PT::TasksTable.new(tasks)
176
+ title("Tasks for #{user_s} in #{project_to_s}")
177
+ task = select("Please select a story to mark it as started", table)
118
178
  end
179
+ start_task task
119
180
  end
120
181
 
121
182
  def finish
122
- title("Tasks for #{user_s} in #{project_to_s}")
123
- tasks = @client.get_my_tasks_to_finish(@project, @local_config[:user_name])
124
- table = PT::TasksTable.new(tasks)
125
- task = select("Please select a story to mark it as finished", table)
126
- if task.story_type == 'chore'
127
- result = @client.mark_task_as(@project, task, 'accepted')
128
- else
129
- result = @client.mark_task_as(@project, task, 'finished')
130
- end
131
- if result.errors.any?
132
- error(result.errors.errors)
183
+ if @params[0]
184
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
185
+ table = PT::TasksTable.new(tasks)
186
+ task = table[@params[0].to_i]
187
+ title("Finishing '#{task.name}'")
133
188
  else
134
- congrats("Another task bites the dust, yeah!")
189
+ tasks = @client.get_my_tasks_to_finish(@project, @local_config[:user_name])
190
+ table = PT::TasksTable.new(tasks)
191
+ title("Tasks for #{user_s} in #{project_to_s}")
192
+ task = select("Please select a story to mark it as finished", table)
135
193
  end
194
+ finish_task task
136
195
  end
137
196
 
138
197
  def deliver
139
- title("Tasks for #{user_s} in #{project_to_s}")
140
- tasks = @client.get_my_tasks_to_deliver(@project, @local_config[:user_name])
141
- table = PT::TasksTable.new(tasks)
142
- task = select("Please select a story to mark it as delivered", table)
143
- result = @client.mark_task_as(@project, task, 'delivered')
144
- error(result.errors.errors) if result.errors.any?
145
- if result.errors.any?
146
- error(result.errors.errors)
198
+ if @params[0]
199
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
200
+ table = PT::TasksTable.new(tasks)
201
+ task = table[@params[0].to_i]
202
+ title("Delivering '#{task.name}'")
147
203
  else
148
- congrats("Task delivered, congrats!")
204
+ tasks = @client.get_my_tasks_to_deliver(@project, @local_config[:user_name])
205
+ table = PT::TasksTable.new(tasks)
206
+ title("Tasks for #{user_s} in #{project_to_s}")
207
+ task = select("Please select a story to mark it as delivered", table)
149
208
  end
209
+
210
+ deliver_task task
150
211
  end
151
212
 
152
213
  def accept
153
- title("Tasks for #{user_s} in #{project_to_s}")
154
- tasks = @client.get_my_tasks_to_accept(@project, @local_config[:user_name])
155
- table = PT::TasksTable.new(tasks)
156
- task = select("Please select a story to mark it as accepted", table)
214
+ if @params[0]
215
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
216
+ table = PT::TasksTable.new(tasks)
217
+ task = table[@params[0].to_i]
218
+ title("Accepting '#{task.name}'")
219
+ else
220
+ tasks = @client.get_my_tasks_to_accept(@project, @local_config[:user_name])
221
+ table = PT::TasksTable.new(tasks)
222
+ title("Tasks for #{user_s} in #{project_to_s}")
223
+ task = select("Please select a story to mark it as accepted", table)
224
+ end
157
225
  result = @client.mark_task_as(@project, task, 'accepted')
158
226
  if result.errors.any?
159
227
  error(result.errors.errors)
@@ -166,16 +234,35 @@ class PT::UI
166
234
  title("Tasks for #{user_s} in #{project_to_s}")
167
235
  tasks = @client.get_my_work(@project, @local_config[:user_name])
168
236
  table = PT::TasksTable.new(tasks)
169
- task = select("Please select a story to show", table)
237
+ if @params[0]
238
+ task = table[@params[0].to_i]
239
+ else
240
+ task = select("Please select a story to show", table)
241
+ end
242
+
170
243
  result = show_task(task)
171
244
  end
172
245
 
173
246
  def reject
174
247
  title("Tasks for #{user_s} in #{project_to_s}")
175
- tasks = @client.get_my_tasks_to_reject(@project, @local_config[:user_name])
176
- table = PT::TasksTable.new(tasks)
177
- task = select("Please select a story to mark it as rejected", table)
178
- comment = ask("Please explain why are you rejecting the task")
248
+ if @params[0]
249
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
250
+ table = PT::TasksTable.new(tasks)
251
+ task = table[@params[0].to_i]
252
+ title("Rejecting '#{task.name}'")
253
+ else
254
+ tasks = @client.get_my_tasks_to_reject(@project, @local_config[:user_name])
255
+ table = PT::TasksTable.new(tasks)
256
+ title("Tasks for #{user_s} in #{project_to_s}")
257
+ task = select("Please select a story to mark it as rejected", table)
258
+ end
259
+
260
+ if @params[1]
261
+ comment = @params[1]
262
+ else
263
+ comment = ask("Please explain why are you rejecting the task")
264
+ end
265
+
179
266
  if @client.comment_task(@project, task, comment)
180
267
  result = @client.mark_task_as(@project, task, 'rejected')
181
268
  congrats("Task rejected, thanks!")
@@ -184,6 +271,130 @@ class PT::UI
184
271
  end
185
272
  end
186
273
 
274
+ def done
275
+ if @params[0]
276
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
277
+ table = PT::TasksTable.new(tasks)
278
+ task = table[@params[0].to_i]
279
+
280
+ #we need this for finding again later
281
+ task_id = task.id
282
+
283
+ if !@params[1] && task.estimate == -1
284
+ error("You need to give an estimate for this task")
285
+ return
286
+ end
287
+
288
+ if @params[1] && task.estimate == -1
289
+ if [0,1,2,3].include? @params[1].to_i
290
+ estimate_task(task, @params[1].to_i)
291
+ end
292
+ end
293
+
294
+ task = find_my_task_by_task_id task_id
295
+ start_task task
296
+
297
+ task = find_my_task_by_task_id task_id
298
+ finish_task task
299
+
300
+ task = find_my_task_by_task_id task_id
301
+ deliver_task task
302
+ end
303
+ end
304
+
305
+ def estimate_task task, difficulty
306
+ result = @client.estimate_task(@project, task, difficulty)
307
+ if result.errors.any?
308
+ error(result.errors.errors)
309
+ else
310
+ congrats("Task estimated, thanks!")
311
+ end
312
+ end
313
+
314
+ def start_task task
315
+ result = @client.mark_task_as(@project, task, 'started')
316
+ if result.errors.any?
317
+ error(result.errors.errors)
318
+ else
319
+ congrats("Task started, go for it!")
320
+ end
321
+ end
322
+
323
+ def finish_task task
324
+ if task.story_type == 'chore'
325
+ result = @client.mark_task_as(@project, task, 'accepted')
326
+ else
327
+ result = @client.mark_task_as(@project, task, 'finished')
328
+ end
329
+ if result.errors.any?
330
+ error(result.errors.errors)
331
+ else
332
+ congrats("Another task bites the dust, yeah!")
333
+ end
334
+ end
335
+
336
+ def deliver_task task
337
+ return if task.story_type == 'chore'
338
+
339
+ result = @client.mark_task_as(@project, task, 'delivered')
340
+ error(result.errors.errors) if result.errors.any?
341
+ if result.errors.any?
342
+ error(result.errors.errors)
343
+ else
344
+ congrats("Task delivered, congrats!")
345
+ end
346
+ end
347
+
348
+ def find
349
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
350
+ if @params[0]
351
+ tasks.each do | task |
352
+ if (task.name.downcase.index @params[0]) && (task.current_state != 'delivered')
353
+ title("--- [#{(tasks.index task) + 1 }] -----------------")
354
+ show_task(task)
355
+ end
356
+ end
357
+ else
358
+ message("You need to provide a substring for a tasks title.")
359
+ end
360
+ end
361
+
362
+ def updates
363
+ activities = @client.get_activities(@project)
364
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
365
+ title("Recent Activity on #{project_to_s}")
366
+ activities.each do |activity|
367
+ show_activity(activity, tasks)
368
+ end
369
+ end
370
+
371
+
372
+ def help
373
+ if ARGV[0]
374
+ message("Command #{ARGV[0]} not recognized. Showing help.")
375
+ end
376
+
377
+ title("Command line usage")
378
+ message("pt # show all available tasks")
379
+ message("pt create [title] ~[owner] ~[type] # create a new task")
380
+ message("pt show [id] # shows detailed info about a task")
381
+ message("pt open [id] # open a task in the browser")
382
+ message("pt assign [id] [member] # assign owner")
383
+ message("pt comment [id] [comment] # add a comment")
384
+ message("pt estimate [id] [0-3] # estimate a task in points scale")
385
+ message("pt start [id] # mark a task as started")
386
+ message("pt finish [id] # indicate you've finished a task")
387
+ message("pt deliver [id] # indicate the task is delivered");
388
+ message("pt accept [id] # mark a task as accepted")
389
+ message("pt reject [id] [reason] # mark a task as rejected, explaining why")
390
+ message("pt find [query] # looks in your tasks by title and presents it")
391
+ message("pt done [id] ~[0-3] # lazy mans finish task, does everything")
392
+ message("pt list [member] # list all tasks for another pt user")
393
+ message("pt updates # show recent activity from your current project")
394
+ message("")
395
+ message("All commands can be ran without arguments for a wizard like UI.")
396
+ end
397
+
187
398
  protected
188
399
 
189
400
  def commands
@@ -295,10 +506,6 @@ class PT::UI
295
506
  @io.ask("#{msg.bold}"){ |q| q.echo = '*' }
296
507
  end
297
508
 
298
- def help(command)
299
- error "Command <#{command}> unknown.", "Available commands:" + commands.map{ |c| "\n- #{c}" }.join
300
- end
301
-
302
509
  def user_s
303
510
  "#{@local_config[:user_name]} (#{@local_config[:user_initials]})"
304
511
  end
@@ -306,7 +513,36 @@ class PT::UI
306
513
  def project_to_s
307
514
  "Project #{@local_config[:project_name].upcase}"
308
515
  end
516
+
517
+ def find_task query
518
+ members = @client.get_members(@project)
519
+ members.each do | member |
520
+ if member.name.downcase.index query
521
+ return member.name
522
+ end
523
+ end
524
+ nil
525
+ end
526
+
527
+ def find_my_task_by_task_id task_id
528
+ tasks = @client.get_my_work(@project, @local_config[:user_name])
529
+ tasks.each do |task|
530
+ if task.id == task_id
531
+ return task
532
+ end
533
+ end
534
+ end
309
535
 
536
+ def find_owner query
537
+ members = @client.get_members(@project)
538
+ members.each do | member |
539
+ if member.name.downcase.index query
540
+ return member
541
+ end
542
+ end
543
+ nil
544
+ end
545
+
310
546
  def show_task(task)
311
547
  title task.name
312
548
  estimation = [-1, nil].include?(task.estimate) ? "Unestimated" : "#{task.estimate} points"
@@ -316,5 +552,16 @@ class PT::UI
316
552
  task.notes.all.each{ |n| message "#{n.author}: \"#{n.text}\"" }
317
553
  task.attachments.each{ |a| message "#{a.uploaded_by} uploaded: \"#{a.description.empty? ? "#{a.filename}" : "#{a.description} (#{a.filename})" }\" #{a.url}" }
318
554
  end
319
-
555
+
556
+ def show_activity(activity, tasks)
557
+ story_id = activity.stories.first.id
558
+ task_id = nil
559
+ tasks.each do |story|
560
+ if story_id == story.id
561
+ task_id = tasks.index(story)
562
+ end
563
+ end
564
+ message("#{activity.description} [#{task_id}]")
565
+ end
566
+
320
567
  end
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pt
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 1
4
5
  prerelease:
5
- version: 0.3.9
6
+ segments:
7
+ - 0
8
+ - 5
9
+ version: "0.5"
6
10
  platform: ruby
7
11
  authors:
8
12
  - Raul Murciano
@@ -10,7 +14,8 @@ autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
- date: 2011-08-13 00:00:00 Z
17
+ date: 2011-12-25 00:00:00 +01:00
18
+ default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: pivotal-tracker
@@ -20,7 +25,12 @@ dependencies:
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
23
- version: 0.3.1
28
+ hash: 13
29
+ segments:
30
+ - 0
31
+ - 4
32
+ - 1
33
+ version: 0.4.1
24
34
  type: :runtime
25
35
  version_requirements: *id001
26
36
  - !ruby/object:Gem::Dependency
@@ -31,6 +41,11 @@ dependencies:
31
41
  requirements:
32
42
  - - ">="
33
43
  - !ruby/object:Gem::Version
44
+ hash: 5
45
+ segments:
46
+ - 0
47
+ - 4
48
+ - 5
34
49
  version: 0.4.5
35
50
  type: :runtime
36
51
  version_requirements: *id002
@@ -42,6 +57,10 @@ dependencies:
42
57
  requirements:
43
58
  - - ">="
44
59
  - !ruby/object:Gem::Version
60
+ hash: 11
61
+ segments:
62
+ - 1
63
+ - 2
45
64
  version: "1.2"
46
65
  type: :runtime
47
66
  version_requirements: *id003
@@ -53,6 +72,11 @@ dependencies:
53
72
  requirements:
54
73
  - - ">="
55
74
  - !ruby/object:Gem::Version
75
+ hash: 13
76
+ segments:
77
+ - 1
78
+ - 6
79
+ - 1
56
80
  version: 1.6.1
57
81
  type: :runtime
58
82
  version_requirements: *id004
@@ -78,6 +102,7 @@ files:
78
102
  - LICENSE
79
103
  - README.md
80
104
  - bin/pt
105
+ has_rdoc: true
81
106
  homepage: http://www.github.com/raul/pt
82
107
  licenses: []
83
108
 
@@ -91,17 +116,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
116
  requirements:
92
117
  - - ">="
93
118
  - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
94
122
  version: "0"
95
123
  required_rubygems_version: !ruby/object:Gem::Requirement
96
124
  none: false
97
125
  requirements:
98
126
  - - ">="
99
127
  - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
100
131
  version: "0"
101
132
  requirements: []
102
133
 
103
134
  rubyforge_project: pt
104
- rubygems_version: 1.8.8
135
+ rubygems_version: 1.5.2
105
136
  signing_key:
106
137
  specification_version: 3
107
138
  summary: Client to use Pivotal Tracker from the console.