guitsaru-lighthouse_branch 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,9 @@
1
1
  = lighthouse_branch
2
2
 
3
+ = Installation
4
+
5
+ sudo gem install lighthouse_branch
6
+
3
7
  = Setup
4
8
 
5
9
  Add your Lighthouse project settings to your repo's git config.
@@ -10,13 +14,17 @@ Add your Lighthouse project settings to your repo's git config.
10
14
 
11
15
  = Usage
12
16
 
13
- lh-branch [ticket_id]: Creates a branch based on the ticket name.
17
+ If ticket_id is not given, it will be determined by the current branch.
18
+ This gem also comes with lhb, a shorter version of lh-branch
19
+
20
+ lh-branch [ticket_id] ([remote_name]): Creates a branch based on the ticket name.
21
+ If remote_name is given, the branch will be pushed to the remote.
14
22
  lh-branch 1 #=> git checkout -b 1-ticket-title
15
23
 
16
- lh-branch push [ticket_id] [remote name]: Pushes the ticket's branch to the named remote.
24
+ lh-branch push [ticket_id] [remote_name]: Pushes the ticket's branch to the named remote.
17
25
  lh-branch 1 origin #=> git push origin 1-ticket-title
18
26
 
19
- lh-branch pull [ticket_id] [remote name]: Pulls the ticket's branch from the named remote.
27
+ lh-branch pull [ticket_id] [remote_name]: Pulls the ticket's branch from the named remote.
20
28
  lh-branch 1 origin #=> git pull origin 1-ticket-title
21
29
 
22
30
  lh-branch merge [ticket_id]: Merges the ticket's branch with the current branch.
@@ -25,10 +33,15 @@ lh-branch merge [ticket_id]: Merges the ticket's branch with the current branch.
25
33
  lh-branch checkout [ticket_id]: Checks out the ticket's branch, making it the current branch.
26
34
  lh-branch checkout 1 #=> git checkout 1-ticket-title
27
35
 
28
- lh-branch delete [ticket_id]: Deletes the ticket's branch.
36
+ lh-branch delete [ticket_id] ([remote_name]): Deletes the ticket's branch.
37
+ If remote_name is given, the branch will also be deleted on remote.
29
38
  lh-branch delete 1 #=> git branch -d 1-ticket-title
30
39
 
31
- lh-branch resolve 1 [message]: Creates a commit that will mark the ticket resolved.
40
+ lh-branch update [ticket_id] [message] ([extra]): Creates a commit that references the ticket
41
+ Extra is any extra lighthouse commands
42
+ lh-branch update 1 "Made some changes" #=> git commit -a -m "Made some changes\n\n[#1 tagged:'branch:1-ticket-title']"
43
+
44
+ lh-branch resolve [ticket_id] [message]: Creates a commit that will mark the ticket resolved.
32
45
  lh-branch resolve 1 "Fixed the bug." #=> git commit -a -m "Fixed the bug\n\n[#1 state:resolved]"
33
46
 
34
47
  == Copyright
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ begin
9
9
  gem.email = "guitsaru@gmail.com"
10
10
  gem.homepage = "http://github.com/guitsaru/lighthouse_branch"
11
11
  gem.authors = ["Matt Pruitt"]
12
- gem.rubyforge_project = "lighthouse_branch"
12
+ gem.rubyforge_project = "lh-branch"
13
13
  gem.add_dependency('grit', '>= 1.1.1')
14
14
  gem.add_dependency('Caged-lighthouse-api', '>= 1.0.0')
15
15
  end
@@ -22,7 +22,7 @@ end
22
22
  require 'rake/testtask'
23
23
  Rake::TestTask.new(:test) do |test|
24
24
  test.libs << 'lib' << 'test'
25
- test.pattern = 'test/**/*_test.rb'
25
+ test.pattern = 'test/**/test_*.rb'
26
26
  test.verbose = true
27
27
  end
28
28
 
@@ -30,7 +30,7 @@ begin
30
30
  require 'rcov/rcovtask'
31
31
  Rcov::RcovTask.new do |test|
32
32
  test.libs << 'test'
33
- test.pattern = 'test/**/*_test.rb'
33
+ test.pattern = 'test/**/test_*.rb'
34
34
  test.verbose = true
35
35
  end
36
36
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
@@ -2,110 +2,5 @@
2
2
 
3
3
  require 'rubygems'
4
4
  require File.join(File.dirname(__FILE__), '..', 'lib', 'lighthouse_branch')
5
- require 'grit'
6
5
 
7
- def get_command(args)
8
- case args[0]
9
- when nil
10
- return nil
11
- when /push/i
12
- args.shift
13
- return 'push'
14
- when /pull/i
15
- args.shift
16
- return 'pull'
17
- when /merge/i
18
- args.shift
19
- return 'merge'
20
- when /checkout/i
21
- args.shift
22
- return 'checkout'
23
- when /delete/i
24
- args.shift
25
- return 'delete'
26
- when /resolve/i
27
- args.shift
28
- return 'resolve'
29
- else return 'branch'
30
- end
31
- end
32
-
33
- def get_lighthouse_branch
34
- repo = Grit::Repo.new(Dir.pwd)
35
-
36
- lighthouse_account = repo.config["lighthouse.account"]
37
- lighthouse_token = repo.config["lighthouse.token"]
38
- lighthouse_project = repo.config["lighthouse.project"]
39
-
40
- if lighthouse_account.nil? || lighthouse_token.nil? || lighthouse_project.nil?
41
- puts "You must add your lighthouse account info to git config:"
42
- puts "git config lighthouse.account [lighthouse account subdomain]"
43
- puts "git config lighthouse.token [lighthouse API token]"
44
- puts "git config lighthouse.project [lighthouse project id]"
45
- exit
46
- end
47
-
48
- return LighthouseBranch.new(lighthouse_account, lighthouse_token, lighthouse_project)
49
- end
50
-
51
- args = ARGV
52
-
53
- command = get_command(args)
54
- ticket_id = args.shift.to_i
55
- command = nil if ticket_id == 0
56
-
57
- lighthouse_branch = get_lighthouse_branch
58
-
59
- case command
60
- when nil
61
- puts "Usage:"
62
- puts "lh-branch [ticket_id]"
63
- puts "lh-branch push [ticket_id] [remote name]"
64
- puts "lh-branch pull [ticket_id] [remote name]"
65
- puts "lh-branch merge [ticket_id]"
66
- puts "lh-branch checkout [ticket_id]"
67
- puts "lh-branch delete [ticket_id]"
68
- puts "lh-branch resolve 1 [message]"
69
- when 'branch'
70
- if args.size != 0
71
- puts "Usage: lh-branch [ticket_id]"
72
- exit
73
- end
74
- system("git checkout -b #{lighthouse_branch.branch_name(ticket_id)}")
75
- when 'delete'
76
- if args.size != 0
77
- puts "Usage: lh-branch delete [ticket_id]"
78
- exit
79
- end
80
- system("git branch -d #{lighthouse_branch.branch_name(ticket_id)}")
81
- when 'push'
82
- if args.size != 1
83
- puts "Usage: lh-branch push [ticket_id] [remote name]"
84
- exit
85
- end
86
- system("git push #{args.shift} #{lighthouse_branch.branch_name(ticket_id)}")
87
- when 'pull'
88
- if args.size != 1
89
- puts "Usage: lh-branch pull [ticket_id] [remote name]"
90
- exit
91
- end
92
- system("git pull #{args.shift} #{lighthouse_branch.branch_name(ticket_id)}")
93
- when 'checkout'
94
- if args.size != 0
95
- puts "Usage: lh-branch checkout [ticket_id]"
96
- exit
97
- end
98
- system("git checkout #{lighthouse_branch.branch_name(ticket_id)}")
99
- when 'merge'
100
- if args.size != 0
101
- puts "Usage: lh-branch merge [ticket_id]"
102
- exit
103
- end
104
- system("git merge #{lighthouse_branch.branch_name(ticket_id)}")
105
- when 'resolve'
106
- if args.size != 1
107
- puts "Usage: lh-branch resolve 1 [message]"
108
- exit
109
- end
110
- system("git commit -a -m \"#{args.shift}\n\n[##{ticket_id} state:resolved]\"")
111
- end
6
+ LighthouseBranch.invoke(ARGV)
data/bin/lhb ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'lighthouse_branch')
5
+
6
+ LighthouseBranch.invoke(ARGV)
@@ -1,17 +1,76 @@
1
1
  require 'lighthouse-api'
2
+ require 'grit'
3
+ require File.join(File.dirname(__FILE__), 'lighthouse_branch', 'command', 'base')
4
+
5
+ Dir.glob(File.join(File.dirname(__FILE__), 'lighthouse_branch', 'commands', '**.rb')).each { |command| require command }
2
6
 
3
7
  class LighthouseBranch
4
- def initialize(account, token, project_id)
5
- Lighthouse.account = account
6
- Lighthouse.token = token
7
- @project = Lighthouse::Project.find(project_id)
8
+ def self.repo
9
+ @repo ||= Grit::Repo.new(Dir.pwd)
10
+ end
11
+
12
+ def self.get_lighthouse_account
13
+ Lighthouse.account = repo.config["lighthouse.account"]
14
+ Lighthouse.token = repo.config["lighthouse.token"]
15
+
16
+ begin
17
+ @project = Lighthouse::Project.find(repo.config["lighthouse.project"])
18
+ rescue
19
+ puts "You must add your lighthouse account info to git config:"
20
+ puts "git config lighthouse.account [lighthouse account subdomain]"
21
+ puts "git config lighthouse.token [lighthouse API token]"
22
+ puts "git config lighthouse.project [lighthouse project id]"
23
+ exit
24
+ end
8
25
  end
9
26
 
10
- def ticket(id)
27
+ def self.ticket(id)
11
28
  Lighthouse::Ticket.find(id, :params => { :project_id => @project.id })
12
29
  end
13
30
 
14
- def branch_name(id)
15
- "#{id}-#{ticket(id).title.gsub(/[^\w ]/, '').gsub(/[^a-z0-9]+/i, '-').downcase}"
31
+ def self.branch_name(args)
32
+ unless @branch_name
33
+ if(Float(args.first) rescue false)
34
+ ticket_id = args.shift.to_i
35
+ @branch_name = "#{ticket_id}-#{ticket(ticket_id).title.gsub(/[^\w ]/, '').gsub(/[^a-z0-9]+/i, '-').downcase}"
36
+ else
37
+ @branch_name = repo.head.name
38
+ end
39
+ end
40
+
41
+ return @branch_name
42
+ end
43
+
44
+ def self.invoke(args)
45
+ get_lighthouse_account
46
+
47
+ command = :default
48
+ if Command::Base.command_regexes.select{ |command| args.first =~ command }.empty?
49
+ branch = branch_name(args)
50
+ ticket_id = branch.to_i
51
+ if ticket_id == 0
52
+ usage
53
+ exit
54
+ end
55
+ else
56
+ command = args.shift
57
+ branch = branch_name(args)
58
+ ticket_id = branch.to_i
59
+ end
60
+
61
+ Command::Base.invoke(command, branch, ticket_id, args)
62
+ end
63
+
64
+ def self.usage
65
+ puts "If ticket_id is not supplied, the ticket will be determined by the current branch name."
66
+ puts "lh-branch [ticket_id] ([remote_name])"
67
+ puts "lh-branch push [ticket_id] [remote_name]"
68
+ puts "lh-branch pull [ticket_id] [remote_name]"
69
+ puts "lh-branch merge [ticket_id]"
70
+ puts "lh-branch checkout [ticket_id]"
71
+ puts "lh-branch update [ticket_id] [message] ([extra])"
72
+ puts "lh-branch delete [ticket_id] ([remote_name])"
73
+ puts "lh-branch delete_remote [ticket_id] [remote_name]"
74
+ puts "lh-branch resolve [ticket_id] [message]"
16
75
  end
17
76
  end
@@ -0,0 +1,63 @@
1
+ module Command
2
+ class Base
3
+ @@commands = {}
4
+
5
+ def self.default_command
6
+ @@commands.merge!(:default => self)
7
+ end
8
+
9
+ def self.command_name(name)
10
+ name = name.to_s.downcase.to_sym
11
+ @@commands.merge!(name => self)
12
+ end
13
+
14
+ def self.number_of_arguments(arguments)
15
+ self.class_eval("@@number_of_arguments = #{arguments}")
16
+ end
17
+
18
+ def self.usage(usage=nil)
19
+ if usage
20
+ return self.class_eval("@@usage = \"#{usage}\"")
21
+ else
22
+ return self.class_eval("@@usage")
23
+ end
24
+ end
25
+
26
+ def self.commands
27
+ return @@commands
28
+ end
29
+
30
+ def self.run(lighthouse_branch, ticket, args)
31
+ return unless defined?(:command_string)
32
+
33
+ number_of_arguments = (self.class_eval("@@number_of_arguments") || 0)
34
+
35
+ correct_arguments = false
36
+ if number_of_arguments.is_a?(Range)
37
+ correct_arguments = number_of_arguments.member?(args.size)
38
+ elsif number_of_arguments.is_a?(Fixnum)
39
+ correct_arguments = (number_of_arguments == args.size)
40
+ end
41
+
42
+ if correct_arguments
43
+ system(self.command_string(lighthouse_branch, ticket, args))
44
+ else
45
+ puts self.usage and exit
46
+ end
47
+ end
48
+
49
+ def self.command_regexes
50
+ @@commands.keys.map { |k| /#{k}/i }
51
+ end
52
+
53
+ def self.invoke(command, branch_name, ticket_id, args)
54
+ command = @@commands[command.to_s.downcase.to_sym]
55
+ if !command
56
+ command = @@commands[:default]
57
+ end
58
+
59
+ return nil if ticket_id <= 0
60
+ command.run(branch_name, ticket_id, args)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,16 @@
1
+ module Command
2
+ class Branch < Command::Base
3
+ default_command
4
+ number_of_arguments (0..1)
5
+
6
+ usage "lh-branch [ticket_id]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ command_string = "git checkout -b #{branch_name}"
10
+ if remote_name = args.shift
11
+ command_string += "; #{Command::Push.command_string(branch_name, ticket_id, remote_name.to_a)}"
12
+ end
13
+ return command_string
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ module Command
2
+ class Checkout < Command::Base
3
+ command_name :checkout
4
+ number_of_arguments 0
5
+
6
+ usage "lh-branch checkout [ticket_id]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ "git checkout #{branch_name}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Command
2
+ class Commit < Command::Base
3
+ command_name :commit
4
+ number_of_arguments 1
5
+
6
+ usage "lh-branch commit [ticket_id] [message]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ "git commit -a -m \"#{args.shift}\n\n[##{ticket_id}]\""
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ module Command
2
+ class Delete < Command::Base
3
+ command_name :delete
4
+ number_of_arguments (0..1)
5
+
6
+ usage "lh-branch delete [ticket_id] ([remote_name])"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ command_string = "git branch -d #{branch_name}"
10
+ if !args.empty?
11
+ remote_name = args.shift
12
+ command_string +="; git push #{remote_name} :#{branch_name}"
13
+ end
14
+ return command_string
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ module Command
2
+ class Merge < Command::Base
3
+ command_name :merge
4
+ number_of_arguments 0
5
+
6
+ usage "lh-branch merge [ticket_id]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ "git merge #{branch_name}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Command
2
+ class Pull < Command::Base
3
+ command_name :pull
4
+ number_of_arguments 1
5
+
6
+ usage "lh-branch pull [ticket_id] [remote_name]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ "git pull #{args.shift} #{branch_name}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Command
2
+ class Push < Command::Base
3
+ command_name :push
4
+ number_of_arguments 1
5
+
6
+ usage "lh-branch push [ticket_id] [remote_name]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ "git push #{args.shift} #{branch_name}"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module Command
2
+ class Resolve < Command::Base
3
+ command_name :resolve
4
+ number_of_arguments 1
5
+ usage "lh-branch resolve [ticket_id] [message]"
6
+
7
+ def self.command_string(branch_name, ticket_id, args)
8
+ "git commit -a -m \"#{args.shift}\n\n[##{ticket_id} state:resolved]\""
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ module Command
2
+ class Update < Command::Base
3
+ command_name :update
4
+ number_of_arguments (1..2)
5
+
6
+ usage "lh-branch update [ticket_id] [message]"
7
+
8
+ def self.command_string(branch_name, ticket_id, args)
9
+ msg = args.shift
10
+ extra = ""
11
+ extra = " #{args.shift}".rstrip unless args.empty?
12
+
13
+ "git commit -a -m \"#{msg}\n\n[##{ticket_id} tagged:'branch:#{branch_name}'#{extra}]\""
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,84 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{lighthouse_branch}
5
+ s.version = "1.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Matt Pruitt"]
9
+ s.date = %q{2009-06-23}
10
+ s.email = %q{guitsaru@gmail.com}
11
+ s.executables = ["lh-branch", "lhb"]
12
+ s.extra_rdoc_files = [
13
+ "LICENSE",
14
+ "README.rdoc"
15
+ ]
16
+ s.files = [
17
+ ".document",
18
+ ".gitignore",
19
+ "LICENSE",
20
+ "README.rdoc",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "bin/lh-branch",
24
+ "bin/lhb",
25
+ "lib/lighthouse_branch.rb",
26
+ "lib/lighthouse_branch/command/base.rb",
27
+ "lib/lighthouse_branch/commands/branch.rb",
28
+ "lib/lighthouse_branch/commands/checkout.rb",
29
+ "lib/lighthouse_branch/commands/commit.rb",
30
+ "lib/lighthouse_branch/commands/delete.rb",
31
+ "lib/lighthouse_branch/commands/merge.rb",
32
+ "lib/lighthouse_branch/commands/pull.rb",
33
+ "lib/lighthouse_branch/commands/push.rb",
34
+ "lib/lighthouse_branch/commands/resolve.rb",
35
+ "lib/lighthouse_branch/commands/update.rb",
36
+ "lighthouse_branch.gemspec",
37
+ "test/command/test_base.rb",
38
+ "test/commands/test_branch.rb",
39
+ "test/commands/test_checkout.rb",
40
+ "test/commands/test_commit.rb",
41
+ "test/commands/test_delete.rb",
42
+ "test/commands/test_merge.rb",
43
+ "test/commands/test_pull.rb",
44
+ "test/commands/test_push.rb",
45
+ "test/commands/test_resolve.rb",
46
+ "test/commands/test_update.rb",
47
+ "test/test_helper.rb"
48
+ ]
49
+ s.homepage = %q{http://github.com/guitsaru/lighthouse_branch}
50
+ s.rdoc_options = ["--charset=UTF-8"]
51
+ s.require_paths = ["lib"]
52
+ s.rubyforge_project = %q{lh-branch}
53
+ s.rubygems_version = %q{1.3.4}
54
+ s.summary = %q{Easily manage branches based off lighthouse tickets.}
55
+ s.test_files = [
56
+ "test/command/test_base.rb",
57
+ "test/commands/test_branch.rb",
58
+ "test/commands/test_checkout.rb",
59
+ "test/commands/test_commit.rb",
60
+ "test/commands/test_delete.rb",
61
+ "test/commands/test_merge.rb",
62
+ "test/commands/test_pull.rb",
63
+ "test/commands/test_push.rb",
64
+ "test/commands/test_resolve.rb",
65
+ "test/commands/test_update.rb",
66
+ "test/test_helper.rb"
67
+ ]
68
+
69
+ if s.respond_to? :specification_version then
70
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
71
+ s.specification_version = 3
72
+
73
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
74
+ s.add_runtime_dependency(%q<grit>, [">= 1.1.1"])
75
+ s.add_runtime_dependency(%q<Caged-lighthouse-api>, [">= 1.0.0"])
76
+ else
77
+ s.add_dependency(%q<grit>, [">= 1.1.1"])
78
+ s.add_dependency(%q<Caged-lighthouse-api>, [">= 1.0.0"])
79
+ end
80
+ else
81
+ s.add_dependency(%q<grit>, [">= 1.1.1"])
82
+ s.add_dependency(%q<Caged-lighthouse-api>, [">= 1.0.0"])
83
+ end
84
+ end
@@ -0,0 +1,34 @@
1
+ require 'test_helper'
2
+
3
+ module Command
4
+ class Base
5
+ @@commands = {}
6
+ end
7
+ end
8
+
9
+ class DefaultCommand < Command::Base
10
+ default_command
11
+ end
12
+
13
+ class NamedCommand < Command::Base
14
+ command_name :named
15
+ end
16
+
17
+ class TestCommandBase < Test::Unit::TestCase
18
+ should "include a list of empty commands on initialization" do
19
+ assert(Command::Base.commands.is_a?(Hash), "Commands is not a hash.")
20
+ end
21
+
22
+ should "add a default command" do
23
+ assert_equal(DefaultCommand, Command::Base.commands[:default])
24
+ end
25
+
26
+ should "add a named command" do
27
+ assert_equal(NamedCommand, Command::Base.commands[:named])
28
+ end
29
+
30
+ should "have a list of regexes to match" do
31
+ assert(Command::Base.command_regexes.include?(/named/i))
32
+ assert(Command::Base.command_regexes.include?(/default/i))
33
+ end
34
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class TestBranchCommand < Test::Unit::TestCase
4
+ should "create the branch with no arguments" do
5
+ assert_equal("git checkout -b 1-test-ticket", \
6
+ Command::Branch.command_string('1-test-ticket', 1, []))
7
+ end
8
+
9
+ should "create the branch and push to remote with an argument" do
10
+ assert_equal("git checkout -b 1-test-ticket; git push origin 1-test-ticket",
11
+ Command::Branch.command_string('1-test-ticket', 1, ['origin']))
12
+ end
13
+
14
+ should "have usage instructions" do
15
+ assert_equal("lh-branch [ticket_id]", Command::Branch.usage)
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class TestCheckoutCommand < Test::Unit::TestCase
4
+ should "check out the branch" do
5
+ assert_equal("git checkout 1-test-ticket", Command::Checkout.command_string('1-test-ticket', 1, []))
6
+ end
7
+
8
+ should "have usage instructions" do
9
+ assert_equal("lh-branch checkout [ticket_id]", Command::Checkout.usage)
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ class TestBranchCommit < Test::Unit::TestCase
4
+ should "Commit the branch" do
5
+ assert_equal("git commit -a -m \"Message\n\n[#1]\"",
6
+ Command::Commit.command_string('1-test-ticket', 1, ['Message']))
7
+ end
8
+
9
+ should "have usage instructions" do
10
+ assert_equal("lh-branch commit [ticket_id] [message]", Command::Commit.usage)
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'test_helper'
2
+
3
+ class TestDeleteCommand < Test::Unit::TestCase
4
+ should "delete the branch with no origin name" do
5
+ assert_equal("git branch -d 1-test-ticket", Command::Delete.command_string('1-test-ticket', 1, []))
6
+ end
7
+
8
+ should "delete the branch with an origin name" do
9
+ assert_equal("git branch -d 1-test-ticket; git push origin :1-test-ticket",
10
+ Command::Delete.command_string('1-test-ticket', 1, ['origin']))
11
+ end
12
+
13
+ should "have usage instructions" do
14
+ assert_equal("lh-branch delete [ticket_id] ([remote_name])", Command::Delete.usage)
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class TestMergeCommand < Test::Unit::TestCase
4
+ should "merge out the branch" do
5
+ assert_equal("git merge 1-test-ticket", Command::Merge.command_string('1-test-ticket', 1, []))
6
+ end
7
+
8
+ should "have usage instructions" do
9
+ assert_equal("lh-branch merge [ticket_id]", Command::Merge.usage)
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class TestPullCommand < Test::Unit::TestCase
4
+ should "pull out the branch" do
5
+ assert_equal("git pull origin 1-test-ticket", Command::Pull.command_string('1-test-ticket', 1, ['origin']))
6
+ end
7
+
8
+ should "have usage instructions" do
9
+ assert_equal("lh-branch pull [ticket_id] [remote_name]", Command::Pull.usage)
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class TestPushCommand < Test::Unit::TestCase
4
+ should "pull out the branch" do
5
+ assert_equal("git push origin 1-test-ticket", Command::Push.command_string('1-test-ticket', 1, ['origin']))
6
+ end
7
+
8
+ should "have usage instructions" do
9
+ assert_equal("lh-branch push [ticket_id] [remote_name]", Command::Push.usage)
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ class TestResolveCommand < Test::Unit::TestCase
4
+ should "resolve the ticket" do
5
+ assert_equal("git commit -a -m \"Message.\n\n[#1 state:resolved]\"",
6
+ Command::Resolve.command_string('1-test-ticket', 1, ['Message.']))
7
+ end
8
+
9
+ should "have usage instructions" do
10
+ assert_equal("lh-branch resolve [ticket_id] [message]", Command::Resolve.usage)
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class TestBranchUpdate < Test::Unit::TestCase
4
+ should "Update the ticket" do
5
+ assert_equal("git commit -a -m \"Message.\n\n[#1 tagged:'branch:1-test-ticket']\"",
6
+ Command::Update.command_string('1-test-ticket', 1, ['Message.']))
7
+ end
8
+
9
+ should "Update the ticket with extra" do
10
+ assert_equal("git commit -a -m \"Message.\n\n[#1 tagged:'branch:1-test-ticket' milestone:'next milestone']\"",
11
+ Command::Update.command_string('1-test-ticket', 1, ['Message.', "milestone:'next milestone'"]))
12
+ end
13
+
14
+ should "have usage instructions" do
15
+ assert_equal("lh-branch update [ticket_id] [message]", Command::Update.usage)
16
+ end
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guitsaru-lighthouse_branch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Pruitt
@@ -9,8 +9,8 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-20 00:00:00 -07:00
13
- default_executable: lh-branch
12
+ date: 2009-06-23 00:00:00 -07:00
13
+ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: grit
@@ -36,6 +36,7 @@ description:
36
36
  email: guitsaru@gmail.com
37
37
  executables:
38
38
  - lh-branch
39
+ - lhb
39
40
  extensions: []
40
41
 
41
42
  extra_rdoc_files:
@@ -49,9 +50,30 @@ files:
49
50
  - Rakefile
50
51
  - VERSION
51
52
  - bin/lh-branch
53
+ - bin/lhb
52
54
  - lib/lighthouse_branch.rb
55
+ - lib/lighthouse_branch/command/base.rb
56
+ - lib/lighthouse_branch/commands/branch.rb
57
+ - lib/lighthouse_branch/commands/checkout.rb
58
+ - lib/lighthouse_branch/commands/commit.rb
59
+ - lib/lighthouse_branch/commands/delete.rb
60
+ - lib/lighthouse_branch/commands/merge.rb
61
+ - lib/lighthouse_branch/commands/pull.rb
62
+ - lib/lighthouse_branch/commands/push.rb
63
+ - lib/lighthouse_branch/commands/resolve.rb
64
+ - lib/lighthouse_branch/commands/update.rb
65
+ - lighthouse_branch.gemspec
66
+ - test/command/test_base.rb
67
+ - test/commands/test_branch.rb
68
+ - test/commands/test_checkout.rb
69
+ - test/commands/test_commit.rb
70
+ - test/commands/test_delete.rb
71
+ - test/commands/test_merge.rb
72
+ - test/commands/test_pull.rb
73
+ - test/commands/test_push.rb
74
+ - test/commands/test_resolve.rb
75
+ - test/commands/test_update.rb
53
76
  - test/test_helper.rb
54
- - test/test_lighthouse_branch.rb
55
77
  has_rdoc: false
56
78
  homepage: http://github.com/guitsaru/lighthouse_branch
57
79
  post_install_message:
@@ -73,11 +95,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
95
  version:
74
96
  requirements: []
75
97
 
76
- rubyforge_project: lighthouse_branch
98
+ rubyforge_project: lh-branch
77
99
  rubygems_version: 1.2.0
78
100
  signing_key:
79
101
  specification_version: 3
80
102
  summary: Easily manage branches based off lighthouse tickets.
81
103
  test_files:
104
+ - test/command/test_base.rb
105
+ - test/commands/test_branch.rb
106
+ - test/commands/test_checkout.rb
107
+ - test/commands/test_commit.rb
108
+ - test/commands/test_delete.rb
109
+ - test/commands/test_merge.rb
110
+ - test/commands/test_pull.rb
111
+ - test/commands/test_push.rb
112
+ - test/commands/test_resolve.rb
113
+ - test/commands/test_update.rb
82
114
  - test/test_helper.rb
83
- - test/test_lighthouse_branch.rb
@@ -1,27 +0,0 @@
1
- require 'test_helper'
2
-
3
- class TestLighthouseBranch < Test::Unit::TestCase
4
- context "Tests" do
5
- setup do
6
- @lighthouse_branch = LighthouseBranch.new(
7
- LIGHTHOUSE_ACCOUNT["account"],
8
- LIGHTHOUSE_ACCOUNT["token"],
9
- LIGHTHOUSE_ACCOUNT["project"])
10
-
11
- @ticket_id = LIGHTHOUSE_ACCOUNT["ticket"]
12
- end
13
-
14
- should "initialize" do
15
- assert_not_nil(@lighthouse_branch)
16
- end
17
-
18
- should "return a ticket" do
19
- assert_not_nil(@lighthouse_branch.ticket(@ticket_id))
20
- assert_equal(Lighthouse::Ticket, @lighthouse_branch.ticket(@ticket_id).class)
21
- end
22
-
23
- should "give a branch name for the ticket" do
24
- assert_match(/#{LIGHTHOUSE_ACCOUNT["ticket"]}-[\w-]*/, @lighthouse_branch.branch_name(@ticket_id))
25
- end
26
- end
27
- end