filerenamer 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []