Files
gollum/lib/gollum/file.rb
T
2010-07-06 07:39:56 -07:00

60 lines
1.3 KiB
Ruby

module Gollum
class File
Wiki.file_class = self
# Public: Initialize a file.
#
# wiki - The Gollum::Wiki in question.
#
# Returns a newly initialized Gollum::File.
def initialize(wiki)
@wiki = wiki
@blob = nil
@path = nil
end
# Public: The on-disk filename of the file.
#
# Returns the String name.
def name
@blob && @blob.name
end
# Public: The raw contents of the page.
#
# Returns the String data.
def raw_data
@blob && @blob.data
end
# Public: The Grit::Commit version of the file.
attr_reader :version
# Public: The String path of the file.
attr_reader :path
#########################################################################
#
# Internal Methods
#
#########################################################################
# Find a file in the given Gollum repo.
#
# name - The full String path.
# version - The String version ID to find.
#
# Returns a Gollum::File or nil if the file could not be found.
def find(name, version)
commit = @wiki.repo.commit(version)
if blob = commit.tree / name
@blob = blob
@path = name
@version = commit
self
else
nil
end
end
end
end