Class: Grack::RJGitAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/rjgit_grack.rb

Instance Method Summary collapse

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