fogbugz 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+
4
6
  dispatch_subcommand __FILE__,
5
7
  :areas => 'List active areas.',
6
8
  :assign => 'Assign a case.',
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listAreas').elements.each('/response/areas/area') do |area|
6
9
  puts format("%-20.20s %-20.20s %s\n",
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options] <case> <assignee>", 2
5
8
  do_api('assign', :ixBug => ARGV[0], :sPersonAssignedTo => ARGV[1])
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listCategories').elements.each('/response/categories/category') do |c|
6
9
  puts c.elements['sCategory'].text
@@ -1,55 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'fogbugz/common'
2
3
 
3
- require 'rubygems'
4
- require 'net/https'
5
- require 'uri'
6
- require 'rexml/document'
7
- require 'optparse'
4
+ check_api_url
5
+ check_api_token
8
6
 
9
- api_url = ENV['FOGBUGZ_API_URL']
10
- unless api_url
11
- puts "Environment variable FOGBUGZ_API_URL must be set."
12
- exit 1
13
- end
7
+ parse_opts "usage: #{File::basename(__FILE__)} [options] <case>", 1
14
8
 
15
- api_token = ENV['FOGBUGZ_API_TOKEN']
16
- unless api_token
17
- puts "Environment variable FOGBUGZ_API_TOKEN must be set."
18
- exit 1
19
- end
20
-
21
- options = {}
22
- optparse = OptionParser.new do |opts|
23
- opts.banner = "usage: #{File::basename(__FILE__)} [options] <case>"
24
-
25
- opts.on_tail('-h', '--help') do
26
- puts optparse.help
27
- exit 1
28
- end
29
- end
30
- optparse.parse!
31
-
32
- unless ARGV.length == 1
33
- puts optparse.help
34
- exit 1
35
- end
36
-
37
- uri = URI format("#{api_url}?cmd=close&token=%s&ixBug=%s",
38
- URI.escape(api_token), URI.escape(ARGV[0]))
39
- http = Net::HTTP.new(uri.host, uri.port)
40
- if uri.scheme == 'https'
41
- http.use_ssl = true
42
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
43
- end
44
- response = http.start { |h| h.request Net::HTTP::Get.new(uri.request_uri) }
45
- if response.code != '200'
46
- puts "HTTP request to #{api_url} failed with code #{response.code}."
47
- exit 1
48
- end
49
-
50
- result = REXML::Document.new(response.body)
51
- error = result.elements['/response/error']
52
- if error
53
- puts "Failed with error: #{error.text}."
54
- exit 1
55
- end
9
+ do_api('close', { :ixBug => ARGV[0] })
@@ -1,10 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
- options = parse_stdin_opts "usage: #{File::basename(__FILE__)} [options] <case> [-]", 1
4
+ check_api_url
5
+ check_api_token
6
+
7
+ options =
8
+ parse_stdin_opts "usage: #{File::basename(__FILE__)} [options] <case> [-]", 1
5
9
 
6
10
  result = do_api('search', :max => 1, :q => ARGV[0],
7
- :cols => 'ixBug,ixBugParent,tags,sTitle,sProject,sArea,sFixFor,sCategory,sPersonAssignedTo,sPriority,hrsCurrEst,dtDue,events')
11
+ :cols => 'ixBug,ixBugParent,tags,sTitle,sProject,sArea,' +
12
+ 'sFixFor,sCategory,sPersonAssignedTo,sPriority,' +
13
+ 'hrsCurrEst,dtDue,events')
8
14
  bug = result.elements["/response/cases/case[@ixBug='#{ARGV[0]}']"]
9
15
  unless bug
10
16
  puts "Case #{ARGV[0]} does not exist."
@@ -15,7 +21,8 @@ template = "# Fill in metadata for the case.\n"
15
21
  template << maybe_append('title', bug.elements['sTitle'])
16
22
  template << maybe_append('assignee', bug.elements['sPersonAssignedTo'])
17
23
  template << maybe_append('parent', bug.elements['ixBugParent'])
18
- template << maybe_array('tags', bug.elements.collect('tags/tag') { |t| t.text })
24
+ template << maybe_array('tags',
25
+ bug.elements.collect('tags/tag') { |t| t.text })
19
26
  template << maybe_append('project', bug.elements['sProject'])
20
27
  template << maybe_append('area', bug.elements['sArea'])
21
28
  template << maybe_append('milestone', bug.elements['sFixFor'])
@@ -26,7 +33,8 @@ template << maybe_append('estimate', bug.elements['hrsCurrEst'])
26
33
 
27
34
  template << "\n"
28
35
  bug.elements.each('events/event') do |event|
29
- template << maybe_event(event.elements['evtDescription'], event.elements['dt'])
36
+ template << maybe_event(event.elements['evtDescription'],
37
+ event.elements['dt'])
30
38
  template << maybe_literal(event.elements['sChanges'])
31
39
  template << maybe_literal(event.elements['s'])
32
40
  template << "\n"
@@ -1,38 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'fogbugz/common'
2
3
 
3
- require 'rubygems'
4
- require 'net/https'
5
- require 'uri'
6
- require 'rexml/document'
7
- require 'optparse'
4
+ check_api_url
5
+ check_api_token
8
6
 
9
7
  api_url = ENV['FOGBUGZ_API_URL']
10
- unless api_url
11
- puts "Environment variable FOGBUGZ_API_URL must be set."
12
- exit 1
13
- end
14
-
15
8
  api_token = ENV['FOGBUGZ_API_TOKEN']
16
- unless api_token
17
- puts "Environment variable FOGBUGZ_API_TOKEN must be set."
18
- exit 1
19
- end
20
9
 
21
- options = {}
22
- optparse = OptionParser.new do |opts|
23
- opts.banner = "usage: #{File::basename(__FILE__)} [options] <filter>"
24
-
25
- opts.on_tail('-h', '--help') do
26
- puts optparse.help
27
- exit 1
28
- end
29
- end
30
- optparse.parse!
31
-
32
- unless ARGV.length == 1
33
- puts optparse.help
34
- exit 1
35
- end
10
+ parse_opts "usage: #{File::basename(__FILE__)} [options] <filter>", 1
36
11
 
37
12
  uri = URI format("#{api_url}?cmd=listFilters&token=%s", URI.escape(api_token))
38
13
  http = Net::HTTP.new(uri.host, uri.port)
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listFilters').elements.each('/response/filters/filter') do |f|
6
9
  if f.attributes['status'] == 'current'
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  options = {}
5
8
  optparse = OptionParser.new do |opts|
6
9
  opts.banner = "usage: #{File::basename(__FILE__)} [options] [query]"
@@ -24,7 +27,8 @@ end
24
27
  params = {}
25
28
  params[:max] = options[:max] if options[:max]
26
29
  params[:q] = ARGV[0] if ARGV.length == 1
27
- params[:cols] = 'ixBug,sPersonAssignedTo,sFixFor,sStatus,dtDue,sTitle,dtDue,plugin_projectbacklog_at_fogcreek_com_ibacklog'
30
+ params[:cols] = 'ixBug,sPersonAssignedTo,sFixFor,sStatus,dtDue,sTitle,' +
31
+ 'dtDue,plugin_projectbacklog_at_fogcreek_com_ibacklog'
28
32
 
29
33
  result = do_api('search', params)
30
34
 
@@ -59,6 +63,7 @@ result.elements.to_a('/response/cases/case').sort { |a,b|
59
63
  ''
60
64
  end,
61
65
  time_short_string(bug.elements['dtDue'].text),
62
- bug.elements['plugin_projectbacklog_at_fogcreek_com_ibacklog'].text,
66
+ bug.elements['plugin_projectbacklog_at_' +
67
+ 'fogcreek_com_ibacklog'].text,
63
68
  bug.elements['sTitle'].text).strip!
64
69
  end
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  options = {}
5
8
  optparse = OptionParser.new do |opts|
6
9
  opts.banner = "usage: #{File::basename(__FILE__)} [options] <email>"
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api 'logoff'
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listFixFors').elements.each('/response/fixfors/fixfor') do |m|
6
9
  puts format("%-30.30s %-16.16s %s\n",
@@ -1,7 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
- options = parse_stdin_opts "usage: #{File::basename(__FILE__)} [options] [-]", 0
4
+ check_api_url
5
+ check_api_token
6
+
7
+ options =
8
+ parse_stdin_opts "usage: #{File::basename(__FILE__)} [options] [-]", 0
5
9
 
6
10
  data = get_editor_content options, <<HERE
7
11
  # Fill in metadata for the case.
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listPeople').elements.each('/response/people/person') do |p|
6
9
  puts format("%-30.30s %s\n",
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listPriorities').elements.each('/response/priorities/priority') do |p|
6
9
  puts p.elements['sPriority'].text
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api('listProjects').elements.each('/response/projects/project') do |p|
6
9
  puts format("%-20.20s %s\n",
@@ -1,55 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'fogbugz/common'
2
3
 
3
- require 'rubygems'
4
- require 'net/https'
5
- require 'uri'
6
- require 'rexml/document'
7
- require 'optparse'
4
+ check_api_url
5
+ check_api_token
8
6
 
9
- api_url = ENV['FOGBUGZ_API_URL']
10
- unless api_url
11
- puts "Environment variable FOGBUGZ_API_URL must be set."
12
- exit 1
13
- end
7
+ parse_opts "usage: #{File::basename(__FILE__)} [options] <case>", 1
14
8
 
15
- api_token = ENV['FOGBUGZ_API_TOKEN']
16
- unless api_token
17
- puts "Environment variable FOGBUGZ_API_TOKEN must be set."
18
- exit 1
19
- end
20
-
21
- options = {}
22
- optparse = OptionParser.new do |opts|
23
- opts.banner = "usage: #{File::basename(__FILE__)} [options] <case>"
24
-
25
- opts.on_tail('-h', '--help') do
26
- puts optparse.help
27
- exit 1
28
- end
29
- end
30
- optparse.parse!
31
-
32
- unless ARGV.length == 1
33
- puts optparse.help
34
- exit 1
35
- end
36
-
37
- uri = URI format("#{api_url}?cmd=reactivate&token=%s&ixBug=%s",
38
- URI.escape(api_token), URI.escape(ARGV[0]))
39
- http = Net::HTTP.new(uri.host, uri.port)
40
- if uri.scheme == 'https'
41
- http.use_ssl = true
42
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
43
- end
44
- response = http.start { |h| h.request Net::HTTP::Get.new(uri.request_uri) }
45
- if response.code != '200'
46
- puts "HTTP request to #{api_url} failed with code #{response.code}."
47
- exit 1
48
- end
49
-
50
- result = REXML::Document.new(response.body)
51
- error = result.elements['/response/error']
52
- if error
53
- puts "Failed with error: #{error.text}."
54
- exit 1
55
- end
9
+ do_api('reactivate', { :ixBug => ARGV[0] })
@@ -1,55 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'fogbugz/common'
2
3
 
3
- require 'rubygems'
4
- require 'net/https'
5
- require 'uri'
6
- require 'rexml/document'
7
- require 'optparse'
4
+ check_api_url
5
+ check_api_token
8
6
 
9
- api_url = ENV['FOGBUGZ_API_URL']
10
- unless api_url
11
- puts "Environment variable FOGBUGZ_API_URL must be set."
12
- exit 1
13
- end
7
+ parse_opts "usage: #{File::basename(__FILE__)} [options] <case>", 1
14
8
 
15
- api_token = ENV['FOGBUGZ_API_TOKEN']
16
- unless api_token
17
- puts "Environment variable FOGBUGZ_API_TOKEN must be set."
18
- exit 1
19
- end
20
-
21
- options = {}
22
- optparse = OptionParser.new do |opts|
23
- opts.banner = "usage: #{File::basename(__FILE__)} [options] <case>"
24
-
25
- opts.on_tail('-h', '--help') do
26
- puts optparse.help
27
- exit 1
28
- end
29
- end
30
- optparse.parse!
31
-
32
- unless ARGV.length == 1
33
- puts optparse.help
34
- exit 1
35
- end
36
-
37
- uri = URI format("#{api_url}?cmd=reopen&token=%s&ixBug=%s",
38
- URI.escape(api_token), URI.escape(ARGV[0]))
39
- http = Net::HTTP.new(uri.host, uri.port)
40
- if uri.scheme == 'https'
41
- http.use_ssl = true
42
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
43
- end
44
- response = http.start { |h| h.request Net::HTTP::Get.new(uri.request_uri) }
45
- if response.code != '200'
46
- puts "HTTP request to #{api_url} failed with code #{response.code}."
47
- exit 1
48
- end
49
-
50
- result = REXML::Document.new(response.body)
51
- error = result.elements['/response/error']
52
- if error
53
- puts "Failed with error: #{error.text}."
54
- exit 1
55
- end
9
+ do_api('reopen', { :ixBug => ARGV[0] })
@@ -1,15 +1,70 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
- parse_opts "usage: #{File::basename(__FILE__)} [options] <case> <status>", 2
4
+ check_api_url
5
+ check_api_token
5
6
 
6
- result = do_api 'listStatuses', :fResolved => '1'
7
- status = result.elements["/response/statuses/status[sStatus='#{ARGV[1]}']"]
7
+ options =
8
+ parse_stdin_opts("usage: #{File::basename(__FILE__)} [options] <case> " +
9
+ "<status> [-]", 2)
8
10
 
11
+ result = do_api 'listStatuses', :fResolved => '1'
12
+ status = result.elements["/response/statuses/status[sStatus=\"#{ARGV[1]}\"]"]
9
13
  unless status
10
14
  puts "#{ARGV[1]} is not a resolved status."
11
15
  exit 1
12
16
  end
13
17
 
14
- do_api('resolve', :ixBug => ARGV[0],
15
- :ixStatus => status.elements['ixStatus'].text)
18
+ result = do_api('search', :max => 1, :q => ARGV[0],
19
+ :cols => 'ixBug,ixBugParent,tags,sTitle,sStatus,sProject,' +
20
+ 'sArea,sFixFor,sCategory,sPersonAssignedTo,' +
21
+ 'sPriority,hrsCurrEst,dtDue,events')
22
+ bug = result.elements["/response/cases/case[@ixBug='#{ARGV[0]}']"]
23
+ unless bug
24
+ puts "Case #{ARGV[0]} does not exist."
25
+ exit 1
26
+ end
27
+
28
+ template = "# Fill in metadata for the case.\n"
29
+ template << maybe_append('title', bug.elements['sTitle'])
30
+ template << maybe_append('assignee', bug.elements['sPersonAssignedTo'])
31
+ template << maybe_append('parent', bug.elements['ixBugParent'])
32
+ template << maybe_array('tags',
33
+ bug.elements.collect('tags/tag') { |t| t.text })
34
+ template << maybe_append('project', bug.elements['sProject'])
35
+ template << maybe_append('area', bug.elements['sArea'])
36
+ template << maybe_append('milestone', bug.elements['sFixFor'])
37
+ template << maybe_append('category', bug.elements['sCategory'])
38
+ template << maybe_append('priority', bug.elements['sPriority'])
39
+ template << maybe_time('due', bug.elements['dtDue'])
40
+ template << maybe_append('estimate', bug.elements['hrsCurrEst'])
41
+
42
+ template << "\n"
43
+ bug.elements.each('events/event') do |event|
44
+ template << maybe_event(event.elements['evtDescription'],
45
+ event.elements['dt'])
46
+ template << maybe_literal(event.elements['sChanges'])
47
+ template << maybe_literal(event.elements['s'])
48
+ template << "\n"
49
+ end
50
+ template << <<HERE
51
+ # Enter an additional note for the case after the dashes.
52
+ ---
53
+ HERE
54
+ data = get_editor_content options, template
55
+
56
+ params = { :ixBug => ARGV[0], :ixStatus => status.elements['ixStatus'].text }
57
+ params[:sTitle] = data['title'] if data['title']
58
+ params[:ixBugParent] = data['parent'] if data['parent']
59
+ params[:sTags] = data['tags'].join(',') if data['tags']
60
+ params[:sProject] = data['project'] if data['project']
61
+ params[:sArea] = data['area'] if data['area']
62
+ params[:sFixFor] = data['milestone'] if data['milestone']
63
+ params[:sCategory] = data['category'] if data['category']
64
+ params[:sPersonAssignedTo] = data['assignee'] if data['assignee']
65
+ params[:sPriority] = data['priority'] if data['priority']
66
+ params[:dtDue] = parse_time(data['due']) if parse_time(data['due'])
67
+ params[:hrsCurrEst] = data['estimate'] if data['estimate']
68
+ params[:sEvent] = data['body'] if data['body']
69
+
70
+ do_api('resolve', params)
@@ -1,10 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  options = parse_opts "usage: #{File::basename(__FILE__)} [options] <case>", 1
5
8
 
6
9
  result = do_api('search', :max => 1, :q => ARGV[0],
7
- :cols => 'ixBug,ixBugParent,tags,sTitle,sProject,sArea,sFixFor,sCategory,sPersonAssignedTo,sPriority,hrsCurrEst,dtDue,events')
10
+ :cols => 'ixBug,ixBugParent,tags,sTitle,sProject,sArea,' +
11
+ 'sFixFor,sCategory,sPersonAssignedTo,sPriority,' +
12
+ 'hrsCurrEst,dtDue,events')
8
13
 
9
14
  bug = result.elements["/response/cases/case[@ixBug='#{ARGV[0]}']"]
10
15
  unless bug
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options] <case>", 1
5
8
  do_api 'startWork', :ixBug => ARGV[0]
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  options = {}
5
8
  optparse = OptionParser.new do |opts|
6
9
  opts.banner = "usage: #{File::basename(__FILE__)} [options]"
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fogbugz/common'
3
3
 
4
+ check_api_url
5
+ check_api_token
6
+
4
7
  parse_opts "usage: #{File::basename(__FILE__)} [options]", 0
5
8
  do_api 'stopWork'
@@ -23,14 +23,18 @@ def y; HighLine.use_color? ? HighLine::YELLOW : ''; end
23
23
  def m; HighLine.use_color? ? HighLine::MAGENTA : ''; end
24
24
  def c; HighLine.use_color? ? HighLine::CLEAR : ''; end
25
25
 
26
- unless ENV['FOGBUGZ_API_URL']
27
- puts "Environment variable FOGBUGZ_API_URL must be set."
28
- exit 1
26
+ def check_api_url
27
+ unless ENV['FOGBUGZ_API_URL']
28
+ puts "Environment variable FOGBUGZ_API_URL must be set."
29
+ exit 1
30
+ end
29
31
  end
30
32
 
31
- unless ENV['FOGBUGZ_API_TOKEN']
32
- puts "Environment variable FOGBUGZ_API_TOKEN must be set."
33
- exit 1
33
+ def check_api_token
34
+ unless ENV['FOGBUGZ_API_TOKEN']
35
+ puts "Environment variable FOGBUGZ_API_TOKEN must be set."
36
+ exit 1
37
+ end
34
38
  end
35
39
 
36
40
  def parse_opts(usage, num_args)
@@ -64,13 +68,15 @@ def parse_stdin_opts(usage, num_args)
64
68
 
65
69
  options[:file] = nil
66
70
  opts.on('--file=<file>',
67
- 'Take the case content from the given file. Use - to read from STDIN.') do |file|
71
+ 'Take the case content from the given file. Use - to read from ' +
72
+ 'STDIN.') do |file|
68
73
  options[:file] = file
69
74
  end
70
75
 
71
76
  options[:template] = nil
72
77
  opts.on('--template=<template>',
73
- 'Use the file content or - for STDIN as the initial case content.') do |template|
78
+ 'Use the file content or - for STDIN as the initial case ' +
79
+ 'content.') do |template|
74
80
  options[:template] = template
75
81
  end
76
82
  end
@@ -363,6 +369,9 @@ HERE
363
369
  elsif ARGV[0] and which("#{basename}-#{ARGV[0]}")
364
370
  command = which("#{basename}-#{ARGV.shift}")
365
371
  Process.wait(Process.fork { Process.exec(command, *ARGV) })
372
+ elsif ARGV[0].to_i.to_s == ARGV[0]
373
+ load "#{absolute}-show"
374
+ exit 0
366
375
  else
367
376
  puts usage
368
377
  exit 1
metadata CHANGED
@@ -1,49 +1,53 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: fogbugz
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 4
9
- version: 1.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Erik Charlebois
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-05-29 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-11-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: highline
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- version: "0"
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
30
22
  type: :runtime
31
- version_requirements: *id001
32
- - !ruby/object:Gem::Dependency
33
- name: chronic
34
23
  prerelease: false
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
- version: "0"
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: chronic
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
42
38
  type: :runtime
43
- version_requirements: *id002
44
- description: A command line interface to FogBugz.
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: ! 'This gem provides command line programs for manipulating FogBugz.
47
+
48
+ '
45
49
  email: erikcharlebois@gmail.com
46
- executables:
50
+ executables:
47
51
  - fogbugz
48
52
  - fogbugz-areas
49
53
  - fogbugz-assign
@@ -68,40 +72,55 @@ executables:
68
72
  - fogbugz-statuses
69
73
  - fogbugz-stop
70
74
  extensions: []
71
-
72
75
  extra_rdoc_files: []
73
-
74
- files:
76
+ files:
75
77
  - lib/fogbugz/common.rb
76
- has_rdoc: true
78
+ - bin/fogbugz
79
+ - bin/fogbugz-areas
80
+ - bin/fogbugz-assign
81
+ - bin/fogbugz-categories
82
+ - bin/fogbugz-close
83
+ - bin/fogbugz-edit
84
+ - bin/fogbugz-filter
85
+ - bin/fogbugz-filters
86
+ - bin/fogbugz-list
87
+ - bin/fogbugz-login
88
+ - bin/fogbugz-logoff
89
+ - bin/fogbugz-milestones
90
+ - bin/fogbugz-open
91
+ - bin/fogbugz-people
92
+ - bin/fogbugz-priorities
93
+ - bin/fogbugz-projects
94
+ - bin/fogbugz-reactivate
95
+ - bin/fogbugz-reopen
96
+ - bin/fogbugz-resolve
97
+ - bin/fogbugz-show
98
+ - bin/fogbugz-start
99
+ - bin/fogbugz-statuses
100
+ - bin/fogbugz-stop
77
101
  homepage: https://github.com/erikcharlebois/fogbugz
78
- licenses:
102
+ licenses:
79
103
  - BSD
80
104
  post_install_message:
81
105
  rdoc_options: []
82
-
83
- require_paths:
106
+ require_paths:
84
107
  - lib
85
- required_ruby_version: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- segments:
90
- - 0
91
- version: "0"
92
- required_rubygems_version: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- segments:
97
- - 0
98
- version: "0"
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
99
120
  requirements: []
100
-
101
121
  rubyforge_project: nowarning
102
- rubygems_version: 1.3.6
122
+ rubygems_version: 1.8.24
103
123
  signing_key:
104
124
  specification_version: 3
105
125
  summary: A command line interface to FogBugz.
106
126
  test_files: []
107
-