summaryrefslogtreecommitdiffstats
path: root/lib/git/base.rb
diff options
context:
space:
mode:
authorscott Chacon <schacon@agadorsparticus.(none)>2007-11-10 12:43:33 -0800
committerscott Chacon <schacon@agadorsparticus.(none)>2007-11-10 12:43:33 -0800
commitfde3263abc5c7866aa7dce7aef28eacaa33d7664 (patch)
treec9911ac92e9770c7bfea3e79269f8e7dcf7f6982 /lib/git/base.rb
parent9d59d2965184964ab6662282ef5f9ceac2c58552 (diff)
downloadthird_party-ruby-git-fde3263abc5c7866aa7dce7aef28eacaa33d7664.tar.gz
third_party-ruby-git-fde3263abc5c7866aa7dce7aef28eacaa33d7664.tar.xz
third_party-ruby-git-fde3263abc5c7866aa7dce7aef28eacaa33d7664.zip
few hours work - diff is done
Diffstat (limited to 'lib/git/base.rb')
-rw-r--r--lib/git/base.rb51
1 files changed, 43 insertions, 8 deletions
diff --git a/lib/git/base.rb b/lib/git/base.rb
index 8170065..1111887 100644
--- a/lib/git/base.rb
+++ b/lib/git/base.rb
@@ -22,19 +22,33 @@ module Git
self.new(git_options)
end
- def initialize(options = {})
- @working_directory = Git::Repository.new(options[:working_directory]) if options[:working_directory]
- @repository = Git::Repository.new(options[:repository]) if options[:repository]
- @index = Git::Index.new(options[:index]) if options[:index]
+ def self.init(working_dir, opts = {})
+ default = {:working_directory => working_dir,
+ :repository => File.join(working_dir, '.git')}
+ git_options = default.merge(opts)
+
+ if git_options[:working_directory]
+ # if !working_dir, make it
+ FileUtils.mkdir_p(git_options[:working_directory]) if !File.directory?(git_options[:working_directory])
+ end
+
+ # run git_init there
+ Git::Lib.new(git_options).init
+
+ self.new(git_options)
end
-
+
def self.clone
raise NotImplementedError
end
-
- def self.init
- raise NotImplementedError
+
+ def initialize(options = {})
+ @working_directory = Git::WorkingDirectory.new(options[:working_directory]) if options[:working_directory]
+ @repository = Git::Repository.new(options[:repository]) if options[:repository]
+ @index = Git::Index.new(options[:index]) if options[:index]
end
+
+
def dir
@@ -49,6 +63,23 @@ module Git
@index
end
+
+ #g.config('user.name', 'Scott Chacon') # sets value
+ #g.config('user.email', 'email@email.com') # sets value
+ #g.config('user.name') # returns 'Scott Chacon'
+ #g.config # returns whole config hash
+ def config(name = nil, value = nil)
+ if(name && value)
+ # set value
+ elsif (name)
+ # return value
+ lib.config_get(name)
+ else
+ # return hash
+ lib.config_list
+ end
+ end
+
# factory methods
def object(objectish)
@@ -75,6 +106,10 @@ module Git
self.object('HEAD').grep(string)
end
+ def diff(objectish = 'HEAD', obj2 = nil)
+ Git::Diff.new(self, objectish, obj2)
+ end
+
# convenience methods
def revparse(objectish)