disk_store 0.2.1 → 0.2.2

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: 98a111dc2aa5475b5bb793ca372d18227448eb45
4
- data.tar.gz: 72639d803f117138f4202f728b3c7c07775850ac
3
+ metadata.gz: b80a1438fb5454793cd77e6fa2371638c6055664
4
+ data.tar.gz: 4c015900c8c3f0db8e7ecd47aab6300ef4348b4c
5
5
  SHA512:
6
- metadata.gz: 6fe3eb0016349c8a660af8a5be345d6c7d4875c21f558c0b18d2464fbc727e27844d3682f56828c2c6363340087b7d84a104202b26cefcc915e5e1b9aa0d757a
7
- data.tar.gz: e55d319d351764d3bb01ae3f27f934b8ed5e49104efae5796c12639f2239d40e78c623e3e1ce7d9dbe99b8b1b3c7f2f4b9b70cc8029e3946cbefea1aacb6d3f1
6
+ metadata.gz: 6e8c657344f7039344dd09019d44de1d5f75750ea87f29c5fb49f8d16340cba53b6c407db96fcd614bf9676445e2fe9cde2b89fb96bfae2c0a0feccf1e94c98b
7
+ data.tar.gz: 158f6cedb964548dd86bc52b7bbe52e1cc4ac00325a54b3e313f74f73b86da3cd9577938e532b5c4b003d5245cd8b21947fed7ebed768ddd6b2ac15195b91d03
data/Gemfile.lock CHANGED
@@ -1,38 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- disk_store (0.2.1)
4
+ disk_store (0.2.2)
5
5
  rake
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- addressable (2.3.5)
11
- crack (0.4.1)
12
- safe_yaml (~> 0.9.0)
13
10
  diff-lcs (1.2.5)
14
- multi_json (1.8.4)
15
- rake (10.3.1)
11
+ rake (10.3.2)
16
12
  rspec (2.14.1)
17
13
  rspec-core (~> 2.14.0)
18
14
  rspec-expectations (~> 2.14.0)
19
15
  rspec-mocks (~> 2.14.0)
20
- rspec-core (2.14.7)
16
+ rspec-core (2.14.8)
21
17
  rspec-expectations (2.14.5)
22
18
  diff-lcs (>= 1.1.3, < 2.0)
23
- rspec-mocks (2.14.5)
24
- safe_yaml (0.9.7)
25
- vcr (2.8.0)
26
- webmock (1.13.0)
27
- addressable (>= 2.2.7)
28
- crack (>= 0.3.2)
19
+ rspec-mocks (2.14.6)
29
20
 
30
21
  PLATFORMS
31
22
  ruby
32
23
 
33
24
  DEPENDENCIES
34
25
  disk_store!
35
- multi_json
36
26
  rspec
37
- vcr
38
- webmock
data/disk_store.gemspec CHANGED
@@ -22,8 +22,5 @@ Gem::Specification.new do |gem|
22
22
  gem.add_dependency "rake"
23
23
 
24
24
  gem.test_files = Dir.glob("spec/**/*")
25
- gem.add_development_dependency "multi_json"
26
25
  gem.add_development_dependency "rspec"
27
- gem.add_development_dependency "vcr"
28
- gem.add_development_dependency "webmock"
29
26
  end
@@ -5,11 +5,8 @@ class DiskStore
5
5
  # Collect and sort files based on last access time
6
6
  sorted_files = files
7
7
  .map { |file|
8
- data = nil
9
- File.new(file, 'rb').tap { |fd|
10
- data = { path: file, last_fetch: fd.atime, size: fd.size }
11
- }.close
12
- data
8
+ st = File.stat(file)
9
+ { path: file, last_fetch: st.atime, size: st.size }
13
10
  }
14
11
  .sort { |a, b| a[:last_fetch] <=> b[:last_fetch] } # Oldest first
15
12
 
@@ -96,7 +96,7 @@ class DiskStore
96
96
  end
97
97
 
98
98
  def current_cache_size
99
- files.map { |file| File.size(file) }.inject { |sum, size| sum + size } || 0
99
+ files.inject(0) { |sum, file| sum + File.size(file) }
100
100
  end
101
101
 
102
102
  def maximum_cache_size
@@ -1,3 +1,3 @@
1
1
  class DiskStore
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe DiskStore do
4
4
  let(:cache) { DiskStore.new @tmpdir }
5
- let(:file_contents) { "Hello, Doge" }
5
+ let(:file_contents) { SecureRandom.random_bytes(8192) }
6
6
  let(:file) { Tempfile.new("My Temp File.psd") }
7
7
  let(:key) { "doge" }
8
8
 
@@ -14,6 +14,7 @@ describe DiskStore do
14
14
  end
15
15
 
16
16
  before(:each) do
17
+ file.binmode
17
18
  file.write file_contents
18
19
  file.flush
19
20
  end
@@ -44,7 +45,7 @@ describe DiskStore do
44
45
  }.to change{ Dir[File.join(@tmpdir, "**/*")].size }.by(3)
45
46
 
46
47
  file_path = Dir[File.join(@tmpdir, "**/*")].last
47
- expect(File.read(file_path)).to eq file_contents
48
+ expect(File.binread(file_path)).to eq file_contents
48
49
  end
49
50
  end
50
51
 
@@ -66,19 +67,4 @@ describe DiskStore do
66
67
  expect(cache.exist?(key)).to be_false
67
68
  end
68
69
  end
69
-
70
- context "web resources", :vcr do
71
- let(:url) { "http://media.giphy.com/media/KXD1pSzGb3Khi/giphy.gif" }
72
- let(:key) { "lolololol" }
73
-
74
- it "should cache the result of a web resource in a file" do
75
- expect(cache.exist?(key)).to be_false
76
-
77
- cache.fetch(key) do
78
- open(url)
79
- end
80
-
81
- expect(cache.read(key).read).to eq open(url).read
82
- end
83
- end
84
70
  end
data/spec/spec_helper.rb CHANGED
@@ -1,32 +1,12 @@
1
1
  require File.expand_path './lib/disk_store'
2
2
  require 'rspec'
3
+ require 'securerandom'
3
4
  require 'tempfile'
4
5
  require 'tmpdir'
5
- require 'vcr'
6
-
7
- VCR.configure do |c|
8
- c.configure_rspec_metadata!
9
-
10
- c.default_cassette_options = {
11
- serialize_with: :json,
12
- preserve_exact_body_bytes: true,
13
- decode_compressed_response: true,
14
- match_requests_on: [:method]
15
- }
16
-
17
- c.cassette_library_dir = 'spec/cassettes'
18
- c.hook_into :webmock
19
- c.ignore_localhost = true
20
- end
21
6
 
22
7
  RSpec.configure do |config|
23
8
  config.color_enabled = true
24
9
  config.tty = true
25
10
 
26
11
  config.treat_symbols_as_metadata_keys_with_true_values = true
27
-
28
- config.around(:each, :vcr) do |example|
29
- name = example.metadata[:full_description].gsub(/\//, "_").split(/\s+/, 2).join("/").gsub(/[^\w\/]+/, "_").downcase
30
- VCR.use_cassette(name) { example.call }
31
- end
32
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disk_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Sutton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-13 00:00:00.000000000 Z
11
+ date: 2014-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: multi_json
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rspec
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,34 +38,6 @@ dependencies:
52
38
  - - '>='
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: vcr
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: webmock
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
41
  description: Cache files the smart way.
84
42
  email:
85
43
  - kelly@layervault.com
@@ -98,7 +56,6 @@ files:
98
56
  - lib/disk_store/eviction_strategies/lru.rb
99
57
  - lib/disk_store/reaper.rb
100
58
  - lib/disk_store/version.rb
101
- - spec/cassettes/DiskStore/web_resources/should_cache_the_result_of_a_web_resource_in_a_file.json
102
59
  - spec/disk_store_spec.rb
103
60
  - spec/reaper_spec.rb
104
61
  - spec/spec_helper.rb
@@ -127,7 +84,6 @@ signing_key:
127
84
  specification_version: 4
128
85
  summary: Cache fiels the smart way.
129
86
  test_files:
130
- - spec/cassettes/DiskStore/web_resources/should_cache_the_result_of_a_web_resource_in_a_file.json
131
87
  - spec/disk_store_spec.rb
132
88
  - spec/reaper_spec.rb
133
89
  - spec/spec_helper.rb