lib/paperbin/handler.rb in paperbin-0.0.3 vs lib/paperbin/handler.rb in paperbin-0.1.0

- old
+ new

@@ -75,21 +75,33 @@ options[:callback].call(gz_file(version, true)) if options[:callback] end def generate_files versions.each do |version| - data = version.to_json - unless files_exist?(gz_file(version)) - Zlib::GzipWriter.open(gz_file(version)) do |gz| - gz.write data - end - end + write_gz_file version + write_md5_file version + end + end - File.open(md5_file(version), "w") do |file| - file.write(Digest::MD5.hexdigest(data)) - end + def write_gz_file(version) + path = gz_file version + unless files_exist?(path) + Zlib::GzipWriter.open(path) { |gz| gz.write string_data(version) } + timestamp = version.created_at.to_time + File.utime timestamp, timestamp, path end + end + + def write_md5_file(version) + File.open(md5_file(version), "w") do |file| + md5 = Digest::MD5.hexdigest(string_data(version)) + file.write md5 + end + end + + def string_data(version) + version.to_json end def check_versions versions.each_with_index do |version, index| # check both file exist or not