nrename 0.2.3 → 0.2.5
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/nrename/options.rb +1 -10
- data/lib/nrename/utils.rb +20 -0
- data/lib/nrename/version.rb +1 -1
- data/lib/nrename.rb +1 -0
- data/spec/nrename/utils_spec.rb +59 -0
- metadata +4 -2
data/lib/nrename/options.rb
CHANGED
@@ -119,16 +119,7 @@ module Nrename
|
|
119
119
|
|
120
120
|
if options.recursive
|
121
121
|
dirs.dup.each do |dir|
|
122
|
-
|
123
|
-
# work with unescaped path, also mri-1.8 does not have
|
124
|
-
# constant RUBY_ENGINE defined.
|
125
|
-
unless defined? RUBY_ENGINE and RUBY_ENGINE == 'jruby'
|
126
|
-
dir = dir.shellescape
|
127
|
-
end
|
128
|
-
|
129
|
-
Dir.glob(File.join dir, '**/') do |subdir|
|
130
|
-
dirs << subdir.chomp('/')
|
131
|
-
end
|
122
|
+
dirs.merge Utils.all_subdirs_of dir
|
132
123
|
end
|
133
124
|
end
|
134
125
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'set'
|
3
|
+
|
4
|
+
module Nrename
|
5
|
+
module Utils
|
6
|
+
def all_subdirs_of(dir)
|
7
|
+
dir = Pathname.new dir
|
8
|
+
|
9
|
+
children = Set.new
|
10
|
+
|
11
|
+
dir.children.select(&:directory?).map(&:to_s).each do |child|
|
12
|
+
children.add child
|
13
|
+
children.merge all_subdirs_of child
|
14
|
+
end
|
15
|
+
|
16
|
+
Array children
|
17
|
+
end
|
18
|
+
module_function :all_subdirs_of
|
19
|
+
end
|
20
|
+
end
|
data/lib/nrename/version.rb
CHANGED
data/lib/nrename.rb
CHANGED
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Nrename::Utils do
|
4
|
+
include Nrename::Utils
|
5
|
+
|
6
|
+
describe '.all_subdirs_of' do
|
7
|
+
let(:test_dir) { File.expand_path '[dir] )with( funny {name}' }
|
8
|
+
|
9
|
+
let(:subdirs) {
|
10
|
+
%w[foo bar baz quux].map { |dir|
|
11
|
+
File.expand_path dir, test_dir
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
before :each do
|
16
|
+
mkdir_p subdirs
|
17
|
+
end
|
18
|
+
|
19
|
+
after :each do
|
20
|
+
rm_rf test_dir
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'returns subdirectories of provided directory' do
|
24
|
+
expect(all_subdirs_of test_dir).to match_array subdirs
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'ignores plain files' do
|
28
|
+
inside test_dir do
|
29
|
+
touch %w[some plain files]
|
30
|
+
end
|
31
|
+
|
32
|
+
expect(all_subdirs_of test_dir).to match_array subdirs
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'captures deeply nested directories' do
|
36
|
+
inside test_dir do
|
37
|
+
inside 'deeper' do
|
38
|
+
inside 'even_deeper' do
|
39
|
+
mkdir 'deepest'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
all_subdirs = [
|
45
|
+
File.join(test_dir, 'deeper'),
|
46
|
+
File.join(test_dir, 'deeper', 'even_deeper'),
|
47
|
+
File.join(test_dir, 'deeper', 'even_deeper', 'deepest')
|
48
|
+
] + subdirs
|
49
|
+
|
50
|
+
expect(all_subdirs_of test_dir).to match_array all_subdirs
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'raises error when given argument is not a directory' do
|
54
|
+
expect {
|
55
|
+
all_subdirs_of '/non/existant/directory'
|
56
|
+
}.to raise_error StandardError
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nrename
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -111,10 +111,12 @@ files:
|
|
111
111
|
- lib/nrename/numbered_file.rb
|
112
112
|
- lib/nrename/options.rb
|
113
113
|
- lib/nrename/runner.rb
|
114
|
+
- lib/nrename/utils.rb
|
114
115
|
- lib/nrename/version.rb
|
115
116
|
- spec/nrename/directory_spec.rb
|
116
117
|
- spec/nrename/numbered_file_spec.rb
|
117
118
|
- spec/nrename/options_spec.rb
|
119
|
+
- spec/nrename/utils_spec.rb
|
118
120
|
- spec/spec_helper.rb
|
119
121
|
homepage: https://github.com/vderyagin/nrename
|
120
122
|
licenses:
|
@@ -131,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
133
|
version: '0'
|
132
134
|
segments:
|
133
135
|
- 0
|
134
|
-
hash: -
|
136
|
+
hash: -2006144639180283266
|
135
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
138
|
none: false
|
137
139
|
requirements:
|