renamr 1.0.3 → 1.0.6
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/Gemfile +2 -0
- data/README.md +3 -3
- data/Rakefile +3 -1
- data/lib/renamr/date.rb +46 -0
- data/lib/renamr/factory.rb +4 -2
- data/lib/renamr/version.rb +1 -1
- data/renamr.gemspec +2 -0
- metadata +31 -3
- data/Gemfile.lock +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7d2f86576404f3c74e428b0a69264e22dbd67675e0255aaad242286919bc178
|
4
|
+
data.tar.gz: c530689b44dfd307776c98f2e4d7674f2d29ec454373e6886bc3863e47137f13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cac26d37fc0d75e4442495f9621c2ef177fdf818bdd9d763e3ff5c4db535d5da0e9b18a22a5cf1665e50dafafefa552b1e3e55d3dc9b58933d90db810362ffe8
|
7
|
+
data.tar.gz: 5ca1f6f01a3326a3641f9c56f71559432996473e440756d2316f97850e072b080c541d17cf6bfdee9057c3611b19a90b1d5f06e3740c06a714565e393e324ceb
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -19,12 +19,12 @@ Version](https://badge.fury.io/rb/renamr.svg)](https://badge.fury.io/rb/renamr)
|
|
19
19
|
* [License](#license)
|
20
20
|
|
21
21
|
## About
|
22
|
-
Hi, I'm [David Rabkin](
|
22
|
+
Hi, I'm [David Rabkin](http://davi.drabk.in). I created this tool to
|
23
23
|
orginize multiple files.
|
24
24
|
|
25
25
|
## Installation
|
26
26
|
The tool is designed to work on macOS, GNU/Linux, Windows, Unix-like OS. It is
|
27
|
-
packaged as a Gem and require Ruby version 2.
|
27
|
+
packaged as a Gem and require Ruby version 2.6 or later. See «[Installing
|
28
28
|
Ruby](https://www.ruby-lang.org/en/documentation/installation/)» if you don't
|
29
29
|
have the proper version on your platform.
|
30
30
|
|
@@ -61,5 +61,5 @@ It renames all files in `source` by default pattern: 26 English letters,
|
|
61
61
|
10 numbers, minus for spaces and other symbols.
|
62
62
|
|
63
63
|
## License
|
64
|
-
Renamr is copyright [David Rabkin](http://
|
64
|
+
Renamr is copyright [David Rabkin](http://davi.drabk.in) and
|
65
65
|
available under a [2-Claus BSD license](https://github.com/rdavid/renamr/blob/master/LICENSE).
|
data/Rakefile
CHANGED
data/lib/renamr/date.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# vi:ts=2 sw=2 tw=79 et lbr wrap
|
4
|
+
# Copyright 2020-present David Rabkin
|
5
|
+
|
6
|
+
require 'date'
|
7
|
+
require_relative 'action'
|
8
|
+
|
9
|
+
module Renamr
|
10
|
+
# Replaces any valid date, e.g. 2020-11-02 or 02-11-2020 with 20201102.
|
11
|
+
class DateAction < Action
|
12
|
+
REG = /(\d+)-(\d+)-(\d+)/.freeze
|
13
|
+
PAT = ['%m-%d-%Y', '%d-%m-%Y', '%Y-%m-%d', '%Y-%d-%m'].freeze
|
14
|
+
|
15
|
+
def validate(dat)
|
16
|
+
return nil if dat < Date.new(1900, 1, 1)
|
17
|
+
|
18
|
+
return nil if dat > Date.new(2099, 1, 1)
|
19
|
+
|
20
|
+
dat
|
21
|
+
end
|
22
|
+
|
23
|
+
def date(sub)
|
24
|
+
PAT.each do |pat|
|
25
|
+
begin
|
26
|
+
return Date.strptime(sub, pat)
|
27
|
+
rescue ArgumentError
|
28
|
+
# Nothing to do.
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def do(src)
|
34
|
+
sub = src[REG]
|
35
|
+
return src if sub.nil?
|
36
|
+
|
37
|
+
dat = date(sub)
|
38
|
+
return src if dat.nil?
|
39
|
+
|
40
|
+
dat = validate(dat)
|
41
|
+
return src if dat.nil?
|
42
|
+
|
43
|
+
src.sub!(REG, dat.strftime('%Y%m%d'))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/renamr/factory.rb
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
require_relative 'ascii_validator'
|
7
7
|
require_relative 'auto_localization'
|
8
8
|
require_relative 'char'
|
9
|
+
require_relative 'date'
|
9
10
|
require_relative 'downcase'
|
10
11
|
require_relative 'existence'
|
11
12
|
require_relative 'manual_localization'
|
@@ -28,7 +29,7 @@ module Renamr
|
|
28
29
|
@cfg = cfg
|
29
30
|
end
|
30
31
|
|
31
|
-
def produce(dir) # rubocop:disable MethodLength, AbcSize
|
32
|
+
def produce(dir) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
32
33
|
if @cfg.lim?
|
33
34
|
[
|
34
35
|
OmitAction.new(LIMIT),
|
@@ -49,7 +50,8 @@ module Renamr
|
|
49
50
|
ASCIIValidatorAction.new,
|
50
51
|
TrimAction.new,
|
51
52
|
TruncateAction.new(LIMIT),
|
52
|
-
|
53
|
+
DateAction.new,
|
54
|
+
ExistenceAction.new(dir, LIMIT) # Should be the last.
|
53
55
|
].compact
|
54
56
|
end
|
55
57
|
end
|
data/lib/renamr/version.rb
CHANGED
data/renamr.gemspec
CHANGED
@@ -20,10 +20,12 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.executables = ['renamr']
|
21
21
|
s.extra_rdoc_files = ['LICENSE.txt', 'README.md']
|
22
22
|
s.require_paths = ['lib']
|
23
|
+
s.add_runtime_dependency 'date', '2.0.0'
|
23
24
|
s.add_runtime_dependency 'fileutils', '1.4.1'
|
24
25
|
s.add_runtime_dependency 'i18n', '1.8.3'
|
25
26
|
s.add_runtime_dependency 'pidfile', '0.3.0'
|
26
27
|
s.add_runtime_dependency 'terminal-table', '1.8.0'
|
28
|
+
s.add_development_dependency 'minitest', '6.11.3'
|
27
29
|
s.add_development_dependency 'rake', '13.0.1'
|
28
30
|
s.add_development_dependency 'rubocop', '0.85.1'
|
29
31
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: renamr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Rabkin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: date
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.0
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: fileutils
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - '='
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: 1.8.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 6.11.3
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 6.11.3
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: rake
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,7 +132,6 @@ extra_rdoc_files:
|
|
104
132
|
- README.md
|
105
133
|
files:
|
106
134
|
- Gemfile
|
107
|
-
- Gemfile.lock
|
108
135
|
- LICENSE.txt
|
109
136
|
- README.md
|
110
137
|
- Rakefile
|
@@ -116,6 +143,7 @@ files:
|
|
116
143
|
- lib/renamr/auto_localization.rb
|
117
144
|
- lib/renamr/char.rb
|
118
145
|
- lib/renamr/configurator.rb
|
146
|
+
- lib/renamr/date.rb
|
119
147
|
- lib/renamr/downcase.rb
|
120
148
|
- lib/renamr/existence.rb
|
121
149
|
- lib/renamr/factory.rb
|
data/Gemfile.lock
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: https://rubygems.org/
|
3
|
-
specs:
|
4
|
-
ast (2.4.0)
|
5
|
-
concurrent-ruby (1.1.6)
|
6
|
-
fileutils (1.4.1)
|
7
|
-
i18n (1.8.3)
|
8
|
-
concurrent-ruby (~> 1.0)
|
9
|
-
jaro_winkler (1.5.4)
|
10
|
-
parallel (1.19.1)
|
11
|
-
parser (2.7.1.3)
|
12
|
-
ast (~> 2.4.0)
|
13
|
-
pidfile (0.3.0)
|
14
|
-
rainbow (3.0.0)
|
15
|
-
rake (13.0.1)
|
16
|
-
rubocop (0.76.0)
|
17
|
-
jaro_winkler (~> 1.5.1)
|
18
|
-
parallel (~> 1.10)
|
19
|
-
parser (>= 2.6)
|
20
|
-
rainbow (>= 2.2.2, < 4.0)
|
21
|
-
ruby-progressbar (~> 1.7)
|
22
|
-
unicode-display_width (>= 1.4.0, < 1.7)
|
23
|
-
ruby-progressbar (1.10.1)
|
24
|
-
terminal-table (1.8.0)
|
25
|
-
unicode-display_width (~> 1.1, >= 1.1.1)
|
26
|
-
unicode-display_width (1.6.1)
|
27
|
-
|
28
|
-
PLATFORMS
|
29
|
-
ruby
|
30
|
-
|
31
|
-
DEPENDENCIES
|
32
|
-
fileutils (= 1.4.1)
|
33
|
-
i18n (= 1.8.3)
|
34
|
-
pidfile (= 0.3.0)
|
35
|
-
rake (= 13.0.1)
|
36
|
-
rubocop (= 0.76.0)
|
37
|
-
terminal-table (= 1.8.0)
|
38
|
-
|
39
|
-
RUBY VERSION
|
40
|
-
ruby 2.6.3p62
|
41
|
-
|
42
|
-
BUNDLED WITH
|
43
|
-
2.1.4
|