mass_rename 1.0.1 → 1.1.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +25 -9
- data/README.md +8 -5
- data/{exe → bin}/mass_rename +1 -0
- data/lib/mass_rename.rb +53 -56
- data/lib/mass_rename/version.rb +1 -1
- data/mass_rename.gemspec +5 -6
- data/spec/fixtures/example file 0.txt +0 -0
- data/spec/fixtures/example file 1.txt +0 -0
- data/spec/fixtures/example file 2.txt +0 -0
- data/spec/fixtures/example file 3.txt +0 -0
- data/spec/fixtures/example file 4.txt +0 -0
- data/spec/fixtures/example file 5.txt +0 -0
- data/spec/fixtures/example file 6.txt +0 -0
- data/spec/fixtures/example file 7.txt +0 -0
- data/spec/fixtures/example file 8.txt +0 -0
- data/spec/fixtures/example file 9.txt +0 -0
- data/spec/fixtures/some_dir/example file 0.txt +0 -0
- data/spec/fixtures/some_dir/example file 1.txt +0 -0
- data/spec/fixtures/some_dir/example file 2.txt +0 -0
- data/spec/fixtures/some_dir/example file 3.txt +0 -0
- data/spec/fixtures/some_dir/example file 4.txt +0 -0
- data/spec/mass_rename_spec.rb +142 -0
- data/spec/spec_helper.rb +31 -0
- metadata +44 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88558a4ffaaa6213acef188079224f1d5d689a96551c83ff1dfc6b043b72feb0
|
4
|
+
data.tar.gz: fcf9cf9dbbbcfd429a940a24100dce9e1c2ce1cdcfc5a2c60f3bba7b6d3fa34a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2dff9b27f94844eb59530982664263bee4d1569cfdfb12039c9194d809f6b381cd0533987e3014f2cbc834346173b0f57597d5bf32a830fd7cd984ce0f63eeff
|
7
|
+
data.tar.gz: 7b85b80460931c08c427fed46435395ee0f7c2f05c5fa738b240b103a883191c3941681f555d401e14f8aaf5638798fb003b56c24dbb6325206b6aacf7e91627
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,26 +1,36 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2018-07-25 09:19:19 -1000 using RuboCop version 0.58.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
+
# Offense count: 1
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/*.gemspec
|
12
|
+
Gemspec/RequiredRubyVersion:
|
13
|
+
Exclude:
|
14
|
+
- 'mass_rename.gemspec'
|
15
|
+
|
16
|
+
# Offense count: 1
|
17
|
+
# Cop supports --auto-correct.
|
18
|
+
# Configuration parameters: EnforcedStyle.
|
19
|
+
# SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent
|
20
|
+
Layout/IndentHeredoc:
|
21
|
+
Exclude:
|
22
|
+
- 'spec/mass_rename_spec.rb'
|
23
|
+
|
9
24
|
# Offense count: 2
|
10
25
|
# Configuration parameters: CountComments, ExcludedMethods.
|
26
|
+
# ExcludedMethods: refine
|
11
27
|
Metrics/BlockLength:
|
12
|
-
Max:
|
13
|
-
|
14
|
-
# Offense count: 6
|
15
|
-
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
16
|
-
# URISchemes: http, https
|
17
|
-
Metrics/LineLength:
|
18
|
-
Max: 120
|
28
|
+
Max: 116
|
19
29
|
|
20
30
|
# Offense count: 1
|
21
31
|
# Configuration parameters: CountComments.
|
22
32
|
Metrics/MethodLength:
|
23
|
-
Max:
|
33
|
+
Max: 24
|
24
34
|
|
25
35
|
# Offense count: 1
|
26
36
|
Style/Documentation:
|
@@ -28,3 +38,9 @@ Style/Documentation:
|
|
28
38
|
- 'spec/**/*'
|
29
39
|
- 'test/**/*'
|
30
40
|
- 'lib/mass_rename.rb'
|
41
|
+
|
42
|
+
# Offense count: 29
|
43
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
44
|
+
# URISchemes: http, https
|
45
|
+
Metrics/LineLength:
|
46
|
+
Max: 121
|
data/README.md
CHANGED
@@ -30,11 +30,14 @@ Or install it yourself as:
|
|
30
30
|
-v, --version Display version
|
31
31
|
-h, --help Print this help
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
This tool is essentially a multi-string gsub, so treat the filter and replacement patterns the same as you would when
|
34
|
+
using gsub -- capture groups and back references are very helpful!
|
35
|
+
|
36
|
+
The following example will recursively rename files matching the pattern "some_file_pattern_(\d)", capture the digit
|
37
|
+
character, and rename all matching files with the replacement "\1_new_name", using a back reference for the captured
|
38
|
+
digit.
|
39
|
+
|
40
|
+
mass_rename --recursive -d target_dir -f "some_file_pattern_(\d)" -r "\1_new_name"
|
38
41
|
|
39
42
|
## Development
|
40
43
|
|
data/{exe → bin}/mass_rename
RENAMED
data/lib/mass_rename.rb
CHANGED
@@ -6,74 +6,71 @@ require 'fileutils'
|
|
6
6
|
require 'mass_rename/version'
|
7
7
|
|
8
8
|
module MassRename
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
class << self
|
10
|
+
# Processes the provided options from the command line.
|
11
|
+
# Usage and effects for different options are given by running the script with the '-h' flag.
|
12
|
+
#
|
13
|
+
# @param args [Array] the arguments to the CLI
|
14
|
+
# @return [Hash] the arguments as a hash
|
15
|
+
def process_options(args)
|
16
|
+
options = {}
|
17
|
+
OptionParser.new do |parser|
|
18
|
+
parser.banner = 'Usage: mass_rename [options]'
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
parser.on('-d', '--dir NAME', 'Select a different working directory') do |dir_name|
|
21
|
+
options[:directory] = dir_name
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
parser.on('-f', '--filter PATTERN', 'Filter files using a regular expression') do |regex|
|
25
|
+
options[:filter] = Regexp.new(regex)
|
26
|
+
end
|
26
27
|
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
parser.on('-r', '--replace PATTERN', 'Replace matched file names with a replacement string') do |replacement|
|
29
|
+
options[:replacement] = replacement
|
30
|
+
end
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
parser.on('--recursive', 'Select files in the target directory and all its subdirectories') do |recursive|
|
33
|
+
options[:recursive] = recursive
|
34
|
+
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
parser.on('-v', '--version', 'Display version') do
|
37
|
+
puts MassRename::VERSION
|
38
|
+
end
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
|
40
|
+
parser.on('-h', '--help', 'Print this help') do
|
41
|
+
puts parser
|
42
|
+
end
|
42
43
|
|
43
|
-
|
44
|
+
parser.parse!(args)
|
45
|
+
end
|
46
|
+
options
|
44
47
|
end
|
45
|
-
options
|
46
|
-
end
|
47
48
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
path =~ options[:filter]
|
49
|
+
# Returns a list of file names matching a pattern, optionally recursive.
|
50
|
+
#
|
51
|
+
# @param options [Hash] the options returned by {MassRename#process_options}
|
52
|
+
# @return [Array<String>] the files matching the filter
|
53
|
+
def file_list(options)
|
54
|
+
Dir.glob(options[:recursive] ? '**/*' : '*').select { |path| path =~ options[:filter] }
|
55
55
|
end
|
56
|
-
end
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
end
|
57
|
+
# Renames a file according to a pattern. The format of the replacement pattern is what you'd
|
58
|
+
# pass to +String#gsub+.
|
59
|
+
#
|
60
|
+
# @param path [String] the path of the file to rename
|
61
|
+
# @param options [Hash] the options returned by {MassRename#process_options}
|
62
|
+
def rename(path, options)
|
63
|
+
FileUtils.mv(path, path.gsub(options[:filter], options[:replacement]))
|
64
|
+
end
|
67
65
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
MassRename.rename(path, options)
|
66
|
+
# Main entry point for this library. Processes the given options and then renames files
|
67
|
+
# matching the filter according to the given replacement string.
|
68
|
+
#
|
69
|
+
# @param args [Array<String>] arguments to parse. Equal to ARGV if you're not doing anything fancy.
|
70
|
+
def run(args)
|
71
|
+
options = MassRename.process_options(args)
|
72
|
+
Dir.chdir(options[:directory]) if options[:directory]
|
73
|
+
MassRename.file_list(options).each { |path| MassRename.rename(path, options) }
|
77
74
|
end
|
78
75
|
end
|
79
76
|
end
|
data/lib/mass_rename/version.rb
CHANGED
data/mass_rename.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require File.expand_path(
|
3
|
+
require File.expand_path('lib/mass_rename/version', File.dirname(__FILE__))
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'mass_rename'
|
@@ -11,18 +11,17 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.homepage = 'https://github.com/lucis-fluxum/mass_rename'
|
12
12
|
spec.license = 'MIT'
|
13
13
|
|
14
|
-
spec.
|
15
|
-
spec.required_ruby_version = '>= 1.9'
|
14
|
+
spec.required_ruby_version = '>= 1.9.3'
|
16
15
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
|
17
|
-
spec.
|
18
|
-
spec.executables =
|
16
|
+
spec.test_files = `git ls-files -z -- spec/*`.split("\x0")
|
17
|
+
spec.executables = ['mass_rename']
|
19
18
|
|
20
19
|
spec.metadata['yard.run'] = 'yri'
|
21
20
|
|
22
21
|
spec.add_development_dependency 'bundler'
|
22
|
+
spec.add_development_dependency 'codecov'
|
23
23
|
spec.add_development_dependency 'rake'
|
24
24
|
spec.add_development_dependency 'rspec'
|
25
25
|
spec.add_development_dependency 'simplecov'
|
26
|
-
spec.add_development_dependency 'codecov'
|
27
26
|
spec.add_development_dependency 'yard'
|
28
27
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,142 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe MassRename do
|
6
|
+
it 'has a version number' do
|
7
|
+
expect(MassRename::VERSION).not_to be nil
|
8
|
+
end
|
9
|
+
|
10
|
+
describe '.process_options' do
|
11
|
+
let(:usage) do
|
12
|
+
<<-USAGE
|
13
|
+
Usage: mass_rename [options]
|
14
|
+
-d, --dir NAME Select a different working directory
|
15
|
+
-f, --filter PATTERN Filter files using a regular expression
|
16
|
+
-r, --replace PATTERN Replace matched file names with a replacement string
|
17
|
+
--recursive Select files in the target directory and all its subdirectories
|
18
|
+
-v, --version Display version
|
19
|
+
-h, --help Print this help
|
20
|
+
USAGE
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'parses -d, --dir' do
|
24
|
+
%w[-d --dir].each do |arg|
|
25
|
+
context "#{arg} with value" do
|
26
|
+
subject { MassRename.process_options([arg, 'some_dir']) }
|
27
|
+
it('returns options hash with directory') { is_expected.to eq(directory: 'some_dir') }
|
28
|
+
end
|
29
|
+
|
30
|
+
context "#{arg} without value" do
|
31
|
+
subject { -> { MassRename.process_options([arg]) } }
|
32
|
+
it('raises an error') { is_expected.to raise_error(OptionParser::MissingArgument) }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'parses -f, --filter' do
|
38
|
+
%w[-f --filter].each do |arg|
|
39
|
+
context "#{arg} with value" do
|
40
|
+
subject { MassRename.process_options([arg, '\w+[0-9]+']) }
|
41
|
+
it('returns options hash with filter') { is_expected.to eq(filter: /\w+[0-9]+/) }
|
42
|
+
end
|
43
|
+
|
44
|
+
context "#{arg} without value" do
|
45
|
+
subject { -> { MassRename.process_options([arg]) } }
|
46
|
+
it('raises an error') { is_expected.to raise_error(OptionParser::MissingArgument) }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'parses -r, --replace' do
|
52
|
+
%w[-r --replace].each do |arg|
|
53
|
+
context "#{arg} with value" do
|
54
|
+
subject { MassRename.process_options([arg, 'something \1 \2']) }
|
55
|
+
it('returns options hash with filter') { is_expected.to eq(replacement: 'something \1 \2') }
|
56
|
+
end
|
57
|
+
|
58
|
+
context "#{arg} without value" do
|
59
|
+
subject { -> { MassRename.process_options([arg]) } }
|
60
|
+
it('raises an error') { is_expected.to raise_error(OptionParser::MissingArgument) }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'parses -v, --version' do
|
66
|
+
%w[-v --version].each do |arg|
|
67
|
+
expect { MassRename.process_options([arg]) }.to output("#{MassRename::VERSION}\n").to_stdout
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'parses -h, --help' do
|
72
|
+
%w[-h --help].each do |arg|
|
73
|
+
expect { MassRename.process_options([arg]) }.to output(usage).to_stdout
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe '.file_list' do
|
79
|
+
before(:all) do
|
80
|
+
Dir.chdir('spec/fixtures')
|
81
|
+
end
|
82
|
+
|
83
|
+
[true, false].product([/example file \d\.txt/, nil]).each do |recursive, filter|
|
84
|
+
context "recursive: #{recursive}, filter: #{filter.inspect}" do
|
85
|
+
subject { MassRename.file_list(recursive: recursive, filter: filter) }
|
86
|
+
let(:files) { Array.new(10) { |n| "example file #{n}.txt" } }
|
87
|
+
let(:nested_files) { Array.new(5) { |n| "some_dir/example file #{n}.txt" } }
|
88
|
+
|
89
|
+
if !filter.nil? && recursive
|
90
|
+
it('returns a list of filenames (recursive)') { is_expected.to match_array(nested_files + files) }
|
91
|
+
elsif !filter.nil? && !recursive
|
92
|
+
it('returns a list of filenames (non-recursive)') { is_expected.to match_array(files) }
|
93
|
+
else
|
94
|
+
it('returns empty array') { is_expected.to be_empty }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
after(:all) do
|
100
|
+
Dir.chdir('../../')
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe '.rename' do
|
105
|
+
let(:options) { { filter: /example (.*) (\d)/, replacement: 'renamed \1 #00\2' } }
|
106
|
+
|
107
|
+
it 'renames a file with replacement string' do
|
108
|
+
10.times do |n|
|
109
|
+
MassRename.rename("spec/fixtures/example file #{n}.txt", options)
|
110
|
+
expect(File).to exist("spec/fixtures/renamed file #00#{n}.txt")
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
after(:each) do
|
115
|
+
reset_fixtures
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe '.run' do
|
120
|
+
let(:files) { Array.new(10) { |n| "file ##{n} renamed.txt" } }
|
121
|
+
let(:nested_files) { Array.new(5) { |n| "some_dir/file ##{n} renamed.txt" } }
|
122
|
+
|
123
|
+
subject { MassRename.file_list(recursive: false, filter: /file #\d renamed\.txt/) }
|
124
|
+
let(:options) { ['-d', 'spec/fixtures', '-f', 'example (.*) (\d)', '-r', '\1 #\2 renamed'] }
|
125
|
+
it 'renames multiple files (non-recursive)' do
|
126
|
+
MassRename.run(options)
|
127
|
+
is_expected.to match_array(files)
|
128
|
+
end
|
129
|
+
|
130
|
+
subject { MassRename.file_list(recursive: true, filter: /file #\d renamed\.txt/) }
|
131
|
+
let(:options_recursive) { ['-d', 'spec/fixtures', '-f', 'example (.*) (\d)', '-r', '\1 #\2 renamed', '--recursive'] }
|
132
|
+
it 'renames multiple files (recursive)' do
|
133
|
+
MassRename.run(options_recursive)
|
134
|
+
is_expected.to match_array(nested_files + files)
|
135
|
+
end
|
136
|
+
|
137
|
+
after(:each) do
|
138
|
+
Dir.chdir('../../')
|
139
|
+
reset_fixtures
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'simplecov'
|
4
|
+
SimpleCov.start
|
5
|
+
|
6
|
+
if ENV['CI'] == 'true'
|
7
|
+
require 'codecov'
|
8
|
+
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
9
|
+
end
|
10
|
+
|
11
|
+
require 'bundler/setup'
|
12
|
+
require 'mass_rename'
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
# Enable flags like --only-failures and --next-failure
|
16
|
+
config.example_status_persistence_file_path = '.rspec_status'
|
17
|
+
|
18
|
+
# Disable RSpec exposing methods globally on `Module` and `main`
|
19
|
+
config.disable_monkey_patching!
|
20
|
+
|
21
|
+
config.expect_with :rspec do |c|
|
22
|
+
c.syntax = :expect
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def reset_fixtures
|
27
|
+
FileUtils.rm_r(Dir.glob('spec/fixtures/*'))
|
28
|
+
10.times { |n| FileUtils.touch "spec/fixtures/example file #{n}.txt" }
|
29
|
+
Dir.mkdir('spec/fixtures/some_dir')
|
30
|
+
5.times { |n| FileUtils.touch "spec/fixtures/some_dir/example file #{n}.txt" }
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mass_rename
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luc Street
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: codecov
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -112,11 +112,28 @@ files:
|
|
112
112
|
- README.md
|
113
113
|
- Rakefile
|
114
114
|
- bin/console
|
115
|
+
- bin/mass_rename
|
115
116
|
- bin/setup
|
116
|
-
- exe/mass_rename
|
117
117
|
- lib/mass_rename.rb
|
118
118
|
- lib/mass_rename/version.rb
|
119
119
|
- mass_rename.gemspec
|
120
|
+
- spec/fixtures/example file 0.txt
|
121
|
+
- spec/fixtures/example file 1.txt
|
122
|
+
- spec/fixtures/example file 2.txt
|
123
|
+
- spec/fixtures/example file 3.txt
|
124
|
+
- spec/fixtures/example file 4.txt
|
125
|
+
- spec/fixtures/example file 5.txt
|
126
|
+
- spec/fixtures/example file 6.txt
|
127
|
+
- spec/fixtures/example file 7.txt
|
128
|
+
- spec/fixtures/example file 8.txt
|
129
|
+
- spec/fixtures/example file 9.txt
|
130
|
+
- spec/fixtures/some_dir/example file 0.txt
|
131
|
+
- spec/fixtures/some_dir/example file 1.txt
|
132
|
+
- spec/fixtures/some_dir/example file 2.txt
|
133
|
+
- spec/fixtures/some_dir/example file 3.txt
|
134
|
+
- spec/fixtures/some_dir/example file 4.txt
|
135
|
+
- spec/mass_rename_spec.rb
|
136
|
+
- spec/spec_helper.rb
|
120
137
|
homepage: https://github.com/lucis-fluxum/mass_rename
|
121
138
|
licenses:
|
122
139
|
- MIT
|
@@ -130,7 +147,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
147
|
requirements:
|
131
148
|
- - ">="
|
132
149
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
150
|
+
version: 1.9.3
|
134
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
152
|
requirements:
|
136
153
|
- - ">="
|
@@ -142,4 +159,21 @@ rubygems_version: 2.7.6
|
|
142
159
|
signing_key:
|
143
160
|
specification_version: 4
|
144
161
|
summary: Mass rename files.
|
145
|
-
test_files:
|
162
|
+
test_files:
|
163
|
+
- spec/fixtures/example file 0.txt
|
164
|
+
- spec/fixtures/example file 1.txt
|
165
|
+
- spec/fixtures/example file 2.txt
|
166
|
+
- spec/fixtures/example file 3.txt
|
167
|
+
- spec/fixtures/example file 4.txt
|
168
|
+
- spec/fixtures/example file 5.txt
|
169
|
+
- spec/fixtures/example file 6.txt
|
170
|
+
- spec/fixtures/example file 7.txt
|
171
|
+
- spec/fixtures/example file 8.txt
|
172
|
+
- spec/fixtures/example file 9.txt
|
173
|
+
- spec/fixtures/some_dir/example file 0.txt
|
174
|
+
- spec/fixtures/some_dir/example file 1.txt
|
175
|
+
- spec/fixtures/some_dir/example file 2.txt
|
176
|
+
- spec/fixtures/some_dir/example file 3.txt
|
177
|
+
- spec/fixtures/some_dir/example file 4.txt
|
178
|
+
- spec/mass_rename_spec.rb
|
179
|
+
- spec/spec_helper.rb
|