fogbugz 1.0.4 → 1.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.
@@ -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
-