spwn 0.1.1 → 0.1.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.
@@ -35,9 +35,7 @@ class Spwn
35
35
  options = args.last.is_a?(Hash) ? args.last : {}
36
36
  return spawn_multiples( :dir, *args, &block ) unless options[:count].nil?
37
37
  name = args.first.is_a?(String) ? args.first : 'dir'
38
-
39
- digit = @dirs.empty? ? '1' : next_digit( @dirs.last )
40
- path = File.join(Dir.pwd, "#{name}#{digit}")
38
+ path = File.join(Dir.pwd, next_dirname(name))
41
39
  Dir.mkdir(path)
42
40
  @dirs << new_dir = Dir.new(path)
43
41
  if block_given?
@@ -86,10 +84,15 @@ class Spwn
86
84
  items
87
85
  end
88
86
  def self.next_digit(item)
89
- File.basename(item).match(/\d+/)[0].next
87
+ match = File.basename(item).match(/\d+/)
88
+ if match.nil? then '2' else match[0].next end
89
+ end
90
+ def self.next_dirname(name)
91
+ digit = @dirs.empty? ? '' : next_digit( @dirs.last )
92
+ "#{name}#{digit}"
90
93
  end
91
94
  def self.next_filename(name, ext)
92
- digit = @files.empty? ? '1' : next_digit( @files.last )
95
+ digit = @files.empty? ? '' : next_digit( @files.last )
93
96
  "#{name}#{digit}.#{ext}"
94
97
  end
95
98
  def self.split_filename(fullname)
@@ -1,3 +1,3 @@
1
1
  class Spwn
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -14,7 +14,7 @@ describe Spwn do
14
14
  Spwn.extensions = old_exts
15
15
  end
16
16
 
17
- context '#file' do
17
+ context 'file' do
18
18
  it "should be instance of File" do
19
19
  Spwn.file.should be_an_instance_of File
20
20
  end
@@ -26,21 +26,21 @@ describe Spwn do
26
26
  Spwn.files.should include Spwn.file
27
27
  end
28
28
  it "should have a common file name" do
29
- File.basename(Spwn.file).should match /\Afile\d+/
29
+ File.basename(Spwn.file).should match /\Afile\d*/
30
30
  end
31
31
  it "should increment the file name" do
32
- pattern = /\Afile(\d+)(?:.\w*)?/
32
+ pattern = /\Afile(\d+)?(?:.\w*)?/
33
33
  Spwn.file
34
34
  expect {
35
35
  3.times { Spwn.file }
36
36
  }.to change {
37
37
  # the digit in the filename for the last spawned file
38
- File.basename(Spwn.files.last).match(pattern)[1].to_i
39
- }.from(1).to(4)
38
+ File.basename(Spwn.files.last).match(pattern)[1]
39
+ }.from(nil).to('4')
40
40
  end
41
41
  it "should allow you to define a name" do
42
42
  file = Spwn.file('candy', ext: 'html')
43
- File.basename(file).should == 'candy1.html'
43
+ File.basename(file).should == 'candy.html'
44
44
  end
45
45
  it "should use a random extension" do
46
46
  ext = File.extname(Spwn.file).delete '.'
@@ -75,17 +75,18 @@ describe Spwn do
75
75
  Spwn.dirs.should include dir
76
76
  end
77
77
  it "should have a common dir name" do
78
- File.basename(dir).should match /\Adir\d+/
78
+ File.basename(dir).should match /\Adir\d*/
79
79
  end
80
80
  it "should increment the dir name" do
81
- pattern = /\Adir(\d+)/
81
+ pattern = /\Adir(\d+)?/
82
+ puts Spwn.dirs
82
83
  Spwn.dir
83
84
  expect {
84
85
  3.times { Spwn.dir }
85
86
  }.to change {
86
87
  # the digit in the filename for the last spawned file
87
- File.basename(Spwn.dirs.last).match(pattern)[1].to_i
88
- }.from(1).to(4)
88
+ File.basename(Spwn.dirs.last).match(pattern)[1]
89
+ }.from(nil).to('4')
89
90
  end
90
91
  it "should cd into the dir if a block is given" do
91
92
  Spwn.dir do |directory|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: