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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 57b99cdc2558a90d6f5bf066f1277e8f7cb04585
4
- data.tar.gz: 8cacd606f0b71d8aa5f9ea02c01932d9231b028f
3
+ metadata.gz: 37c978c091cd658200ee80b49bfc08afae0d195c
4
+ data.tar.gz: 63a6141de7602abdb15b8fde994e586eb49e607b
5
5
  SHA512:
6
- metadata.gz: 97b57662315dce3d78bfe4ec3d0d4c909b95eed5c172267298eaff605b84a3c6a27656b1f989811202dcfe175978fa34b3ad23ecda6c751de2811c982f958aa9
7
- data.tar.gz: 4439227f06d3c90236761801db296629054bdd20dc22b6ae82add253e7567eafab6c67d769a683d5c0637c79087774bf1fc2b3011503c3483fe6a06cf6131d7c
6
+ metadata.gz: be0a71594e218ad8ce48179b87d13acea5312663cee3307db411cf63ecd0c874e7634a22c0c12982c08e208da51a5c29031603f12ee7de77fc4b131123a98d0b
7
+ data.tar.gz: 7f44494d1dc2f4e5594f268c425d8ffd4eb20f50081bebfa9720bb78968840412b3e44e3a61d840cec99d178aed709b9731dda6a31c7961fecec6bd631e10ad5
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ tmp
19
19
  .ruby-version
20
20
  .ruby-gemset
21
21
  .*.swp
22
+ bin
@@ -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
- # 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)
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(version.item_id, version.item_type)
111
+ Paperbin::WriteWorker.perform_async(id, type)
113
112
  end
114
113
  end
115
114
 
@@ -1,3 +1,3 @@
1
1
  module Paperbin
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -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
- subject { Paperbin::Handler.new("123456789", "client") }
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
- subject.stub(item: item)
13
+ handler.stub(item: item)
12
14
  end
13
15
 
14
16
  it "return correct formatted_id" do
15
- subject.formatted_id.should == "000123456789"
17
+ handler.formatted_id.should == "000123456789"
16
18
  end
17
19
 
18
20
  it "split formatted_id into 3 sections" do
19
- subject.split_id.should == ['0001', '2345', '6789']
21
+ handler.split_id.should == ['0001', '2345', '6789']
20
22
  end
21
23
 
22
- it 'return options', focus: true do
23
- subject.options.should == {path: '/path', base_scope: 'organisation_id'}
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
- subject.directory_path.should == "/path/org1/client/0001/2345/6789"
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
- subject.create_directory
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
- subject.create_directory
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
- subject.stub(versions: [version_1, version_2])
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
- subject.generate_files
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.2
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-17 00:00:00.000000000 Z
16
+ date: 2014-01-22 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: bundler