bugzyrb 0.3.4 → 0.3.6

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/NOTES ADDED
@@ -0,0 +1,89 @@
1
+
2
+ Subject: version and others
3
+ ---------------------------
4
+ Date: 2010-07-03 11:36
5
+
6
+ Wondering if we shoud add fields such as:
7
+
8
+ * version (of software)
9
+ * environment
10
+ * estimated time
11
+ * actual time
12
+
13
+ Version can be put as a tag. Can add estimate time, though.
14
+
15
+ * * * * * * * *
16
+
17
+ Subject: project and component
18
+ ------------------------------
19
+ Date: 2010-07-03 11:40
20
+
21
+ Should we keep project and component as a tag or as a separate field
22
+ altogether ?
23
+
24
+ I am assuming each file is for a project, so its not a global database.
25
+ Thus component can be thought of. However, if someone chooses just one
26
+ database, then we need to make it easy to work at project level.
27
+ Perhaps, env variable.
28
+
29
+ * * * * * * * *
30
+
31
+ Subject: project component version
32
+ ----------------------------------
33
+ Date: 2010-07-06 20:14
34
+
35
+ set $use_project in cfg file
36
+ same for $component or version.
37
+ If true, then I will prompt for it in "add" operation.
38
+
39
+ valid_xx allows me to validate.
40
+ default_xx is default value used if no prompt
41
+ prompt_xx is if user to be prompted
42
+ - :freeform : allow any entry, if blank, use default
43
+ - :false : don't prompt, use default if present
44
+ - :choice : use valid_xx array to give choice to user
45
+ - true : uses choice if valid_xx prsent else freeform
46
+
47
+ user_input() takes care of deciding what to do.
48
+
49
+ * * * * * * * *
50
+
51
+ Subject: start date
52
+ -------------------
53
+ Date: 2010-07-07 19:55
54
+
55
+ currently start date goes as current time.
56
+
57
+ It's meant to be when you expect to start. (Later it can be updated with
58
+ actual start date.) Thus at bug creation, it should not really be
59
+ filled. Should we leave it blank and not put a default ?
60
+
61
+ * * * * * * * *
62
+
63
+ Subject: readline for old values
64
+ --------------------------------
65
+ Date: 2010-07-08 00:22
66
+
67
+ i am using readline for some input, so i can show earlier entered values
68
+ for that column. I am saving that to a file.
69
+ Should i put that in database ?
70
+ File one, will be usable in other cases, too, but currently it relies on
71
+ current directory, and could clutter up disk. I use one file per column.
72
+ I could use yaml and a hash.
73
+
74
+ I am only using in cases of freeform where i don't have a list, such as
75
+ version, project, component.
76
+
77
+ * * * * * * * *
78
+
79
+ Subject: New version of Sqlite3
80
+ -------------------------------
81
+ Date: 2011-09-21 19:50
82
+
83
+ Due to sqlite3 no longer supporting arrayfields, almost everything had
84
+ begun crashing. I've fixed things here. Still sometimes results_as_hash
85
+ or db_translation gives an error saying columns() not supported by Array
86
+ in its own code. So i am having to set these values in each command
87
+ individually. Its dirty.
88
+
89
+ * * * * * * * *
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.4
1
+ 0.3.6
data/bugzyrb.gemspec CHANGED
@@ -1,49 +1,46 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bugzyrb}
8
- s.version = "0.3.1"
8
+ s.version = "0.3.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Rahul Kumar"]
12
- s.date = %q{2010-09-12}
13
- s.default_executable = %q{bugzyrb}
11
+ s.authors = [%q{Rahul Kumar}]
12
+ s.date = %q{2011-10-06}
14
13
  s.description = %q{basic, easy-to-use command-line issue-tracker using sqlite for ruby 1.9}
15
14
  s.email = %q{sentinel1879@gmail.com}
16
- s.executables = ["bugzyrb"]
15
+ s.executables = [%q{bugzyrb}]
17
16
  s.extra_rdoc_files = [
18
17
  "LICENSE",
19
- "README.rdoc"
18
+ "README.rdoc"
20
19
  ]
21
20
  s.files = [
22
21
  ".document",
23
- ".gitignore",
24
- "CHANGELOG.rdoc",
25
- "LICENSE",
26
- "README.rdoc",
27
- "Rakefile",
28
- "VERSION",
29
- "bin/bugzyrb",
30
- "bugzy.cfg",
31
- "bugzyrb.gemspec",
32
- "lib/bugzyrb.rb",
33
- "lib/bugzyrb/common/cmdapp.rb",
34
- "lib/bugzyrb/common/colorconstants.rb",
35
- "lib/bugzyrb/common/db.rb",
36
- "lib/bugzyrb/common/sed.rb"
22
+ "CHANGELOG.rdoc",
23
+ "LICENSE",
24
+ "NOTES",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/bugzyrb",
29
+ "bugzy.cfg",
30
+ "bugzyrb.gemspec",
31
+ "lib/bugzyrb.rb",
32
+ "lib/bugzyrb/common/cmdapp.rb",
33
+ "lib/bugzyrb/common/colorconstants.rb",
34
+ "lib/bugzyrb/common/db.rb",
35
+ "lib/bugzyrb/common/sed.rb"
37
36
  ]
38
37
  s.homepage = %q{http://github.com/rkumar/bugzyrb}
39
- s.rdoc_options = ["--charset=UTF-8"]
40
- s.require_paths = ["lib"]
38
+ s.require_paths = [%q{lib}]
41
39
  s.rubyforge_project = %q{bugzyrb}
42
- s.rubygems_version = %q{1.3.7}
40
+ s.rubygems_version = %q{1.8.8}
43
41
  s.summary = %q{command-line bug/issue tracker using sqlite, ruby 1.9}
44
42
 
45
43
  if s.respond_to? :specification_version then
46
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
47
44
  s.specification_version = 3
48
45
 
49
46
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -52,14 +49,12 @@ Gem::Specification.new do |s|
52
49
  s.add_runtime_dependency(%q<highline>, [">= 1.5.2"])
53
50
  s.add_runtime_dependency(%q<terminal-table>, [">= 1.4.2"])
54
51
  s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 1.2.5"])
55
- s.add_runtime_dependency(%q<arrayfields>, [">= 4.7.4"])
56
52
  else
57
53
  s.add_dependency(%q<yard>, [">= 0.5"])
58
54
  s.add_dependency(%q<subcommand>, [">= 1.0.5"])
59
55
  s.add_dependency(%q<highline>, [">= 1.5.2"])
60
56
  s.add_dependency(%q<terminal-table>, [">= 1.4.2"])
61
57
  s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.5"])
62
- s.add_dependency(%q<arrayfields>, [">= 4.7.4"])
63
58
  end
64
59
  else
65
60
  s.add_dependency(%q<yard>, [">= 0.5"])
@@ -67,7 +62,6 @@ Gem::Specification.new do |s|
67
62
  s.add_dependency(%q<highline>, [">= 1.5.2"])
68
63
  s.add_dependency(%q<terminal-table>, [">= 1.4.2"])
69
64
  s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.5"])
70
- s.add_dependency(%q<arrayfields>, [">= 4.7.4"])
71
65
  end
72
66
  end
73
67
 
@@ -512,6 +512,7 @@ module Cmdapp
512
512
  # indents given string, n spaces
513
513
  # http://redmine.ruby-lang.org/issues/show/749 Thomas Sawyer
514
514
  def indent(str,n)
515
+ return '' unless str
515
516
  if n >= 0
516
517
  str.gsub(/^/, ' ' * n)
517
518
  else
@@ -33,12 +33,13 @@ module ColorConstants
33
33
  BLINK = "\e[5m"
34
34
  # The start of an ANSI reverse sequence.
35
35
  REVERSE = "\e[7m"
36
+ STANDOUT = REVERSE
36
37
  # The start of an ANSI concealed sequence. (Terminal support uncommon.)
37
38
  CONCEALED = "\e[8m"
38
39
 
39
40
  # added from http://understudy.net/custom.html
40
41
  BOLD_OFF = "\e[22m"
41
- UNDERILNE_OFF = "\e[24m"
42
+ UNDERLINE_OFF = "\e[24m"
42
43
  BLINK_OFF = "\e[25m"
43
44
  REVERSE_OFF = "\e[27m"
44
45
 
data/lib/bugzyrb.rb CHANGED
@@ -22,12 +22,27 @@ include Cmdapp
22
22
  include Subcommands
23
23
  include Database
24
24
 
25
- #PRI_A = YELLOW + BOLD
26
- #PRI_B = WHITE + BOLD
27
- #PRI_C = GREEN + BOLD
28
- #PRI_D = CYAN + BOLD
29
- VERSION = "0.3.4"
30
- DATE = "2011-09-28"
25
+ # monkey_patch for terminal_table using coloring, does *not* work perfectly here
26
+ # https://gist.github.com/625808
27
+ ELIMINATE_ANSI_ESCAPE = true
28
+ class String
29
+ alias_method :to_s_orig, :to_s
30
+ def to_s
31
+ str = self.to_s_orig
32
+ if ::ELIMINATE_ANSI_ESCAPE
33
+ str = str.sub(/^\e\[[\[\e0-9;m]+m/, "")
34
+ str = str.sub(/(\e\[[\[\e0-9;m]+m)$/, "")
35
+ # Above works for only one, beg or eol
36
+ str = str.gsub(/\e\[[\[\e0-9;m]+m/, "")
37
+ #str = str.gsub(/(\e\[[\[\e0-9;m]+m)/, "")
38
+ end
39
+ str
40
+ end
41
+ end
42
+ # end monkey
43
+ #
44
+ VERSION = "0.3.5"
45
+ DATE = "2011-09-30"
31
46
  APPNAME = File.basename($0)
32
47
  AUTHOR = "rkumar"
33
48
 
@@ -54,10 +69,10 @@ class Bugzy
54
69
  # $ bugzyrb -d ~/
55
70
  #
56
71
  # == Close a task (mark as done)
57
- # $ bugzyrb status close 1
72
+ # $ bugzyrb close 1
58
73
  #
59
- # == Add priority
60
- # $ bugzyrb pri A 2
74
+ # == Change priority of items 4 and 6 to P2
75
+ # $ bugzyrb pri P2 4 6
61
76
  #
62
77
  # For more:
63
78
  # $ bugzyrb --help
@@ -65,8 +80,10 @@ class Bugzy
65
80
  # $ alias bu='bugzyrb'
66
81
  #
67
82
  # == TODO:
68
- # colorize output
69
- # archive completed tasks
83
+ # -- archive completed tasks
84
+ # -- i cannot do any coloring with fields i have not selected. I need to get around this
85
+ # of having fields in select that are not displayed. Such as type/priority/date
86
+ # -- refactor and cleanup, its a mess. Should be able to configure coloring elsewhere.
70
87
  #
71
88
  def initialize options, argv
72
89
 
@@ -82,8 +99,8 @@ class Bugzy
82
99
  @app_default_action = "list" # TODO:
83
100
  @file = @app_file_path = @options[:file] || "bugzy.sqlite"
84
101
  #@app_serial_path = File.expand_path("~/serial_numbers")
85
- @deleted_path = "todo_deleted.txt"
86
- @todo_delim = "\t"
102
+ #@deleted_path = "todo_deleted.txt"
103
+ #@todo_delim = "\t"
87
104
  @appname = File.basename( Dir.getwd ) #+ ".#{$0}"
88
105
  # in order to support the testing framework
89
106
  t = Time.now
@@ -187,7 +204,17 @@ SQL
187
204
 
188
205
  0
189
206
  end
207
+ # get a connection to the database, checking up 3 levels.
190
208
  def get_db
209
+ # we want to check a couple levels 2011-09-28
210
+ unless @db
211
+ unless File.exists? @file
212
+ 3.times do |i|
213
+ @file = "../#{@file}"
214
+ break if File.exists? @file
215
+ end
216
+ end
217
+ end
191
218
  @db ||= DB.new @file
192
219
  end
193
220
  # returns default due date for add or qadd
@@ -241,6 +268,10 @@ SQL
241
268
  exit ERRCODE
242
269
  end
243
270
  else
271
+ # if you add last arg as P1..P5, I'll update priority automatically
272
+ if args.last =~ /P[1-5]/
273
+ $default_priority = args.pop
274
+ end
244
275
  text = args.join " "
245
276
  end
246
277
  # convert actual newline to C-a. slash n's are escapes so echo -e does not muck up.
@@ -357,7 +388,7 @@ TEXT
357
388
  die "No data found for #{id}" unless row
358
389
  puts "[#{row['type']} \##{row['id']}] #{row['title']}"
359
390
  puts "Description:"
360
- puts Cmdapp.indent(row['description'],3)
391
+ puts Cmdapp.indent(row['description'],3) if row['description']
361
392
  puts "\nAdded by #{row['created_by']} on #{row['date_created']}. Updated #{row['date_modified']}."
362
393
  comment_count = 0
363
394
  #puts row
@@ -426,6 +457,8 @@ TEXT
426
457
  editable << "project" if $use_project
427
458
  editable << "component" if $use_component
428
459
  editable << "version" if $use_version
460
+ print_green row['title']
461
+ print_green row['description'] if row['description']
429
462
  sel = Cmdapp._choice "Select field to edit", editable
430
463
  print "You chose: #{sel}"
431
464
  old = row[sel]
@@ -448,6 +481,12 @@ TEXT
448
481
  message str
449
482
  db.sql_update "bugs", id, sel, str
450
483
  puts "Updated #{id}"
484
+ if sel == 'status' && ['canceled', 'closed'].include?(str)
485
+ curr_status = row['priority']
486
+ value = curr_status.sub(/P/,'X')
487
+ db.sql_update "bugs", id, 'priority', value
488
+ puts "Updated #{id}'s PRI from #{str} to #{value} "
489
+ end
451
490
  sstr = Cmdapp.truncate(str.to_s,50)
452
491
  rowid = db.sql_logs_insert id, sel, "[#{id}] updated [#{sel}] with #{sstr}"
453
492
  0
@@ -506,7 +545,7 @@ TEXT
506
545
  row = db.sql_select_rowid "bugs", id
507
546
  die "No data found for #{id}" unless row
508
547
  puts "[#{row['type']} \##{row['id']}] #{row['title']}"
509
- puts row['description']
548
+ puts row['description'] if row['description']
510
549
  puts
511
550
  ctr = 0
512
551
  db.select_where "log", "id", id do |r|
@@ -533,14 +572,25 @@ TEXT
533
572
  db = get_db
534
573
  #db.run "select * from bugs " do |row|
535
574
  #end
536
- descindex = nil
537
- fields = "id,status,title,severity,priority,start_date,due_date"
575
+ # will not be able to find title due to function
576
+ descdelim = '>>'
577
+ #fields = 'id,status,type,priority,substr(title || " >>" || ifnull(description,""),0,85)'
578
+ fields = %Q[id,status,type,priority,substr(title || " #{descdelim}" || ifnull(description,""),0,85)]
579
+ format = "%-3s | %-7s | %-5s | %-60s "
538
580
  if @options[:short]
539
581
  fields = "id,status,title"
582
+ format = "%3s | %6s | %60s "
540
583
  elsif @options[:long]
541
- fields = "id,status,title,severity,priority,due_date,description"
542
- descindex = 6
584
+ fields = "id,status,priority,title,description"
585
+ format = "%-3s|%-7s|%-5s | %-60s |%-s"
543
586
  end
587
+ fieldsarr = fields.split(",") # NOTE comma in ifnull function
588
+ descindex = fieldsarr.index("description")
589
+ titleindex = fieldsarr.index("title") || 4 # fieldsarr.count-1 due to comman in ifnull XXX NOTE
590
+ statindex = fieldsarr.index("status")
591
+ priindex = fieldsarr.index("priority")
592
+ typeindex = fieldsarr.index("type")
593
+
544
594
  where = nil
545
595
  wherestring = ""
546
596
  if @options[:open]
@@ -550,7 +600,7 @@ TEXT
550
600
  if @options[:overdue]
551
601
  #where = %{ where status != 'closed' and due_date <= "#{Date.today}" }
552
602
  where ||= []
553
- where << %{ status != 'closed'}
603
+ where << %{ status != 'closed' and status != 'canceled'}
554
604
  where << %{ due_date <= "#{Date.today}" }
555
605
  end
556
606
  if @options[:unassigned]
@@ -561,27 +611,32 @@ TEXT
561
611
  # added 2011-09-28 so we don't see closed all the time.
562
612
  if !where && !@options[:show_all]
563
613
  where ||= []
564
- where << %{ status != 'closed'}
614
+ where << %{ status != 'closed' and status != 'canceled'}
565
615
  end
566
616
  if where
567
617
  wherestring = " where " + where.join(" and ")
568
618
  end
569
- puts wherestring
619
+ orderstring ||= " order by status asc, priority desc " # 2011-09-30 so highest prio comes at end
620
+ puts wherestring if @options[:verbose]
570
621
 
571
622
  db.db.type_translation = true
572
623
  db.db.results_as_hash = false # 2011-09-21
573
- rows = db.run "select #{fields} from bugs #{wherestring} "
624
+ rows = db.run "select #{fields} from bugs #{wherestring} #{orderstring} "
574
625
  db.db.type_translation = false
575
626
  die "No rows" unless rows
576
627
 
577
628
  rows = Cmdapp.filter_rows( rows, incl) do |row, regexp|
578
629
  #row['title'] =~ regexp
579
- row[2] =~ regexp
630
+ row[titleindex] =~ regexp
580
631
  end
581
632
  rows = Cmdapp.filter_rows( rows, excl) do |row, regexp|
582
633
  #row['title'] !~ regexp
583
- row[2] !~ regexp
634
+ row[titleindex] !~ regexp
584
635
  end
636
+ fields.sub!( /priority/, "pri")
637
+ fields.sub!( /status/, "sta")
638
+ fields.sub!( /severity/, "sev")
639
+ fields.sub!( /substr.*/, "title") # XXX depends on function used on title
585
640
  headings = fields.split ","
586
641
  # if you want to filter output send a delimiter
587
642
  if $bare
@@ -591,8 +646,10 @@ TEXT
591
646
  # d = e['description'] # changed 2011 dts
592
647
  if descindex
593
648
  d = e[descindex]
594
- e[descindex] = d.gsub(/\n/," ") if d
649
+ e[descindex].gsub!(/\n/," ") if d
595
650
  end
651
+ e[typeindex] = e[typeindex][0,3] if typeindex
652
+ e[statindex] = e[statindex][0,2] if statindex
596
653
  puts e.join delim
597
654
  end
598
655
  else
@@ -600,13 +657,66 @@ TEXT
600
657
  puts "No rows"
601
658
  return
602
659
  end
660
+ # NOTE: terminal table gets the widths wrong because of coloring info.
661
+ if @options[:colored]
662
+ #require 'colored'
663
+ startrow = nil
664
+ fr = titleindex
665
+ rows.each_with_index do |e, index|
666
+ s = e[titleindex]
667
+ s.gsub!("\n", ";")
668
+ s.gsub!(/(#\w+)/,"#{UNDERLINE}\\1#{UNDERLINE_OFF}")
669
+ s.gsub!(/(>>.*)/,"#{GREEN}\\1#{CLEAR}")
670
+ st = e[statindex]
671
+ e[statindex] = e[statindex][0,2]
672
+ e[typeindex] = e[typeindex][0,3] if typeindex
673
+ if typeindex
674
+ case e[typeindex]
675
+ when 'bug'
676
+ e[typeindex] = "#{RED}#{e[typeindex]}#{CLEAR}"
677
+ when 'enh'
678
+ e[typeindex] = "#{WHITE}#{e[typeindex]}#{CLEAR}"
679
+ else
680
+ e[typeindex] = "#{CYAN}#{e[typeindex]}#{CLEAR}"
681
+ end
682
+ end
683
+ frv = e[fr]
684
+ if st == 'started'
685
+ startrow = index unless startrow
686
+ e[fr] = "#{STANDOUT}#{frv}" # changed 2011 dts whole line green
687
+ #e[0] = e[0].to_s.red
688
+
689
+ e[-1] = "#{e[-1]}#{CLEAR}"
690
+ else
691
+ if priindex
692
+ pri = e[priindex]
693
+ case pri
694
+ when "P4", "P5"
695
+ e[fr] = "#{BLUE}#{frv}"
696
+ e[-1] = "#{e[-1]}#{CLEAR}"
697
+ when "P1"
698
+ e[fr] = "#{YELLOW}#{ON_RED}#{frv}"
699
+ e[-1] = "#{e[-1]}#{CLEAR}"
700
+ when "P2"
701
+ e[fr] = "#{BOLD}#{frv}"
702
+ e[-1] = "#{e[-1]}#{CLEAR}"
703
+ else
704
+ #e[fr] = "#{CLEAR}#{frv}"
705
+ end
706
+ end
707
+ end
708
+
709
+ #print "#{format}\n" % e
710
+ end
711
+ rows.insert(startrow, :separator) if startrow
712
+ #return
713
+ end
603
714
  # pretty output tabular format etc
604
715
  require 'terminal-table/import'
605
- #table = table(nil, *rows)
606
716
  table = table(headings, *rows)
607
717
  puts table
718
+ end
608
719
  end
609
- end
610
720
  ## validate user entered id
611
721
  # All methods should call this first.
612
722
  # @param [Fixnum] id (actually can be String) to validate
@@ -621,7 +731,7 @@ TEXT
621
731
  die "No data found for #{id}" unless row
622
732
  if print_header
623
733
  puts "[#{row['type']} \##{row['id']}] #{row['title']}"
624
- puts row['description']
734
+ puts row['description'] if row['description']
625
735
  puts
626
736
  end
627
737
  return db, row
@@ -775,6 +885,13 @@ TEXT
775
885
  # @return [0] for success
776
886
  def close args
777
887
  change_value "status", "closed", args
888
+ args.each do |id|
889
+ db, row = validate_id id
890
+ curr_status = row['priority']
891
+ value = curr_status.sub(/P/,'X')
892
+ db.sql_update "bugs", id, 'priority', value
893
+ puts "Updated #{id}'s PRI from #{curr_status} to #{value} "
894
+ end
778
895
  0
779
896
  end
780
897
 
@@ -785,6 +902,14 @@ TEXT
785
902
  change_value "status", "started", args
786
903
  0
787
904
  end
905
+ def priority args
906
+ value = args.shift
907
+ ret = change_value "priority", value, args
908
+ if ret != 0
909
+ die "#{value} is not valid for priority. Valid are (#{@valid_priority.join(',')})"
910
+ end
911
+ 0
912
+ end
788
913
 
789
914
  ##
790
915
  # get a date in the future giving how many days
@@ -887,7 +1012,7 @@ TEXT
887
1012
  require 'optparse'
888
1013
  options = {}
889
1014
  options[:verbose] = false
890
- options[:colorize] = true
1015
+ options[:colored] = true
891
1016
  $bare = false
892
1017
  # adding some env variable pickups, so you don't have to keep passing.
893
1018
  showall = ENV["TODO_SHOW_ALL"]
@@ -896,7 +1021,7 @@ TEXT
896
1021
  end
897
1022
  plain = ENV["TODO_PLAIN"]
898
1023
  if plain
899
- options[:colorize] = (plain == "0") ? false:true
1024
+ options[:colored] = (plain == "0") ? false:true
900
1025
  end
901
1026
  config = File.expand_path "~/.bugzyrb.cfg"
902
1027
  if File.exists? config
@@ -1058,6 +1183,9 @@ TEXT
1058
1183
  options[:bare] = v
1059
1184
  $bare = true
1060
1185
  }
1186
+ opts.on("-c","--colored", "colored listing") { |v|
1187
+ options[:colored] = v
1188
+ }
1061
1189
  opts.on("-v","--overdue", "not closed, due date past") { |v|
1062
1190
  options[:overdue] = v
1063
1191
  }
@@ -1083,6 +1211,10 @@ TEXT
1083
1211
  opts.banner = "Usage: recentcomments [options] <HOWMANY>"
1084
1212
  opts.description = "view recent comments, default last 10 logs "
1085
1213
  end
1214
+ Subcommands::command :priority, :pri do |opts|
1215
+ opts.banner = "Usage: priority [options] <ISSUENO>"
1216
+ opts.description = "change priority of given items to [option]"
1217
+ end
1086
1218
  # XXX order of these 2 matters !! reverse and see what happens
1087
1219
  Subcommands::command :close, :clo do |opts|
1088
1220
  opts.banner = "Usage: clo [options] <ISSUENO>"
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: bugzyrb
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.4
5
+ version: 0.3.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Rahul Kumar
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-28 00:00:00 Z
13
+ date: 2011-10-06 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: yard
@@ -80,6 +80,7 @@ files:
80
80
  - .document
81
81
  - CHANGELOG.rdoc
82
82
  - LICENSE
83
+ - NOTES
83
84
  - README.rdoc
84
85
  - Rakefile
85
86
  - VERSION