filerenamer 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,11 +1,18 @@
1
1
  = filerenamer Changelog
2
2
 
3
- == Master (for 0.0.4)
3
+ == Master (for 0.0.6)
4
+
5
+ == Version 0.0.5
6
+ * Bugfix bin/classify
7
+ * Add bin/rentime
8
+
9
+ == Version 0.0.4
4
10
  * Add renhash
5
11
  * Rename bin/classify1stchar to bin/classify
6
- * Add function to bin/classify1stchar
12
+ * Add function to bin/classify
7
13
  * Japanese-yomi is indicated to be option.
8
- * length of initial characters
14
+ * Shorten filename; e.g., abc -> a/bc.
15
+ * Indicating directory name length; e.g., abc -> ab/abc.
9
16
 
10
17
  == Version 0.0.3
11
18
  * Restruct class and module name
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
data/bin/classify CHANGED
@@ -1,131 +1,103 @@
1
1
  #! /usr/bin/env ruby
2
2
  # coding: utf-8
3
3
 
4
+ # OPTIONS
5
+ #
6
+ # -s, -k, -l=2
7
+ # x x x : 月火水 -> 月/月火水
8
+ # o x x : 月火水 -> 月/火水
9
+ # x o x : 月火水 -> け/月火水
10
+ # o o x : 月火水 -> 実行不可
11
+ # x x o : 月火水 -> 月火/月火水
12
+ # o x o : 月火水 -> 月火/水
13
+ # x o o : 月火水 -> げつ/月火水
14
+ # o o o : 月火水 -> 実行不可
15
+
16
+ # Now discussing whether SEION function is need or not.
17
+ #SEION = {
18
+ # #### ひらがな
19
+ # # 清音
20
+ # "あ"=>"あ", "い"=>"い", "う"=>"う", "え"=>"え", "お"=>"お",
21
+ # "か"=>"か", "き"=>"き", "く"=>"く", "け"=>"け", "こ"=>"こ",
22
+ # "さ"=>"さ", "し"=>"し", "す"=>"す", "せ"=>"せ", "そ"=>"そ",
23
+ # "た"=>"た", "ち"=>"ち", "つ"=>"つ", "て"=>"て", "と"=>"と",
24
+ # "な"=>"な", "に"=>"に", "ぬ"=>"ぬ", "ね"=>"ね", "の"=>"の",
25
+ # "は"=>"は", "ひ"=>"ひ", "ふ"=>"ふ", "へ"=>"へ", "ほ"=>"ほ",
26
+ # "ま"=>"ま", "み"=>"み", "む"=>"む", "め"=>"め", "も"=>"も",
27
+ # "や"=>"や", "ゆ"=>"ゆ", "よ"=>"よ",
28
+ # "ら"=>"ら", "り"=>"り", "る"=>"る", "れ"=>"れ", "ろ"=>"ろ",
29
+ # "わ"=>"わ", "ゐ"=>"ゐ", "ゑ"=>"ゑ", "を"=>"を", "ん"=>"ん",
30
+ # # 濁音・半濁音
31
+ # "が"=>"か", "ぎ"=>"き", "ぐ"=>"く", "げ"=>"け", "ご"=>"こ",
32
+ # "ざ"=>"さ", "じ"=>"し", "ず"=>"す", "ぜ"=>"せ", "ぞ"=>"そ",
33
+ # "だ"=>"た", "ぢ"=>"ち", "づ"=>"つ", "で"=>"て", "ど"=>"と",
34
+ # "ば"=>"は", "び"=>"ひ", "ぶ"=>"ふ", "べ"=>"へ", "ぼ"=>"ほ",
35
+ # "ぱ"=>"は", "ぴ"=>"ひ", "ぷ"=>"ふ", "ぺ"=>"へ", "ぽ"=>"ほ",
36
+ # # 小字
37
+ # "ぁ"=>"あ", "ぃ"=>"い", "ぅ"=>"う", "ぇ"=>"え", "ぉ"=>"お",
38
+ # "っ"=>"つ",
39
+ # "ゃ"=>"や", "ゅ"=>"ゆ", "ょ"=>"よ",
40
+ # "ゎ"=>"わ",
41
+ #
42
+ # #### カタカナ
43
+ # # 清音
44
+ # "ア"=>"あ", "イ"=>"い", "ウ"=>"う", "エ"=>"え", "オ"=>"お",
45
+ # "カ"=>"か", "キ"=>"き", "ク"=>"く", "ケ"=>"け", "コ"=>"こ",
46
+ # "サ"=>"さ", "シ"=>"し", "ス"=>"す", "セ"=>"せ", "ソ"=>"そ",
47
+ # "タ"=>"た", "チ"=>"ち", "ツ"=>"つ", "テ"=>"て", "ト"=>"と",
48
+ # "ナ"=>"な", "ニ"=>"に", "ヌ"=>"ぬ", "ネ"=>"ね", "ノ"=>"の",
49
+ # "ハ"=>"は", "ヒ"=>"ひ", "フ"=>"ふ", "ヘ"=>"へ", "ホ"=>"ほ",
50
+ # "マ"=>"ま", "ミ"=>"み", "ム"=>"む", "メ"=>"め", "モ"=>"も",
51
+ # "ヤ"=>"や", "ユ"=>"ゆ", "ヨ"=>"よ",
52
+ # "ラ"=>"ら", "リ"=>"り", "ル"=>"る", "レ"=>"れ", "ロ"=>"ろ",
53
+ # "ワ"=>"わ", "ヰ"=>"ゐ", "ヱ"=>"ゑ", "ヲ"=>"を", "ン"=>"ん",
54
+ # # 濁音・半濁音
55
+ # "ガ"=>"か", "ギ"=>"き", "グ"=>"く", "ゲ"=>"け", "ゴ"=>"こ",
56
+ # "ザ"=>"さ", "ジ"=>"し", "ズ"=>"す", "ゼ"=>"せ", "ゾ"=>"そ",
57
+ # "ダ"=>"た", "ヂ"=>"ち", "ヅ"=>"つ", "デ"=>"て", "ド"=>"と",
58
+ # "バ"=>"は", "ビ"=>"ひ", "ブ"=>"ふ", "ベ"=>"へ", "ボ"=>"ほ",
59
+ # "パ"=>"は", "ピ"=>"ひ", "プ"=>"ふ", "ペ"=>"へ", "ポ"=>"ほ",
60
+ # "ヴ"=>"う",
61
+ # # 小字
62
+ # "ァ"=>"あ", "ィ"=>"い", "ゥ"=>"う", "ェ"=>"え", "ォ"=>"お",
63
+ # "ッ"=>"つ",
64
+ # "ャ"=>"や", "ュ"=>"ゆ", "ョ"=>"よ",
65
+ # "ヮ"=>"わ",
66
+ # # 記号
67
+ # #"ヵ"=>"か", "ヶ"=>"け",
68
+ #}
69
+
4
70
  gem "builtinextension"
5
71
  require "string_escape_zsh.rb"
6
72
  require "filerenamer.rb"
7
73
 
8
74
  OPTIONS = {}
9
75
  op = FileRenamer::OptionParser.new
10
- op.on("-j" , "--japanese-yomi", "Use Japanese yomi. (Need kakasi)"){ OPTIONS[:japanese] = true}
11
- op.on("-l number", "--length=number", "Indicate length of initial characters."){|v| OPTIONS[:length] = v}
12
- #replace character
76
+ op.on("-k" , "--kakasi", "Japanese yomi dirname. (Using kakasi)"){ OPTIONS[:kakasi] = true}
77
+ op.on("-l number", "--length=number", "Indicate length of initial characters. Default number = 1."){|v| OPTIONS[:length] = v.to_i}
78
+ op.on("-s", "--shorten", "Shorten filename, duplicated part with the dirname."){ OPTIONS[:shorten] = true}
13
79
  op.parse!(ARGV)
14
80
 
81
+ OPTIONS[:length] ||= 1
82
+ if OPTIONS[:shorten] && OPTIONS[:kakasi]
83
+ puts "Options -s and -k cannot be used at the same time."
84
+ exit
85
+ end
86
+
15
87
  fr = FileRenamer::Commander.new(op.options, ARGV)
16
88
  fr.execute do |filename|
17
- next if filename.size == 1
89
+ next if filename.size <= OPTIONS[:length]
18
90
 
19
- yomi = `echo #{filename.escape_zsh} | nkf -e | kakasi -JH | nkf -w`
20
-
21
- char = yomi[0]
22
- case char
23
- when /[a-z0-9]/
24
- newname = "#{char}/#{filename}"
25
- when /[A-Z]/
26
- newname = "#{char.downcase}/#{filename}"
27
- when "が"; newname = "か/#{filename}";
28
- when "ぎ"; newname = "き/#{filename}";
29
- when "ぐ"; newname = "く/#{filename}";
30
- when "げ"; newname = "け/#{filename}";
31
- when "ご"; newname = "こ/#{filename}";
32
- when "ざ"; newname = "さ/#{filename}";
33
- when "じ"; newname = "し/#{filename}";
34
- when "ず"; newname = "す/#{filename}";
35
- when "ぜ"; newname = "せ/#{filename}";
36
- when "ぞ"; newname = "そ/#{filename}";
37
- when "だ"; newname = "た/#{filename}";
38
- when "ぢ"; newname = "ち/#{filename}";
39
- when "づ"; newname = "つ/#{filename}";
40
- when "で"; newname = "て/#{filename}";
41
- when "ど"; newname = "と/#{filename}";
42
- when "ば"; newname = "は/#{filename}";
43
- when "び"; newname = "ひ/#{filename}";
44
- when "ぶ"; newname = "ふ/#{filename}";
45
- when "べ"; newname = "へ/#{filename}";
46
- when "ぼ"; newname = "ほ/#{filename}";
47
- when "ぱ"; newname = "は/#{filename}";
48
- when "ぴ"; newname = "ひ/#{filename}";
49
- when "ぷ"; newname = "ふ/#{filename}";
50
- when "ぺ"; newname = "へ/#{filename}";
51
- when "ぽ"; newname = "ほ/#{filename}";
52
- when /[あ-ん]/
53
- newname = "#{char}/#{filename}"
54
-
55
- when "ガ"; newname = "か/#{filename}";
56
- when "ギ"; newname = "き/#{filename}";
57
- when "グ"; newname = "く/#{filename}";
58
- when "ゲ"; newname = "け/#{filename}";
59
- when "ゴ"; newname = "こ/#{filename}";
60
- when "ザ"; newname = "さ/#{filename}";
61
- when "ジ"; newname = "し/#{filename}";
62
- when "ズ"; newname = "す/#{filename}";
63
- when "ゼ"; newname = "せ/#{filename}";
64
- when "ゾ"; newname = "そ/#{filename}";
65
- when "ダ"; newname = "た/#{filename}";
66
- when "ヂ"; newname = "ち/#{filename}";
67
- when "ヅ"; newname = "つ/#{filename}";
68
- when "デ"; newname = "て/#{filename}";
69
- when "ド"; newname = "と/#{filename}";
70
- when "バ"; newname = "は/#{filename}";
71
- when "ビ"; newname = "ひ/#{filename}";
72
- when "ブ"; newname = "ふ/#{filename}";
73
- when "ベ"; newname = "へ/#{filename}";
74
- when "ボ"; newname = "ほ/#{filename}";
75
- when "パ"; newname = "は/#{filename}";
76
- when "ピ"; newname = "ひ/#{filename}";
77
- when "プ"; newname = "ふ/#{filename}";
78
- when "ペ"; newname = "へ/#{filename}";
79
- when "ポ"; newname = "ほ/#{filename}";
80
- when "ヴ"; newname = "う/#{filename}";
91
+ if OPTIONS[:kakasi]
92
+ dirname = `echo #{filename.escape_zsh} | nkf -e | kakasi -JH | nkf -w`
93
+ else
94
+ dirname = filename
95
+ end
96
+ dirname = dirname[0..(OPTIONS[:length]-1)]
81
97
 
82
- when "ア"; newname = "あ/#{filename}";
83
- when "イ"; newname = "い/#{filename}";
84
- when "ウ"; newname = "う/#{filename}";
85
- when "エ"; newname = "え/#{filename}";
86
- when "オ"; newname = "お/#{filename}";
87
- when "カ"; newname = "か/#{filename}";
88
- when "キ"; newname = "き/#{filename}";
89
- when "ク"; newname = "く/#{filename}";
90
- when "ケ"; newname = "け/#{filename}";
91
- when "コ"; newname = "こ/#{filename}";
92
- when "サ"; newname = "さ/#{filename}";
93
- when "シ"; newname = "し/#{filename}";
94
- when "ス"; newname = "す/#{filename}";
95
- when "セ"; newname = "せ/#{filename}";
96
- when "ソ"; newname = "そ/#{filename}";
97
- when "タ"; newname = "た/#{filename}";
98
- when "チ"; newname = "ち/#{filename}";
99
- when "ツ"; newname = "つ/#{filename}";
100
- when "テ"; newname = "て/#{filename}";
101
- when "ト"; newname = "と/#{filename}";
102
- when "ナ"; newname = "な/#{filename}";
103
- when "ニ"; newname = "に/#{filename}";
104
- when "ヌ"; newname = "ぬ/#{filename}";
105
- when "ネ"; newname = "ね/#{filename}";
106
- when "ノ"; newname = "の/#{filename}";
107
- when "ハ"; newname = "は/#{filename}";
108
- when "ヒ"; newname = "ひ/#{filename}";
109
- when "フ"; newname = "ふ/#{filename}";
110
- when "ヘ"; newname = "へ/#{filename}";
111
- when "ホ"; newname = "ほ/#{filename}";
112
- when "マ"; newname = "ま/#{filename}";
113
- when "ミ"; newname = "み/#{filename}";
114
- when "ム"; newname = "む/#{filename}";
115
- when "メ"; newname = "め/#{filename}";
116
- when "モ"; newname = "も/#{filename}";
117
- when "ヤ"; newname = "や/#{filename}";
118
- when "ユ"; newname = "ゆ/#{filename}";
119
- when "ヨ"; newname = "よ/#{filename}";
120
- when "ラ"; newname = "ら/#{filename}";
121
- when "リ"; newname = "り/#{filename}";
122
- when "ル"; newname = "る/#{filename}";
123
- when "レ"; newname = "れ/#{filename}";
124
- when "ロ"; newname = "ろ/#{filename}";
125
- when "ワ"; newname = "わ/#{filename}";
126
- when "ヲ"; newname = "を/#{filename}";
127
- when "ン"; newname = "ん/#{filename}";
98
+ if OPTIONS[:shorten]
99
+ filename = filename[OPTIONS[:length]..(-1)]
128
100
  end
129
101
 
130
- newname
102
+ dirname + "/" + filename
131
103
  end
data/bin/rentime ADDED
@@ -0,0 +1,20 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "pp"
5
+ #gem "builtinextension"
6
+ #require "string_escape_zsh.rb"
7
+ require "filerenamer.rb"
8
+
9
+ op = FileRenamer::OptionParser.new
10
+ op.parse!(ARGV)
11
+
12
+ fr = FileRenamer::Commander.new(op.options, ARGV)
13
+ fr.execute do |filename|
14
+ extname = File.extname filename
15
+ dirname = File.dirname filename
16
+ date = File.mtime(filename)
17
+
18
+ newname = dirname + date.strftime("/%Y%m%d-%H%M%S") + extname
19
+ newname
20
+ end
data/filerenamer.gemspec CHANGED
@@ -5,14 +5,14 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "filerenamer"
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ippei94da"]
12
- s.date = "2012-08-28"
12
+ s.date = "2012-08-31"
13
13
  s.description = "This library provide common dealing to rename many files with safe method. Automatically mkdir if need and rmdir when empty."
14
14
  s.email = "ippei94da@gmail.com"
15
- s.executables = ["classify", "renhash", "rennum", "renpad", "renpar", "renreg", "rensub"]
15
+ s.executables = ["classify", "renhash", "rennum", "renpad", "renpar", "renreg", "rensub", "rentime"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE.txt",
18
18
  "README.rdoc"
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
32
32
  "bin/renpar",
33
33
  "bin/renreg",
34
34
  "bin/rensub",
35
+ "bin/rentime",
35
36
  "filerenamer.gemspec",
36
37
  "lib/filerenamer.rb",
37
38
  "lib/filerenamer/commander.rb",
@@ -39,6 +40,8 @@ Gem::Specification.new do |s|
39
40
  "test/classify/123",
40
41
  "test/classify/abc",
41
42
  "test/classify/def",
43
+ "test/classify/がぎぐ",
44
+ "test/classify/ゃゅょ",
42
45
  "test/classify/月火水",
43
46
  "test/filerenamer/a0.txt",
44
47
  "test/filerenamer/dummy.txt",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filerenamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-28 00:00:00.000000000 Z
12
+ date: 2012-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &73804310 !ruby/object:Gem::Requirement
16
+ requirement: &71128390 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.12'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *73804310
24
+ version_requirements: *71128390
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &73804040 !ruby/object:Gem::Requirement
27
+ requirement: &71128150 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.1.4
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *73804040
35
+ version_requirements: *71128150
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &73803800 !ruby/object:Gem::Requirement
38
+ requirement: &71127900 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.8.3
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *73803800
46
+ version_requirements: *71127900
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &73803510 !ruby/object:Gem::Requirement
49
+ requirement: &71127640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *73803510
57
+ version_requirements: *71127640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: builtinextension
60
- requirement: &73802970 !ruby/object:Gem::Requirement
60
+ requirement: &71127390 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.0.5
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *73802970
68
+ version_requirements: *71127390
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: capture_stdout
71
- requirement: &73802590 !ruby/object:Gem::Requirement
71
+ requirement: &71127090 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0.0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *73802590
79
+ version_requirements: *71127090
80
80
  description: This library provide common dealing to rename many files with safe method.
81
81
  Automatically mkdir if need and rmdir when empty.
82
82
  email: ippei94da@gmail.com
@@ -88,6 +88,7 @@ executables:
88
88
  - renpar
89
89
  - renreg
90
90
  - rensub
91
+ - rentime
91
92
  extensions: []
92
93
  extra_rdoc_files:
93
94
  - LICENSE.txt
@@ -107,6 +108,7 @@ files:
107
108
  - bin/renpar
108
109
  - bin/renreg
109
110
  - bin/rensub
111
+ - bin/rentime
110
112
  - filerenamer.gemspec
111
113
  - lib/filerenamer.rb
112
114
  - lib/filerenamer/commander.rb
@@ -114,6 +116,8 @@ files:
114
116
  - test/classify/123
115
117
  - test/classify/abc
116
118
  - test/classify/def
119
+ - test/classify/がぎぐ
120
+ - test/classify/ゃゅょ
117
121
  - test/classify/月火水
118
122
  - test/filerenamer/a0.txt
119
123
  - test/filerenamer/dummy.txt
@@ -164,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
168
  version: '0'
165
169
  segments:
166
170
  - 0
167
- hash: -379057359
171
+ hash: 112267247
168
172
  required_rubygems_version: !ruby/object:Gem::Requirement
169
173
  none: false
170
174
  requirements: