Class: Grack::RJGitAdapter
- Inherits:
-
Object
- Object
- Grack::RJGitAdapter
- Defined in:
- lib/rjgit_grack.rb
Instance Method Summary collapse
- #get_config_setting(repository_path, key) ⇒ Object
- #receive_pack(repository_path, opts = {}, &block) ⇒ Object
- #repo(repository_path) ⇒ Object
- #service_command(cmd, repository_path, opts = {}, &block) ⇒ Object
- #update_server_info(repository_path, opts = {}, &block) ⇒ Object
- #upload_pack(repository_path, opts = {}, &block) ⇒ Object
Instance Method Details
#get_config_setting(repository_path, key) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/rjgit_grack.rb', line 46 def get_config_setting(repository_path, key) repository = repo(repository_path) domains = key.split(".") begin loop_settings = repository.config rescue return nil end domains.each do |domain| begin loop_settings = loop_settings[domain] rescue return nil end end return loop_settings.is_a?(Hash) ? loop_settings : loop_settings.to_s end |
#receive_pack(repository_path, opts = {}, &block) ⇒ Object
38 39 40 |
# File 'lib/rjgit_grack.rb', line 38 def receive_pack(repository_path, opts = {}, &block) self.service_command(:receive_pack, repository_path, opts, &block) end |
#repo(repository_path) ⇒ Object
7 8 9 |
# File 'lib/rjgit_grack.rb', line 7 def repo(repository_path) RJGit::Repo.new(repository_path) end |
#service_command(cmd, repository_path, opts = {}, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rjgit_grack.rb', line 11 def service_command(cmd, repository_path, opts = {}, &block) pack = case cmd when :upload_pack RJGit::RJGitUploadPack.new(repo repository_path) when :receive_pack RJGit::RJGitReceivePack.new(repo repository_path) else nil end return nil unless pack if opts[:advertise_refs] then return pack.advertise_refs else msg = opts.has_key?(:msg) ? opts[:msg] : "" result, err = pack.process(msg) if block_given? then yield result else return result.read end end end |
#update_server_info(repository_path, opts = {}, &block) ⇒ Object
42 43 44 |
# File 'lib/rjgit_grack.rb', line 42 def update_server_info(repository_path, opts = {}, &block) repo(repository_path).update_server_info end |
#upload_pack(repository_path, opts = {}, &block) ⇒ Object
34 35 36 |
# File 'lib/rjgit_grack.rb', line 34 def upload_pack(repository_path, opts = {}, &block) self.service_command(:upload_pack, repository_path, opts, &block) end |