history_file 0.2.0 → 0.2.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "history_file"
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jannis Hermanns"]
12
- s.date = "2012-11-21"
12
+ s.date = "2012-11-29"
13
13
  s.description = "A File like class that supports versioning by date and has a fallback to older files"
14
14
  s.email = "jannis@moviepilot.com"
15
15
  s.extra_rdoc_files = [
@@ -1,2 +1,2 @@
1
- require 'history_file/file_delegator'
2
- require 'history_file/history_file'
1
+ require_relative 'history_file/file_delegator'
2
+ require_relative 'history_file/history_file'
@@ -114,7 +114,11 @@ module HistoryFile
114
114
  return false unless @fallback_glob
115
115
  dir = File.dirname(original_filename.to_s)
116
116
  file = File.basename(original_filename.to_s)
117
- glob = File.join(dir, @fallback_glob+file)
117
+ if @subdir
118
+ glob = File.join(dir, @fallback_glob, file)
119
+ else
120
+ glob = File.join(dir, "#{@fallback_glob}-#{file}")
121
+ end
118
122
  candidates = Dir[glob].sort.select do |c|
119
123
  c < target_filename
120
124
  end.last
@@ -36,7 +36,7 @@ module HistoryFile
36
36
  def self.[](offset)
37
37
  validate_offset(offset)
38
38
  use_subdirs = @mode == :subdir
39
- fallback_glob = "[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]-"
39
+ fallback_glob = "[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]"
40
40
  FileDelegator.new(prefix: prefix(offset),
41
41
  fallback_glob: fallback_glob,
42
42
  use_subdirs: use_subdirs)
@@ -97,36 +97,43 @@ describe HistoryFile do
97
97
  # We run these tests twice
98
98
  [:subdir, :filename].each do |mode|
99
99
 
100
- HistoryFile.mode = mode
101
100
  context "falling back to older files in #{mode} mode" do
102
- before(:all) do
103
- [1,2,3,6,7].each do |i|
101
+ it "sets up things correctly" do
102
+ HistoryFile.mode = mode
103
+ [2,3,6,7,8].each do |i|
104
104
  date = DateTime.now - i
105
- HistoryFile[date].open("ht.txt", "w") do |file|
105
+ HistoryFile[date].open("ht_#{mode}.txt", "w") do |file|
106
106
  file.write "Day #{i} #{mode}"
107
107
  end
108
108
  end
109
109
  end
110
110
 
111
- after(:all) do
112
- [1,2,3,6,7].each do |i|
113
- date = DateTime.now - i
114
- HistoryFile[date].unlink("ht.txt")
115
- end
116
- Dir.unlink("some_prefix") rescue nil
117
- end
118
-
119
- it "to yesterday's file" do
111
+ it "to a four days old file" do
112
+ HistoryFile.mode = mode
120
113
  date = DateTime.now - 4
121
- HistoryFile[date].read("ht.txt").should == "Day 6 #{mode}"
114
+ HistoryFile[date].read("ht_#{mode}.txt").should == "Day 6 #{mode}"
122
115
  end
123
116
 
124
117
  it "to an error if nothing older exists" do
118
+ HistoryFile.mode = mode
125
119
  expect{
126
- date = DateTime.now - 8
127
- HistoryFile[date].read("ht.txt")
120
+ date = DateTime.now - 9
121
+ HistoryFile[date].read("ht_#{mode}.txt")
128
122
  }.to raise_error(Errno::ENOENT)
129
123
  end
124
+
125
+ it "removes stuff we assumed we created" do
126
+ HistoryFile.mode = mode
127
+ [2,3,6,7,8].each do |i|
128
+ date = DateTime.now - i
129
+ HistoryFile[date].unlink("ht_#{mode}.txt")
130
+ if mode == :subdir
131
+ dir = File.dirname(HistoryFile[date].prefixed_filename("ht_#{mode}.txt"))
132
+ Dir.unlink(dir)
133
+ end
134
+ end
135
+ end
136
+
130
137
  end
131
138
  end
132
139
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: history_file
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-21 00:00:00.000000000 Z
12
+ date: 2012-11-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redcarpet
@@ -276,7 +276,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
276
  version: '0'
277
277
  segments:
278
278
  - 0
279
- hash: -4078239623642015702
279
+ hash: -3732712401603984020
280
280
  required_rubygems_version: !ruby/object:Gem::Requirement
281
281
  none: false
282
282
  requirements: