class FakeGit::WriteTree

Constants

OBJ_PATH

Public Instance Methods

call(*args) click to toggle source
# File lib/fake_git/write_tree.rb, line 5
def call(*args)
  obj = FakeGit::Priv::Object.new(
    type: "tree",
    content: tree,
    index: Digest::SHA1.hexdigest(tree)
  )
  puts obj.index
  write(obj)
  obj.index
end

Private Instance Methods

tree() click to toggle source
# File lib/fake_git/write_tree.rb, line 17
def tree
  `find .fakegit -type f`
end
write(obj) click to toggle source
# File lib/fake_git/write_tree.rb, line 21
def write(obj)
  write_top_index(obj)
  write_new_index(obj)
end
write_new_index(obj) click to toggle source
# File lib/fake_git/write_tree.rb, line 30
def write_new_index(obj)
  path = "#{OBJ_PATH}/#{obj.index[0..1]}/#{obj.index[2..-1]}"
  File.open(path, 'w') do |file|
    file.write("index=#{obj.index},")
    file.write("type=#{obj.type},")
    file.write("content=#{obj.content}")
  end
end
write_top_index(obj) click to toggle source
# File lib/fake_git/write_tree.rb, line 26
def write_top_index(obj)
  `mkdir -p #{OBJ_PATH}/#{obj.index[0..1]}`
end