writer 0.2.0 → 0.3.0
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/lib/writer/file_namer.rb +15 -4
- data/lib/writer/version.rb +1 -1
- data/spec/writer_spec.rb +20 -20
- metadata +3 -3
data/lib/writer/file_namer.rb
CHANGED
@@ -27,11 +27,12 @@ module Writer
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def prevent_overwrite(name, base = nil, ext = nil)
|
30
|
+
separator = separator_for(name, base)
|
30
31
|
to_fix = base || name
|
31
32
|
count = 1
|
32
33
|
|
33
34
|
while File.exists?(name)
|
34
|
-
name = append_count(to_fix, count += 1)
|
35
|
+
name = append_count(to_fix, separator, count += 1)
|
35
36
|
name << ".#{ext}" if base
|
36
37
|
end
|
37
38
|
|
@@ -39,9 +40,19 @@ module Writer
|
|
39
40
|
end
|
40
41
|
|
41
42
|
private
|
42
|
-
def append_count(name, count)
|
43
|
-
|
44
|
-
|
43
|
+
def append_count(name, separator, count)
|
44
|
+
basename = name.gsub(/(--|\.)\d*$/, '')
|
45
|
+
zero_pad = count < 10 ? 0 : nil
|
46
|
+
|
47
|
+
[basename, separator, zero_pad, count].join
|
48
|
+
end
|
49
|
+
|
50
|
+
def separator_for(name, base = nil)
|
51
|
+
if base || name.include?('.')
|
52
|
+
"."
|
53
|
+
else
|
54
|
+
"--"
|
55
|
+
end
|
45
56
|
end
|
46
57
|
end
|
47
58
|
end
|
data/lib/writer/version.rb
CHANGED
data/spec/writer_spec.rb
CHANGED
@@ -21,12 +21,21 @@ describe Writer do
|
|
21
21
|
file.read.should == "\n"
|
22
22
|
end
|
23
23
|
|
24
|
+
it "prevents overwriting" do
|
25
|
+
50.times do
|
26
|
+
Writer.write!
|
27
|
+
end
|
28
|
+
|
29
|
+
File.open('2012-01Jan-03.02.md')
|
30
|
+
File.open('2012-01Jan-03.52.md')
|
31
|
+
end
|
32
|
+
|
24
33
|
it "plays well with no dots" do
|
25
34
|
file = Writer.write!('nodots')
|
26
35
|
File.basename(file).should == 'nodots'
|
27
36
|
|
28
37
|
file = Writer.write!('nodots')
|
29
|
-
File.basename(file).should == 'nodots--
|
38
|
+
File.basename(file).should == 'nodots--02'
|
30
39
|
end
|
31
40
|
|
32
41
|
it "plays well with a dot at the end" do
|
@@ -34,7 +43,7 @@ describe Writer do
|
|
34
43
|
File.basename(file).should == 'dot.'
|
35
44
|
|
36
45
|
file = Writer.write!('dot.')
|
37
|
-
File.basename(file).should == 'dot
|
46
|
+
File.basename(file).should == 'dot.02.'
|
38
47
|
end
|
39
48
|
|
40
49
|
it "plays well with a dot at the beginning" do
|
@@ -42,21 +51,13 @@ describe Writer do
|
|
42
51
|
File.basename(file).should == '.dot'
|
43
52
|
|
44
53
|
file = Writer.write!('.dot')
|
45
|
-
File.basename(file).should == '.dot
|
54
|
+
File.basename(file).should == '.dot.02'
|
46
55
|
end
|
47
56
|
|
48
57
|
it "plays well with multiple dots" do
|
49
58
|
Writer.write!('some.jquery.file')
|
50
59
|
file = Writer.write!('some.jquery.file')
|
51
|
-
File.basename(file).should == 'some.jquery
|
52
|
-
end
|
53
|
-
|
54
|
-
it "prevents overwriting" do
|
55
|
-
Writer.write!
|
56
|
-
Writer.write!
|
57
|
-
|
58
|
-
File.open('2012-01Jan-03--2.md')
|
59
|
-
File.open('2012-01Jan-03--3.md')
|
60
|
+
File.basename(file).should == 'some.jquery.02.file'
|
60
61
|
end
|
61
62
|
|
62
63
|
it "creates the file with your custom name" do
|
@@ -80,18 +81,17 @@ end
|
|
80
81
|
|
81
82
|
def cleanup_files
|
82
83
|
File.delete('2012-01Jan-03.md')
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
File.delete('2012-01Jan-03--5.md')
|
84
|
+
52.times do |n|
|
85
|
+
File.delete("2012-01Jan-03.#{'0' if n < 8}#{n + 2}.md")
|
86
|
+
end
|
87
87
|
File.delete('nodots')
|
88
|
-
File.delete('nodots--2')
|
89
88
|
File.delete('dot.')
|
90
|
-
File.delete('dot
|
89
|
+
File.delete('dot.02.')
|
91
90
|
File.delete('some.jquery.file')
|
92
|
-
File.delete('some.jquery
|
91
|
+
File.delete('some.jquery.02.file')
|
93
92
|
File.delete('.template')
|
94
93
|
File.delete('My custom filename.txt')
|
95
94
|
File.delete('.dot')
|
96
|
-
File.delete('.dot
|
95
|
+
File.delete('.dot.02')
|
96
|
+
File.delete('nodots--2')
|
97
97
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: writer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-07-15 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70124302849860 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70124302849860
|
25
25
|
description: Easily start a new file to write in.
|
26
26
|
email:
|
27
27
|
- joe@joesak.com
|