class FakeGit::Priv::Object

Constants

ALLOWED_TYPES
OBJ_PATH

Attributes

content[RW]
date[RW]
file_name[RW]
index[RW]
message[RW]
path[RW]
tree[RW]
type[RW]

Public Class Methods

new(type: nil, content: nil, index: nil, path: nil, file_name: nil, message: nil, tree: nil, date: nil) click to toggle source
# File lib/fake_git/priv/object.rb, line 8
def initialize(type: nil,
               content: nil,
               index: nil,
               path: nil,
               file_name: nil,
               message: nil,
               tree: nil,
               date: nil)
  @type = type
  @content = content
  @index = index
  @path = path
  @file_name = file_name
  @message = message
  @tree = tree
  @date = Time.now

  raise TypeError.new("#{type} must be one of #{ALLOWED_TYPES}") if !ALLOWED_TYPES.include?(@type)
end

Public Instance Methods

write!() click to toggle source
# File lib/fake_git/priv/object.rb, line 28
def write!
  write_top_index
  write_new_index
  puts index
end

Private Instance Methods

write_new_index() click to toggle source
# File lib/fake_git/priv/object.rb, line 39
def write_new_index
  path = "#{OBJ_PATH}/#{index[0..1]}/#{index[2..-1]}"

  File.open(path, 'w') do |file|
    file.write("type=#{type},")
    file.write("index=#{index},")
    file.write("file_name=#{file_name},")
    file.write("path=#{path},")
    file.write("content=#{content},")
    file.write("message=#{message},")
    file.write("tree=#{tree},")
  end
end
write_top_index() click to toggle source
# File lib/fake_git/priv/object.rb, line 35
def write_top_index
  `mkdir -p #{OBJ_PATH}/#{index[0..1]}`
end