paperbin 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/paperbin/handler.rb +12 -13
- data/lib/paperbin/version.rb +1 -1
- data/spec/paperbin_handler_spec.rb +59 -12
- data/spec/spec_helper.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37c978c091cd658200ee80b49bfc08afae0d195c
|
4
|
+
data.tar.gz: 63a6141de7602abdb15b8fde994e586eb49e607b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be0a71594e218ad8ce48179b87d13acea5312663cee3307db411cf63ecd0c874e7634a22c0c12982c08e208da51a5c29031603f12ee7de77fc4b131123a98d0b
|
7
|
+
data.tar.gz: 7f44494d1dc2f4e5594f268c425d8ffd4eb20f50081bebfa9720bb78968840412b3e44e3a61d840cec99d178aed709b9731dda6a31c7961fecec6bd631e10ad5
|
data/.gitignore
CHANGED
data/lib/paperbin/handler.rb
CHANGED
@@ -93,23 +93,22 @@ class Paperbin::Handler < Struct.new(:id, :type)
|
|
93
93
|
|
94
94
|
def check_versions
|
95
95
|
versions.each_with_index do |version, index|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
96
|
+
# check both file exist or not
|
97
|
+
next unless files_exist?(md5_file(version), gz_file(version))
|
98
|
+
|
99
|
+
if md5_valid?(version)
|
100
|
+
process_valid_records(version, versions.last)
|
101
|
+
else
|
102
|
+
# remove both files
|
103
|
+
[gz_file(version), md5_file(version)].each do |f|
|
104
|
+
File.delete(f)
|
105
|
+
end
|
106
|
+
raise Errno::ENOENT
|
105
107
|
end
|
106
|
-
raise Errno::ENOENT
|
107
|
-
end
|
108
108
|
end
|
109
|
-
|
110
109
|
rescue Errno::ENOENT
|
111
110
|
# lodge worker unless valid
|
112
|
-
Paperbin::WriteWorker.perform_async(
|
111
|
+
Paperbin::WriteWorker.perform_async(id, type)
|
113
112
|
end
|
114
113
|
end
|
115
114
|
|
data/lib/paperbin/version.rb
CHANGED
@@ -3,28 +3,30 @@ require "spec_helper"
|
|
3
3
|
describe Paperbin::Handler do
|
4
4
|
|
5
5
|
let(:item) { double(organisation_id: "org1") }
|
6
|
+
let(:target_id) { '123456789' }
|
7
|
+
let(:target_type) { 'Client' }
|
6
8
|
|
7
|
-
|
9
|
+
let!(:handler) { Paperbin::Handler.new target_id, target_type }
|
8
10
|
before(:each) do
|
9
11
|
Paperbin::Config.default_options[:path] = '/path'
|
10
12
|
Paperbin::Config.default_options[:base_scope] = 'organisation_id'
|
11
|
-
|
13
|
+
handler.stub(item: item)
|
12
14
|
end
|
13
15
|
|
14
16
|
it "return correct formatted_id" do
|
15
|
-
|
17
|
+
handler.formatted_id.should == "000123456789"
|
16
18
|
end
|
17
19
|
|
18
20
|
it "split formatted_id into 3 sections" do
|
19
|
-
|
21
|
+
handler.split_id.should == ['0001', '2345', '6789']
|
20
22
|
end
|
21
23
|
|
22
|
-
it 'return options'
|
23
|
-
|
24
|
+
it 'return options' do
|
25
|
+
handler.options.should == {path: '/path', base_scope: 'organisation_id'}
|
24
26
|
end
|
25
27
|
|
26
28
|
it "return directory" do
|
27
|
-
|
29
|
+
handler.directory_path.should == "/path/org1/Client/0001/2345/6789"
|
28
30
|
end
|
29
31
|
|
30
32
|
context 'directories' do
|
@@ -32,31 +34,76 @@ describe Paperbin::Handler do
|
|
32
34
|
it 'generate directory when no exists' do
|
33
35
|
Dir.stub(exists?: false)
|
34
36
|
FileUtils.should_receive(:mkdir_p)
|
35
|
-
|
37
|
+
handler.create_directory
|
36
38
|
end
|
37
39
|
|
38
40
|
it 'dont generate directory when exists' do
|
39
41
|
Dir.stub(exists?: true)
|
40
42
|
FileUtils.should_not_receive(:mkdir_p)
|
41
|
-
|
43
|
+
handler.create_directory
|
42
44
|
end
|
43
45
|
|
44
46
|
end
|
45
47
|
|
46
48
|
context 'generate_files' do
|
47
|
-
|
48
49
|
let(:version_1) { double(id: 1, to_json: "json") }
|
49
50
|
let(:version_2) { double(id: 2, to_json: "json") }
|
50
51
|
let(:file) { double(write: true) }
|
51
52
|
|
52
53
|
before do
|
53
|
-
|
54
|
+
handler.stub(versions: [version_1, version_2])
|
54
55
|
File.stub(open: file)
|
55
56
|
end
|
56
57
|
|
57
58
|
it 'create correct Gzip files' do
|
58
59
|
Zlib::GzipWriter.should_receive(:open).twice
|
59
|
-
|
60
|
+
handler.generate_files
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '#check_versions' do
|
66
|
+
let(:version1) { double(id: 1, to_json: "json", delete: true) }
|
67
|
+
let(:version2) { double(id: 2, to_json: "json", delete: true) }
|
68
|
+
let(:file) { double(write: true) }
|
69
|
+
|
70
|
+
before do
|
71
|
+
handler.stub versions: [version1, version2]
|
72
|
+
handler.stub files_exist?: true
|
73
|
+
File.stub rename: true, delete: true
|
74
|
+
Paperbin::WriteWorker.stub perform_async: true
|
75
|
+
end
|
76
|
+
|
77
|
+
subject(:check_versions) { handler.check_versions }
|
78
|
+
|
79
|
+
context 'when md5 is valid' do
|
80
|
+
before { handler.stub md5_valid?: true }
|
81
|
+
|
82
|
+
it 'deletes the versions, except for the last one' do
|
83
|
+
expect(version1).to receive(:delete).once
|
84
|
+
expect(version2).to receive(:delete).never
|
85
|
+
check_versions
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'renames the file' do
|
89
|
+
expect(File).to receive(:rename).twice
|
90
|
+
check_versions
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context 'when md5 is invalid' do
|
95
|
+
before { handler.stub md5_valid?: false }
|
96
|
+
|
97
|
+
it 'removes the files' do
|
98
|
+
expect(File).to receive(:delete).twice
|
99
|
+
check_versions
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'lodges a write worker to re-write the files' do
|
103
|
+
expect(Paperbin::WriteWorker).to receive(:perform_async).once
|
104
|
+
.with(target_id, target_type)
|
105
|
+
check_versions
|
106
|
+
end
|
60
107
|
end
|
61
108
|
|
62
109
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,10 @@
|
|
1
1
|
require 'paperbin'
|
2
2
|
|
3
|
+
RSpec.configure do |config|
|
4
|
+
config.mock_with :rspec
|
5
|
+
|
6
|
+
config.filter_run focus: true
|
7
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
8
|
+
config.run_all_when_everything_filtered = true
|
9
|
+
config.alias_example_to :fit, focus: true
|
10
|
+
end
|
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.
|
4
|
+
version: 0.0.3
|
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-
|
16
|
+
date: 2014-01-22 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: bundler
|