class Geminabox::Proxy::Splicer
Public Class Methods
make(file_name)
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 6 def self.make(file_name) splicer = new(file_name) splicer.create splicer end
Public Instance Methods
create()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 12 def create File.open(splice_path, 'w'){|f| f.write(new_content)} end
gzip?()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 44 def gzip? /\.gz$/ =~ file_name end
merge_content()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 36 def merge_content if gzip? merge_gziped_content else merge_text_content end end
new_content()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 16 def new_content if local_file_exists? merge_content else remote_content end end
splice_file_exists?()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 32 def splice_file_exists? file_exists? splice_path end
splice_folder_path()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 28 def splice_folder_path proxy_folder_path end
splice_path()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 24 def splice_path proxy_path end
Private Instance Methods
merge_gziped_content()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 49 def merge_gziped_content package(unpackage(local_content) | unpackage(remote_content)) end
merge_text_content()
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 61 def merge_text_content local_content.to_s + remote_content.to_s end
package(content)
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 57 def package(content) Gem.gzip(Marshal.dump(content)) end
unpackage(content)
click to toggle source
# File lib/geminabox/proxy/splicer.rb, line 53 def unpackage(content) Marshal.load(Gem.gunzip(content)) end