0
+ attr_reader :name, :attach_dir
0
def initialize(name, rev=nil)
0
@filename = File.join(GIT_REPO, @name)
0
+ @attach_dir = File.join(GIT_REPO, '_attachments', unwiki(@name))
0
@@ -42,11 +47,7 @@ class Page
0
- $repo.gtree('HEAD').children.keys.include?(@name)
0
+ $repo.ls_files.keys.include?(@name)
0
@@ -88,4 +89,90 @@ class Page
0
@blob ||= ($repo.gblob(@rev + ':' + @name))
0
+ # save a file into the _attachments directory
0
+ def save_file(file, name = '')
0
+ filename = name + File.extname(file[:filename])
0
+ filename = file[:filename]
0
+ FileUtils.mkdir_p(@attach_dir) if !File.exists?(@attach_dir)
0
+ new_file = File.join(@attach_dir, filename)
0
+ f = File.new(new_file, 'w')
0
+ f.write(file[:tempfile].read)
0
+ commit_message = "uploaded #{filename} for #{@name}"
0
+ $repo.commit(commit_message)
0
+ file_path = File.join(@attach_dir, file)
0
+ if File.exists?(file_path)
0
+ File.unlink(file_path)
0
+ commit_message = "removed #{file} for #{@name}"
0
+ $repo.remove(file_path)
0
+ $repo.commit(commit_message)
0
+ if File.exists?(@attach_dir)
0
+ return Dir.glob(File.join(@attach_dir, '*')).map { |f| Attachment.new(f, unwiki(@name)) }
0
+ attr_accessor :path, :page_name
0
+ def initialize(file_path, name)
0
+ File.join('/_attachment', @page_name, name)
0
+ File.join('/a/file/delete', @page_name, name)
0
+ ext = File.extname(@path)
0
+ when '.png', '.jpg', '.jpeg', '.gif'; return true
0
+ size = File.size(@path).to_i
0
+ when size.to_i == 1; "1 Byte"
0
+ when size < 1024; "%d Bytes" % size
0
+ when size < (1024*1024); "%.2f KB" % (size / 1024.0)
0
+ else "%.2f MB" % (size / (1024 * 1024.0))
0
+ end.sub(/([0-9])\.?0+ /, '\1 ' )
0
\ No newline at end of file
Comments
No one has commented yet.