git_manager 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ module Git
3
+ class Manager
4
+ attr_accessor :branches, :current_branch, :branches_to_delete
5
+ def initialize
6
+ @branches = `git branch`.split /\n/
7
+ partition_branches
8
+ end
9
+ def partition_branches
10
+ @current_branch = @branches.select {|branch| branch.match /^\*/}.first
11
+ @branches_to_delete = @branches.select {|branch| branch != @current_branch }
12
+ @current_branch.chomp!
13
+ @current_branch.gsub! /\s|\*/, ''
14
+ end
15
+
16
+ def delete_branches
17
+ return false if @branches_to_delete.length == 0
18
+ @branches_to_delete.each do |branch|
19
+ delete_branch( branch.gsub /\s/, '' )
20
+ end
21
+ end
22
+
23
+ def delete_branch branch
24
+ `git branch -D #{branch}`
25
+ end
26
+
27
+ end
28
+ end
29
+
@@ -0,0 +1,34 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require 'git_manager'
4
+
5
+ describe Git::Manager do
6
+ before :each do
7
+ @git_manager = Git::Manager.new
8
+ end
9
+ it "has branches" do
10
+ @git_manager.branches.should_not be_nil
11
+ end
12
+ it "has branches array" do
13
+ @git_manager.branches.class.should == Array
14
+ end
15
+ it "knows about current branch" do
16
+ @git_manager.current_branch.should == 'master'
17
+ end
18
+ it "knows about branches to delete" do
19
+ @git_manager.branches_to_delete.should_not be_nil
20
+ end
21
+ it "aborts if branches to delete is empty" do
22
+ @git_manager.branches_to_delete = []
23
+ @git_manager.delete_branches.should == false
24
+ end
25
+ it "deltes branches to delete if NOT empty" do
26
+ @fake_branch_name = 'some_fake_branch'
27
+ Git::Manager.any_instance.stub(:delete_branch).and_return( true )
28
+
29
+ @git_manager.branches_to_delete = ['some_fake_branch']
30
+ @git_manager.delete_branches.should_not == false
31
+ end
32
+ end
33
+
34
+
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: git_manager
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 0
10
+ version: 0.0.0
11
+ platform: ruby
12
+ authors:
13
+ - kikuchiyo
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-08-11 00:00:00 Z
19
+ dependencies: []
20
+
21
+ description: all local branches, but one you are on
22
+ email: kikuchiyo6@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/git_manager.rb
31
+ - spec/git_manager_spec.rb
32
+ homepage: http://rubygems.org/gems/git_manager
33
+ licenses: []
34
+
35
+ post_install_message:
36
+ rdoc_options: []
37
+
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ requirements: []
59
+
60
+ rubyforge_project:
61
+ rubygems_version: 1.8.24
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: manage git
65
+ test_files:
66
+ - spec/git_manager_spec.rb