lib/git_wrapper/repository.rb in git_wrapper-1.0.2 vs lib/git_wrapper/repository.rb in git_wrapper-1.0.3
- old
+ new
@@ -1,209 +1,209 @@
-module GitWrapper
- class Repository
- attr_reader :location
- attr_reader :log_output
- attr_reader :log_error
-
- def initialize(location)
- @location = location
- @log_output = []
- @log_error = []
- end
-
- def init
- FileUtils.mkpath(@location) unless Dir.exist?(@location)
- execute(Commands::Init.new(@location))
- end
-
- def init_bare
- FileUtils.mkpath(@location) unless Dir.exist?(@location)
- execute(Commands::Init.new(@location).bare)
- end
-
- def initialized?
- Dir.exist?("#{@location}/.git") || bare?
- end
-
- def bare?
- Dir.exist?("#{@location}/hooks") &&
- Dir.exist?("#{@location}/info") &&
- Dir.exist?("#{@location}/objects") &&
- Dir.exist?("#{@location}/refs")
- end
-
- def status
- execute(Commands::Status.new(@location))
- end
-
- def add(file_name)
- execute(Commands::Add.new(@location).file(file_name))
- end
-
- def add_all
- execute(Commands::Add.new(@location).all)
- end
-
- def commit(message, options={})
- command = Commands::Commit.new(@location).message(message)
- command.author(options[:author_name], options[:author_email]) if options[:author_name] && options[:author_email]
- execute(command)
- end
-
- def remove(file_name)
- execute(Commands::Remove.new(@location).file(file_name))
- end
-
- def remotes
- execute(Commands::Remote.new(@location).list)
- end
-
- def add_remote(name, url)
- execute(Commands::Remote.new(@location).name(name).add(url))
- end
-
- def remove_remote(name)
- execute(Commands::Remote.new(@location).name(name).remove)
- end
-
- def pull(remote='origin', branch='master')
- execute(Commands::Pull.new(@location).remote(remote).branch(branch))
- end
-
- def push(remote='origin', branch='master')
- execute(Commands::Push.new(@location).remote(remote).branch(branch))
- end
-
- def push_tags(remote='origin')
- execute(Commands::Push.new(@location).remote(remote).tags)
- end
-
- def show(file_name, commit=nil)
- command = Commands::Show.new(@location).file(file_name)
- command.commit(commit) unless commit.nil?
- execute(command)
- end
-
- def show_base(file_name)
- execute(Commands::Show.new(@location).file(file_name).base)
- end
-
- def show_mine(file_name)
- execute(Commands::Show.new(@location).file(file_name).mine)
- end
-
- def show_theirs(file_name)
- execute(Commands::Show.new(@location).file(file_name).theirs)
- end
-
- def log(options={})
- if options[:file_name]
- execute(Commands::Log.new(@location).file(options[:file_name]))
- elsif options[:commit]
- execute(Commands::Log.new(@location).commit(options[:commit]))
- else
- execute(Commands::Log.new(@location))
- end
- end
-
- def branches
- execute(Commands::Branch.new(@location).list)
- end
-
- def current_branch
- branch = execute(Commands::Branch.new(@location).current)
- branch.nil? ? 'master' : branch
- end
-
- def branch(name, commit=nil)
- if commit.nil?
- execute(Commands::Branch.new(@location).create(name))
- else
- execute(Commands::Branch.new(@location).create(name).from(commit))
- end
- end
-
- def remove_branch(name, remote=nil)
- if remote.nil?
- execute(Commands::Branch.new(@location).remove(name))
- else
- execute(Commands::Branch.new(@location).remove(name).remote(remote))
- end
- end
-
- def checkout(commit, new_branch=nil)
- if commit.nil?
- execute(Commands::Checkout.new(@location).commit(commit))
- else
- execute(Commands::Checkout.new(@location).commit(commit).into(new_branch))
- end
- end
-
- def tags
- execute(Commands::Tag.new(@location).list)
- end
-
- def tag(name, commit=nil)
- if commit.nil?
- execute(Commands::Tag.new(@location).create(name))
- else
- execute(Commands::Tag.new(@location).create(name).from(commit))
- end
- end
-
- def remove_tag(name)
- execute(Commands::Tag.new(@location).remove(name))
- end
-
- def merge(commit)
- execute(Commands::Merge.new(@location).commit(commit))
- end
-
- def fetch(remote=nil)
- if remote.nil?
- execute(Commands::Fetch.new(@location).all)
- else
- execute(Commands::Fetch.new(@location).remote(remote))
- end
- end
-
- def diff(commit)
- execute(Commands::Diff.new(@location).with(commit))
- end
-
- def diff_reverse(commit)
- execute(Commands::Diff.new(@location).with(commit).reverse)
- end
-
- def revert(commit)
- if log(:commit => commit).merge?
- execute(Commands::Revert.new(@location).merge(commit))
- else
- execute(Commands::Revert.new(@location).commit(commit))
- end
- end
-
- def reset(options={})
- command = Commands::Reset.new(@location)
- command.commit(options[:commit]) if options[:commit]
- command.send(options[:mode]) if options[:mode]
- execute(command)
- end
-
- def config(key=nil, value=nil)
- command = Commands::Config.new(@location)
- command.key(key) if key
- command.value(value) if value
- execute(command)
- end
-
- private
-
- def execute(command)
- result = command.execute
- @log_output << command.output
- @log_error << command.error
- result
- end
-
- end
+module GitWrapper
+ class Repository
+ attr_reader :location
+ attr_reader :log_output
+ attr_reader :log_error
+
+ def initialize(location)
+ @location = location
+ @log_output = []
+ @log_error = []
+ end
+
+ def init
+ FileUtils.mkpath(@location) unless Dir.exist?(@location)
+ execute(Commands::Init.new(@location))
+ end
+
+ def init_bare
+ FileUtils.mkpath(@location) unless Dir.exist?(@location)
+ execute(Commands::Init.new(@location).bare)
+ end
+
+ def initialized?
+ Dir.exist?("#{@location}/.git") || bare?
+ end
+
+ def bare?
+ Dir.exist?("#{@location}/hooks") &&
+ Dir.exist?("#{@location}/info") &&
+ Dir.exist?("#{@location}/objects") &&
+ Dir.exist?("#{@location}/refs")
+ end
+
+ def status
+ execute(Commands::Status.new(@location))
+ end
+
+ def add(file_name)
+ execute(Commands::Add.new(@location).file(file_name))
+ end
+
+ def add_all
+ execute(Commands::Add.new(@location).all)
+ end
+
+ def commit(message, options={})
+ command = Commands::Commit.new(@location).message(message)
+ command.author(options[:author_name], options[:author_email]) if options[:author_name] && options[:author_email]
+ execute(command)
+ end
+
+ def remove(file_name)
+ execute(Commands::Remove.new(@location).file(file_name))
+ end
+
+ def remotes
+ execute(Commands::Remote.new(@location).list)
+ end
+
+ def add_remote(name, url)
+ execute(Commands::Remote.new(@location).name(name).add(url))
+ end
+
+ def remove_remote(name)
+ execute(Commands::Remote.new(@location).name(name).remove)
+ end
+
+ def pull(remote='origin', branch='master')
+ execute(Commands::Pull.new(@location).remote(remote).branch(branch))
+ end
+
+ def push(remote='origin', branch='master')
+ execute(Commands::Push.new(@location).remote(remote).branch(branch))
+ end
+
+ def push_tags(remote='origin')
+ execute(Commands::Push.new(@location).remote(remote).tags)
+ end
+
+ def show(file_name, commit=nil)
+ command = Commands::Show.new(@location).file(file_name)
+ command.commit(commit) unless commit.nil?
+ execute(command)
+ end
+
+ def show_base(file_name)
+ execute(Commands::Show.new(@location).file(file_name).base)
+ end
+
+ def show_mine(file_name)
+ execute(Commands::Show.new(@location).file(file_name).mine)
+ end
+
+ def show_theirs(file_name)
+ execute(Commands::Show.new(@location).file(file_name).theirs)
+ end
+
+ def log(options={})
+ if options[:file_name]
+ execute(Commands::Log.new(@location).file(options[:file_name]))
+ elsif options[:commit]
+ execute(Commands::Log.new(@location).commit(options[:commit]))
+ else
+ execute(Commands::Log.new(@location))
+ end
+ end
+
+ def branches
+ execute(Commands::Branch.new(@location).list)
+ end
+
+ def current_branch
+ branch = execute(Commands::Branch.new(@location).current)
+ branch.nil? ? 'master' : branch
+ end
+
+ def branch(name, commit=nil)
+ if commit.nil?
+ execute(Commands::Branch.new(@location).create(name))
+ else
+ execute(Commands::Branch.new(@location).create(name).from(commit))
+ end
+ end
+
+ def remove_branch(name, remote=nil)
+ if remote.nil?
+ execute(Commands::Branch.new(@location).remove(name))
+ else
+ execute(Commands::Branch.new(@location).remove(name).remote(remote))
+ end
+ end
+
+ def checkout(commit, new_branch=nil)
+ if commit.nil?
+ execute(Commands::Checkout.new(@location).commit(commit))
+ else
+ execute(Commands::Checkout.new(@location).commit(commit).into(new_branch))
+ end
+ end
+
+ def tags
+ execute(Commands::Tag.new(@location).list)
+ end
+
+ def tag(name, commit=nil)
+ if commit.nil?
+ execute(Commands::Tag.new(@location).create(name))
+ else
+ execute(Commands::Tag.new(@location).create(name).from(commit))
+ end
+ end
+
+ def remove_tag(name)
+ execute(Commands::Tag.new(@location).remove(name))
+ end
+
+ def merge(commit)
+ execute(Commands::Merge.new(@location).commit(commit))
+ end
+
+ def fetch(remote=nil)
+ if remote.nil?
+ execute(Commands::Fetch.new(@location).all)
+ else
+ execute(Commands::Fetch.new(@location).remote(remote))
+ end
+ end
+
+ def diff(commit)
+ execute(Commands::Diff.new(@location).with(commit))
+ end
+
+ def diff_reverse(commit)
+ execute(Commands::Diff.new(@location).with(commit).reverse)
+ end
+
+ def revert(commit)
+ if log(:commit => commit).merge?
+ execute(Commands::Revert.new(@location).merge(commit))
+ else
+ execute(Commands::Revert.new(@location).commit(commit))
+ end
+ end
+
+ def reset(options={})
+ command = Commands::Reset.new(@location)
+ command.commit(options[:commit]) if options[:commit]
+ command.send(options[:mode]) if options[:mode]
+ execute(command)
+ end
+
+ def config(key=nil, value=nil)
+ command = Commands::Config.new(@location)
+ command.key(key) if key
+ command.value(value) if value
+ execute(command)
+ end
+
+ private
+
+ def execute(command)
+ result = command.execute
+ @log_output << command.output
+ @log_error << command.error
+ result
+ end
+
+ end
end
\ No newline at end of file