paperbin 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37c978c091cd658200ee80b49bfc08afae0d195c
4
- data.tar.gz: 63a6141de7602abdb15b8fde994e586eb49e607b
3
+ metadata.gz: cf1cd912977e0f0847d562a7812fc4b5e3399968
4
+ data.tar.gz: 124ee2cfe0f4268eaddac9ed35ce692896c7cc14
5
5
  SHA512:
6
- metadata.gz: be0a71594e218ad8ce48179b87d13acea5312663cee3307db411cf63ecd0c874e7634a22c0c12982c08e208da51a5c29031603f12ee7de77fc4b131123a98d0b
7
- data.tar.gz: 7f44494d1dc2f4e5594f268c425d8ffd4eb20f50081bebfa9720bb78968840412b3e44e3a61d840cec99d178aed709b9731dda6a31c7961fecec6bd631e10ad5
6
+ metadata.gz: 21307c488260585d7a632144d23635bd9c8faaa070ad5935446f7efd8ff5c4a3ccaba02696275a1d9dbfc598321f9685d719b7cfd888c07f3b439f2f5532b7e3
7
+ data.tar.gz: 97468df41f6899cf2aca5fd6024c784a1e2344baf11758da243b56db6f3b94f6e0662963228f415ad2d22412183e7f42dd9428ecf5bb903bad948a5c7c0dd121
@@ -77,20 +77,32 @@ class Paperbin::Handler < Struct.new(:id, :type)
77
77
 
78
78
  def generate_files
79
79
  versions.each do |version|
80
- data = version.to_json
81
- unless files_exist?(gz_file(version))
82
- Zlib::GzipWriter.open(gz_file(version)) do |gz|
83
- gz.write data
84
- end
85
- end
80
+ write_gz_file version
81
+ write_md5_file version
82
+ end
83
+ end
84
+
85
+ def write_gz_file(version)
86
+ path = gz_file version
87
+ unless files_exist?(path)
88
+ Zlib::GzipWriter.open(path) { |gz| gz.write string_data(version) }
86
89
 
87
- File.open(md5_file(version), "w") do |file|
88
- file.write(Digest::MD5.hexdigest(data))
89
- end
90
+ timestamp = version.created_at.to_time
91
+ File.utime timestamp, timestamp, path
92
+ end
93
+ end
90
94
 
95
+ def write_md5_file(version)
96
+ File.open(md5_file(version), "w") do |file|
97
+ md5 = Digest::MD5.hexdigest(string_data(version))
98
+ file.write md5
91
99
  end
92
100
  end
93
101
 
102
+ def string_data(version)
103
+ version.to_json
104
+ end
105
+
94
106
  def check_versions
95
107
  versions.each_with_index do |version, index|
96
108
  # check both file exist or not
@@ -1,3 +1,3 @@
1
1
  module Paperbin
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -9,6 +9,8 @@ module Paperbin::VersionMixin
9
9
 
10
10
  def perform_worker
11
11
  Paperbin::WriteWorker.perform_async(item_id, item_type)
12
+ rescue Exception => e
13
+ Airbrake.notify_or_ignore(e) if Paperbin::Handler.new.options[:airbrake_enabled]
12
14
  end
13
15
 
14
16
  end
@@ -46,8 +46,9 @@ describe Paperbin::Handler do
46
46
  end
47
47
 
48
48
  context 'generate_files' do
49
- let(:version_1) { double(id: 1, to_json: "json") }
50
- let(:version_2) { double(id: 2, to_json: "json") }
49
+ let(:timestamp) { Time.now }
50
+ let(:version_1) { double(id: 1, to_json: "json", created_at: timestamp) }
51
+ let(:version_2) { double(id: 2, to_json: "json", created_at: timestamp) }
51
52
  let(:file) { double(write: true) }
52
53
 
53
54
  before do
@@ -57,6 +58,9 @@ describe Paperbin::Handler do
57
58
 
58
59
  it 'create correct Gzip files' do
59
60
  Zlib::GzipWriter.should_receive(:open).twice
61
+ expect(File).to receive(:utime).twice.with(
62
+ timestamp, timestamp, an_instance_of(String)
63
+ )
60
64
  handler.generate_files
61
65
  end
62
66
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperbin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - morhekil
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-01-22 00:00:00.000000000 Z
16
+ date: 2014-01-23 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: bundler