filerenamer 0.0.7 → 0.0.8

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 99ca95ef5325360cc3bf6420b62cfccc647bada4
4
+ data.tar.gz: d3661cc6539b33a852a48aeb47ca8cedf6b60483
5
+ SHA512:
6
+ metadata.gz: 645303f1932727adf0bdbfc85dbc5f536a149cb52f57aac4b43404c5021178a8f9300522fa5d95552900f709a153febc890ae52bd61044a553867e3b85fcf0b0
7
+ data.tar.gz: 59320c483c0bf804b48d02f65aa4aea92911e672f38ae6286a74a3ffbad627c0b1ee0bcfd852f1c856cae4f30f4255777f02fc80828d9da4143be145a82673cd
data/CHANGES CHANGED
@@ -1,6 +1,15 @@
1
1
  = filerenamer Changelog
2
2
 
3
- == Master (for 0.0.7)
3
+ == Master (for 0.0.9)
4
+
5
+ == Version 0.0.8 [2015-07-23] released
6
+ * Add --preserve option to bin/rentime.
7
+ * Small change of --help of bin/classify.
8
+ * renreg: '/' to '/' is ignored.
9
+ * Add automatic detection zero-padding width to bin/rennum.
10
+ * Add --random option to bin/rennum.
11
+
12
+ == Version 0.0.7 [2013-12-20] released
4
13
  * classify -u to lowercase.
5
14
  * classify -4 to 2chars and 2layer-directoriess.
6
15
  * renhash -C to use various hash commmands not sha256sum.
data/Gemfile CHANGED
@@ -6,9 +6,10 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
+ gem "test-unit", "~> 3.1.2"
9
10
  gem "rdoc", "~> 4.0.1"
10
- gem "bundler", "~> 1.3.5"
11
- gem "jeweler", "~> 1.8.3"
11
+ gem "bundler", "~> 1.10.5"
12
+ gem "jeweler", "~> 2.0.1"
12
13
  gem "simplecov", ">= 0"
13
14
  gem "builtinextension", "~> 0.1.0"
14
15
  gem "capture_stdout", "~> 0.0"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -92,7 +92,7 @@ require "filerenamer.rb"
92
92
  OPTIONS = {}
93
93
  op = FileRenamer::OptionParser.new
94
94
  op.on("-k" , "--kakasi" , "Japanese yomi dirname. (Using kakasi)"){ OPTIONS[:kakasi] = true}
95
- op.on("-u" , "--unite" , "Unite group of chars. E.g., t -> T."){ OPTIONS[:unite] = true}
95
+ op.on("-u" , "--unite" , "Unite group of chars. E.g., T -> t."){ OPTIONS[:unite] = true}
96
96
  op.on("-l number", "--length=number", "Indicate length of initial characters. Default number = 1."){|v| OPTIONS[:length] = v.to_i}
97
97
  op.on("-a number", "--auto-length=number", "Automatically decided length for each filename. 'number' is identificatio length."){|v| OPTIONS[:auto] = v.to_i}
98
98
  op.on("-s" , "--shorten", "Shorten filename, duplicated part with the dirname."){ OPTIONS[:shorten] = true}
data/bin/rennum CHANGED
@@ -1,11 +1,13 @@
1
1
  #! /usr/bin/ruby -w
2
2
  # coding: utf-8
3
3
 
4
+ # rename using serial number.
4
5
  # 拡張子は保存
5
6
  # -i オプションで開始番号を指定
6
7
  # -p : preserve old name 元のファイル名を残す。foo.txt -> 001-foo.txt
7
- require "filerenamer/commander.rb"
8
- require "filerenamer/optionparser.rb"
8
+ require 'pp'
9
+ require 'filerenamer/commander.rb'
10
+ require 'filerenamer/optionparser.rb'
9
11
 
10
12
 
11
13
  OPTIONS = {}
@@ -16,18 +18,28 @@ op.on("-i num", "--initial", "Indicate initial number."){ |val|
16
18
  op.on("-p", "--preserve", "Preserve old name."){
17
19
  OPTIONS[:preserve] = true
18
20
  }
21
+ op.on("-r", "--random", "Random number."){
22
+ OPTIONS[:random] = true
23
+ }
19
24
  op.parse!(ARGV)
20
25
 
21
26
  OPTIONS[:init] ||= 0
22
27
 
23
- fr = FileRenamer::Commander.new(op.options, ARGV)
28
+ files = FileRenamer::Commander.files(ARGV)
29
+ last_number = OPTIONS[:init].to_i + files.size - 1
30
+ width = last_number.to_s.size
31
+
32
+ files.shuffle! if OPTIONS[:random]
33
+
34
+ fr = FileRenamer::Commander.new(op.options, files)
35
+
24
36
  fr.execute do |filename|
25
37
  @counter ||= OPTIONS[:init]
26
38
  if (OPTIONS[:preserve])
27
- new_name = sprintf("%03d-%s", @counter, filename)
39
+ new_name = sprintf("%0#{width}d-%s", @counter, filename)
28
40
  else
29
41
  extention = File.extname(filename)
30
- new_name = sprintf("%03d%s", @counter, extention)
42
+ new_name = sprintf("%0#{width}d%s", @counter, extention)
31
43
  end
32
44
  @counter += 1
33
45
  new_name
data/bin/renreg CHANGED
@@ -39,17 +39,21 @@ fr.execute do |filename|
39
39
  new_name.gsub!('$', '$'); new_name.gsub!('%', '%'); new_name.gsub!('&', '&');
40
40
  new_name.gsub!("'", '’'); new_name.gsub!('(', '('); new_name.gsub!(')', ')');
41
41
  new_name.gsub!('*', '*'); new_name.gsub!('+', '+'); new_name.gsub!(',', ',');
42
- new_name.gsub!('-', '-'); new_name.gsub!('/', '/');
42
+ new_name.gsub!('-', '-');
43
43
  new_name.gsub!(':', ':'); new_name.gsub!(';', ';'); new_name.gsub!('<', '<');
44
44
  new_name.gsub!('=', '='); new_name.gsub!('>', '>'); new_name.gsub!('?', '?');
45
45
  new_name.gsub!('@', '@'); new_name.gsub!('[', '['); new_name.gsub!("\\", '\');
46
46
  new_name.gsub!(']', ']'); new_name.gsub!('^', '^'); new_name.gsub!('_', '_');
47
47
  new_name.gsub!('`', '`'); new_name.gsub!('{', '{'); new_name.gsub!('|', '|');
48
48
  new_name.gsub!('}', '}'); new_name.gsub!('~', '〜');
49
+ #new_name.gsub!('/', '/');
49
50
  #new_name.gsub!('.', '.');
50
51
  #
51
52
  new_name.gsub!(' ', '_'); new_name.gsub!(' ', '_');
52
53
  #
54
+ new_name.gsub!('~', '〜');
55
+ new_name.gsub!('-', '-');
56
+ #
53
57
  # 年号変換
54
58
  while (/平成(\d\d)年/ =~ new_name)
55
59
  new_name.sub!( /平成(\d\d)年/, (1988 + ($1.to_i)).to_s + "年")
@@ -3,6 +3,16 @@
3
3
 
4
4
  require "pp"
5
5
  require "filerenamer.rb"
6
+ require "optparse"
7
+
8
+ ## option analysis
9
+ OPTIONS = {}
10
+ op = OptionParser.new
11
+ #op.banner = [
12
+ # "Usage: #{File.basename("#{__FILE__}")}",
13
+ #].join("\n")
14
+ op.on("-p" , "--preserve" , "Preserve old name"){OPTIONS[:preserve] = true}
15
+ op.parse!(ARGV)
6
16
 
7
17
  op = FileRenamer::OptionParser.new
8
18
  op.parse!(ARGV)
@@ -10,9 +20,12 @@ op.parse!(ARGV)
10
20
  fr = FileRenamer::Commander.new(op.options, ARGV)
11
21
  fr.execute do |filename|
12
22
  extname = File.extname filename
23
+ old_base = filename.sub(/#{extname}$/, "")
13
24
  dirname = File.dirname filename
14
25
  date = File.mtime(filename)
15
26
 
16
- newname = dirname + date.strftime("/%Y%m%d-%H%M%S") + extname
27
+ new_basename = dirname + date.strftime("/%Y%m%d-%H%M%S")
28
+ new_basename += "-#{old_base}" if OPTIONS[:preserve]
29
+ newname = new_basename + extname
17
30
  newname
18
31
  end
@@ -0,0 +1,126 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: filerenamer 0.0.8 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "filerenamer"
9
+ s.version = "0.0.8"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["ippei94da"]
14
+ s.date = "2015-07-23"
15
+ s.description = "This library provide common dealing to rename many files with safe method. Automatically mkdir if need and rmdir when empty."
16
+ s.email = "ippei94da@gmail.com"
17
+ s.executables = ["classify", "classify_greed", "renhash", "rennum", "renpad", "renpar", "renreg", "rensub", "rentime"]
18
+ s.extra_rdoc_files = [
19
+ "LICENSE.txt",
20
+ "README.rdoc"
21
+ ]
22
+ s.files = [
23
+ ".document",
24
+ "CHANGES",
25
+ "Gemfile",
26
+ "LICENSE.txt",
27
+ "README.rdoc",
28
+ "Rakefile",
29
+ "VERSION",
30
+ "bin/classify",
31
+ "bin/classify_greed",
32
+ "bin/renhash",
33
+ "bin/rennum",
34
+ "bin/renpad",
35
+ "bin/renpar",
36
+ "bin/renreg",
37
+ "bin/rensub",
38
+ "bin/rentime",
39
+ "filerenamer.gemspec",
40
+ "lib/filerenamer.rb",
41
+ "lib/filerenamer/commander.rb",
42
+ "lib/filerenamer/optionparser.rb",
43
+ "test/classify/123",
44
+ "test/classify/abc",
45
+ "test/classify/abcd",
46
+ "test/classify/abcdefghij",
47
+ "test/classify/def",
48
+ "test/classify/がぎぐ",
49
+ "test/classify/ゃゅょ",
50
+ "test/classify/月火水",
51
+ "test/filerenamer/a0.txt",
52
+ "test/filerenamer/dummy.txt",
53
+ "test/filetreesimulator/00",
54
+ "test/filetreesimulator/dir00/01",
55
+ "test/filetreesimulator/dir00/02",
56
+ "test/filetreesimulator/test_file.rb",
57
+ "test/helper.rb",
58
+ "test/renhash/)(.txt",
59
+ "test/renhash/0.txt",
60
+ "test/rennum/a",
61
+ "test/rennum/b",
62
+ "test/rennum/c",
63
+ "test/rennum/d",
64
+ "test/renpad/1",
65
+ "test/renpad/10",
66
+ "test/renpad/100",
67
+ "test/renpad/100b",
68
+ "test/renpad/10b",
69
+ "test/renpad/1b",
70
+ "test/renpad/a1",
71
+ "test/renpad/a10",
72
+ "test/renpad/a100",
73
+ "test/renpad/a100b",
74
+ "test/renpad/a10b",
75
+ "test/renpad/a1b",
76
+ "test/renpar/((ab)(cd(ef))gh(ij)kl(mn).txt",
77
+ "test/renpar/(ab)(cd(ef)))gh(ij)kl(mn).txt",
78
+ "test/renpar/(ab)(cd(ef))gh(ij)kl(mn).txt",
79
+ "test/renpar/(ab)(cd).txt",
80
+ "test/renreg/a(b)",
81
+ "test/renreg/1",
82
+ "test/renreg/a",
83
+ "test/rensub/a0",
84
+ "test/rensub/a1",
85
+ "test/rensub/b0",
86
+ "test/rensub/b1",
87
+ "test/test_commander.rb",
88
+ "test/test_filetreesimulator.rb",
89
+ "test/test_optionparser.rb"
90
+ ]
91
+ s.homepage = "http://github.com/ippei94da/filerenamer"
92
+ s.licenses = ["MIT"]
93
+ s.rubygems_version = "2.2.2"
94
+ s.summary = "Library to rename filenames."
95
+
96
+ if s.respond_to? :specification_version then
97
+ s.specification_version = 4
98
+
99
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
100
+ s.add_development_dependency(%q<test-unit>, ["~> 3.1.2"])
101
+ s.add_development_dependency(%q<rdoc>, ["~> 4.0.1"])
102
+ s.add_development_dependency(%q<bundler>, ["~> 1.10.5"])
103
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
104
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
105
+ s.add_development_dependency(%q<builtinextension>, ["~> 0.1.0"])
106
+ s.add_development_dependency(%q<capture_stdout>, ["~> 0.0"])
107
+ else
108
+ s.add_dependency(%q<test-unit>, ["~> 3.1.2"])
109
+ s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
110
+ s.add_dependency(%q<bundler>, ["~> 1.10.5"])
111
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
112
+ s.add_dependency(%q<simplecov>, [">= 0"])
113
+ s.add_dependency(%q<builtinextension>, ["~> 0.1.0"])
114
+ s.add_dependency(%q<capture_stdout>, ["~> 0.0"])
115
+ end
116
+ else
117
+ s.add_dependency(%q<test-unit>, ["~> 3.1.2"])
118
+ s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
119
+ s.add_dependency(%q<bundler>, ["~> 1.10.5"])
120
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
121
+ s.add_dependency(%q<simplecov>, [">= 0"])
122
+ s.add_dependency(%q<builtinextension>, ["~> 0.1.0"])
123
+ s.add_dependency(%q<capture_stdout>, ["~> 0.0"])
124
+ end
125
+ end
126
+
@@ -44,6 +44,14 @@ module FileRenamer
44
44
  class NoRenameRuleError < Exception; end
45
45
  class OptionError < Exception; end
46
46
 
47
+ def self.files(strs)
48
+ if strs.empty?
49
+ return Dir::glob("*").sort
50
+ else
51
+ return strs
52
+ end
53
+ end
54
+
47
55
  #:yes と :no が両方 true ならば例外。
48
56
  #:copy, :move, :hardlink, :symlink のうち、1つ以下が true。
49
57
  #全て nil ならば :move が true になる。
@@ -82,8 +90,7 @@ module FileRenamer
82
90
  "Conflict options: --quiet and --no"
83
91
  end
84
92
 
85
- @files = files
86
- @files = Dir::glob("*").sort if files.empty?
93
+ @files = self.class.files(files)
87
94
  end
88
95
 
89
96
  # 変更される名前のリストを表示し、ユーザの指示に従って実行する。
@@ -3,6 +3,7 @@
3
3
 
4
4
  require 'helper'
5
5
 
6
+ require "pp"
6
7
  require "test/unit"
7
8
  require "filerenamer/commander.rb"
8
9
  require "stringio"
@@ -35,6 +36,11 @@ class TC_Commander < Test::Unit::TestCase
35
36
  @fr01 = FileRenamer::Commander.new(options, [])
36
37
  end
37
38
 
39
+ def test_self_files
40
+ #pp FileRenamer::Commander.files([])
41
+ #pp FileRenamer::Commander.files(['a', 'b'])
42
+ end
43
+
38
44
  def test_initialize
39
45
  # yes and no
40
46
  options = {
@@ -106,7 +112,6 @@ class TC_Commander < Test::Unit::TestCase
106
112
  assert_equal(true, FileTest.exist?(A_0))
107
113
  assert_equal(true, FileTest.exist?(A_1))
108
114
  FileUtils.rm(A_1)
109
- #
110
115
  correct =
111
116
  "Enable files:\n" +
112
117
  " cp -r #{A_0} #{A_1}\n" +
metadata CHANGED
@@ -1,110 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filerenamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
5
- prerelease:
4
+ version: 0.0.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - ippei94da
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-20 00:00:00.000000000 Z
11
+ date: 2015-07-23 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: test-unit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.1.2
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.1.2
14
27
  - !ruby/object:Gem::Dependency
15
28
  name: rdoc
16
29
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
30
  requirements:
19
- - - ~>
31
+ - - "~>"
20
32
  - !ruby/object:Gem::Version
21
33
  version: 4.0.1
22
34
  type: :development
23
35
  prerelease: false
24
36
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
37
  requirements:
27
- - - ~>
38
+ - - "~>"
28
39
  - !ruby/object:Gem::Version
29
40
  version: 4.0.1
30
41
  - !ruby/object:Gem::Dependency
31
42
  name: bundler
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
- - - ~>
45
+ - - "~>"
36
46
  - !ruby/object:Gem::Version
37
- version: 1.3.5
47
+ version: 1.10.5
38
48
  type: :development
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
- - - ~>
52
+ - - "~>"
44
53
  - !ruby/object:Gem::Version
45
- version: 1.3.5
54
+ version: 1.10.5
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: jeweler
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
- - - ~>
59
+ - - "~>"
52
60
  - !ruby/object:Gem::Version
53
- version: 1.8.3
61
+ version: 2.0.1
54
62
  type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
- - - ~>
66
+ - - "~>"
60
67
  - !ruby/object:Gem::Version
61
- version: 1.8.3
68
+ version: 2.0.1
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: simplecov
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - ">="
68
74
  - !ruby/object:Gem::Version
69
75
  version: '0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - ">="
76
81
  - !ruby/object:Gem::Version
77
82
  version: '0'
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: builtinextension
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
- - - ~>
87
+ - - "~>"
84
88
  - !ruby/object:Gem::Version
85
89
  version: 0.1.0
86
90
  type: :development
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
- - - ~>
94
+ - - "~>"
92
95
  - !ruby/object:Gem::Version
93
96
  version: 0.1.0
94
97
  - !ruby/object:Gem::Dependency
95
98
  name: capture_stdout
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
- - - ~>
101
+ - - "~>"
100
102
  - !ruby/object:Gem::Version
101
103
  version: '0.0'
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
- - - ~>
108
+ - - "~>"
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0.0'
110
111
  description: This library provide common dealing to rename many files with safe method.
@@ -125,7 +126,7 @@ extra_rdoc_files:
125
126
  - LICENSE.txt
126
127
  - README.rdoc
127
128
  files:
128
- - .document
129
+ - ".document"
129
130
  - CHANGES
130
131
  - Gemfile
131
132
  - LICENSE.txt
@@ -141,6 +142,7 @@ files:
141
142
  - bin/renreg
142
143
  - bin/rensub
143
144
  - bin/rentime
145
+ - filerenamer.gemspec
144
146
  - lib/filerenamer.rb
145
147
  - lib/filerenamer/commander.rb
146
148
  - lib/filerenamer/optionparser.rb
@@ -194,29 +196,25 @@ files:
194
196
  homepage: http://github.com/ippei94da/filerenamer
195
197
  licenses:
196
198
  - MIT
199
+ metadata: {}
197
200
  post_install_message:
198
201
  rdoc_options: []
199
202
  require_paths:
200
203
  - lib
201
204
  required_ruby_version: !ruby/object:Gem::Requirement
202
- none: false
203
205
  requirements:
204
- - - ! '>='
206
+ - - ">="
205
207
  - !ruby/object:Gem::Version
206
208
  version: '0'
207
- segments:
208
- - 0
209
- hash: 651762127
210
209
  required_rubygems_version: !ruby/object:Gem::Requirement
211
- none: false
212
210
  requirements:
213
- - - ! '>='
211
+ - - ">="
214
212
  - !ruby/object:Gem::Version
215
213
  version: '0'
216
214
  requirements: []
217
215
  rubyforge_project:
218
- rubygems_version: 1.8.23
216
+ rubygems_version: 2.2.2
219
217
  signing_key:
220
- specification_version: 3
218
+ specification_version: 4
221
219
  summary: Library to rename filenames.
222
220
  test_files: []