diff options
Diffstat (limited to 'lib/git/branch.rb')
-rw-r--r-- | lib/git/branch.rb | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/lib/git/branch.rb b/lib/git/branch.rb index bf4d80a..3d8337b 100644 --- a/lib/git/branch.rb +++ b/lib/git/branch.rb @@ -1,16 +1,15 @@ module Git class Branch < Path - attr_accessor :full, :remote, :name, :current + attr_accessor :full, :remote, :name @base = nil @gcommit = nil - def initialize(base, name, current = false) + def initialize(base, name) @remote = nil @full = name @base = base - @current = current parts = name.split('/') if parts[1] @@ -26,5 +25,36 @@ module Git @gcommit end + def checkout + check_if_create + @base.lib.checkout(@name) + end + + def create + check_if_create + end + + def delete + @base.lib.branch_delete(@name) + end + + def current + determine_current + end + + def to_s + @name + end + + private + + def check_if_create + @base.lib.branch_new(@name) rescue nil + end + + def determine_current + @base.lib.branch_current == @name + end + end end |