mass_rename 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|