ykutils 0.1.0 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/main.yml +27 -0
  3. data/.gitignore +5 -1
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +17 -0
  6. data/.rubocop_todo.yml +332 -0
  7. data/CHANGELOG.md +5 -0
  8. data/CODE_OF_CONDUCT.md +84 -0
  9. data/Gemfile +20 -1
  10. data/Gemfile.lock +76 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +12 -8
  13. data/Rakefile +11 -0
  14. data/_config.yml +1 -0
  15. data/bin/console +2 -1
  16. data/bin/erubix +17 -0
  17. data/bin/erubix2 +13 -0
  18. data/bin/makegrid +23 -0
  19. data/bin/setup +2 -1
  20. data/lib/ykutils/datastructop.rb +58 -0
  21. data/lib/ykutils/debugutils.rb +28 -35
  22. data/lib/ykutils/erubyx.rb +41 -0
  23. data/lib/ykutils/fileoputils.rb +401 -0
  24. data/lib/ykutils/filepermision.rb +8 -9
  25. data/lib/ykutils/gridlist.rb +49 -0
  26. data/lib/ykutils/hasharray.rb +13 -22
  27. data/lib/ykutils/lines.rb +143 -154
  28. data/lib/ykutils/lsutils.rb +71 -72
  29. data/lib/ykutils/nginxconfig.rb +41 -0
  30. data/lib/ykutils/nginxconfigfiles.rb +31 -0
  31. data/lib/ykutils/nkfutil.rb +147 -155
  32. data/lib/ykutils/nkfutil19.rb +88 -84
  33. data/lib/ykutils/osutil.rb +16 -19
  34. data/lib/ykutils/pathop.rb +16 -18
  35. data/lib/ykutils/retcodex.rb +9 -11
  36. data/lib/ykutils/specfileop.rb +82 -91
  37. data/lib/ykutils/stext.rb +425 -462
  38. data/lib/ykutils/stextx.rb +32 -33
  39. data/lib/ykutils/stringutils.rb +111 -125
  40. data/lib/ykutils/treemanager.rb +33 -36
  41. data/lib/ykutils/treemanagera.rb +21 -26
  42. data/lib/ykutils/version.rb +3 -1
  43. data/lib/ykutils/xlines.rb +8 -9
  44. data/lib/ykutils/yamlop.rb +227 -0
  45. data/lib/ykutils/yamlxop.rb +35 -34
  46. data/lib/ykutils.rb +28 -0
  47. data/sig/ykutils.rbs +4 -0
  48. data/test_data/4servers.erb +7 -0
  49. data/test_data/a.bat +5 -0
  50. data/test_data/a_ncn.bat +12 -0
  51. data/test_data/top.yml +0 -0
  52. data/test_data/v103-3-189-127/4servers.erb +0 -0
  53. data/test_data/v103-3-189-127/a.northern-cross.net/base.yml +28 -0
  54. data/test_data/v103-3-189-127/a.northern-cross.net/value_host.yml +1 -0
  55. data/test_data/v103-3-189-127/b.northern-cross.net/base.yml +28 -0
  56. data/test_data/v103-3-189-127/b.northern-cross.net/value_host.yml +1 -0
  57. data/test_data/v103-3-189-127/c.northern-cross.net/base.yml +28 -0
  58. data/test_data/v103-3-189-127/c.northern-cross.net/value_host.yml +1 -0
  59. data/test_data/v103-3-189-127/d.northern-cross.info/base.yml +28 -0
  60. data/test_data/v103-3-189-127/d.northern-cross.info/value_host.yml +1 -0
  61. data/test_data/v103-3-189-127/d.northern-cross.net/base.yml +28 -0
  62. data/test_data/v103-3-189-127/d.northern-cross.net/value_host.yml +1 -0
  63. data/test_data/v103-3-189-127/e.northern-cross.info/base.yml +28 -0
  64. data/test_data/v103-3-189-127/e.northern-cross.info/value_host.yml +1 -0
  65. data/test_data/v103-3-189-127/e.northern-cross.net/base.yml +28 -0
  66. data/test_data/v103-3-189-127/e.northern-cross.net/value_host.yml +1 -0
  67. data/test_data/v103-3-189-127/f.northern-cross.info/base.yml +28 -0
  68. data/test_data/v103-3-189-127/f.northern-cross.info/value_host.yml +1 -0
  69. data/test_data/v103-3-189-127/f.northern-cross.net/base.yml +28 -0
  70. data/test_data/v103-3-189-127/f.northern-cross.net/value_host.yml +1 -0
  71. data/test_data/v103-3-189-127/t_server_1.erb +7 -0
  72. data/test_data/v103-3-189-127/template.erb +21 -0
  73. data/test_data/v103-3-189-127/template_ssl.erb +22 -0
  74. data/test_data/v103-3-189-127/template_ssl_www.erb +12 -0
  75. data/test_data/v103-3-189-127/template_www.erb +24 -0
  76. data/test_data/v103-3-189-127/value.yml +3 -0
  77. data/test_data/v103-3-189-127/value_ssl.yml +5 -0
  78. data/ykutils.gemspec +43 -27
  79. metadata +91 -27
  80. data/.travis.yml +0 -3
  81. data/lib/ykutils/fileoputils2.rb +0 -443
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ykutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - yasuo kominami
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-29 00:00:00.000000000 Z
11
+ date: 2022-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: filex
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.9'
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop-rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ~>
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: '1.9'
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
- name: rake
42
+ name: rubocop-rspec
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ~>
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '10.0'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ~>
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '10.0'
54
+ version: '0'
41
55
  description: utilty function created by yk.
42
56
  email:
43
57
  - ykominami@gmail.com
@@ -45,21 +59,36 @@ executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
48
- - .gitignore
49
- - .rspec
50
- - .travis.yml
62
+ - ".github/workflows/main.yml"
63
+ - ".gitignore"
64
+ - ".rspec"
65
+ - ".rubocop.yml"
66
+ - ".rubocop_todo.yml"
67
+ - CHANGELOG.md
68
+ - CODE_OF_CONDUCT.md
51
69
  - Gemfile
70
+ - Gemfile.lock
71
+ - LICENSE.txt
52
72
  - README.md
53
73
  - Rakefile
74
+ - _config.yml
54
75
  - bin/console
76
+ - bin/erubix
77
+ - bin/erubix2
78
+ - bin/makegrid
55
79
  - bin/setup
56
80
  - lib/ykutils.rb
81
+ - lib/ykutils/datastructop.rb
57
82
  - lib/ykutils/debugutils.rb
58
- - lib/ykutils/fileoputils2.rb
83
+ - lib/ykutils/erubyx.rb
84
+ - lib/ykutils/fileoputils.rb
59
85
  - lib/ykutils/filepermision.rb
86
+ - lib/ykutils/gridlist.rb
60
87
  - lib/ykutils/hasharray.rb
61
88
  - lib/ykutils/lines.rb
62
89
  - lib/ykutils/lsutils.rb
90
+ - lib/ykutils/nginxconfig.rb
91
+ - lib/ykutils/nginxconfigfiles.rb
63
92
  - lib/ykutils/nkfutil.rb
64
93
  - lib/ykutils/nkfutil19.rb
65
94
  - lib/ykutils/osutil.rb
@@ -73,29 +102,64 @@ files:
73
102
  - lib/ykutils/treemanagera.rb
74
103
  - lib/ykutils/version.rb
75
104
  - lib/ykutils/xlines.rb
105
+ - lib/ykutils/yamlop.rb
76
106
  - lib/ykutils/yamlxop.rb
107
+ - sig/ykutils.rbs
108
+ - test_data/4servers.erb
109
+ - test_data/a.bat
110
+ - test_data/a_ncn.bat
111
+ - test_data/top.yml
112
+ - test_data/v103-3-189-127/4servers.erb
113
+ - test_data/v103-3-189-127/a.northern-cross.net/base.yml
114
+ - test_data/v103-3-189-127/a.northern-cross.net/value_host.yml
115
+ - test_data/v103-3-189-127/b.northern-cross.net/base.yml
116
+ - test_data/v103-3-189-127/b.northern-cross.net/value_host.yml
117
+ - test_data/v103-3-189-127/c.northern-cross.net/base.yml
118
+ - test_data/v103-3-189-127/c.northern-cross.net/value_host.yml
119
+ - test_data/v103-3-189-127/d.northern-cross.info/base.yml
120
+ - test_data/v103-3-189-127/d.northern-cross.info/value_host.yml
121
+ - test_data/v103-3-189-127/d.northern-cross.net/base.yml
122
+ - test_data/v103-3-189-127/d.northern-cross.net/value_host.yml
123
+ - test_data/v103-3-189-127/e.northern-cross.info/base.yml
124
+ - test_data/v103-3-189-127/e.northern-cross.info/value_host.yml
125
+ - test_data/v103-3-189-127/e.northern-cross.net/base.yml
126
+ - test_data/v103-3-189-127/e.northern-cross.net/value_host.yml
127
+ - test_data/v103-3-189-127/f.northern-cross.info/base.yml
128
+ - test_data/v103-3-189-127/f.northern-cross.info/value_host.yml
129
+ - test_data/v103-3-189-127/f.northern-cross.net/base.yml
130
+ - test_data/v103-3-189-127/f.northern-cross.net/value_host.yml
131
+ - test_data/v103-3-189-127/t_server_1.erb
132
+ - test_data/v103-3-189-127/template.erb
133
+ - test_data/v103-3-189-127/template_ssl.erb
134
+ - test_data/v103-3-189-127/template_ssl_www.erb
135
+ - test_data/v103-3-189-127/template_www.erb
136
+ - test_data/v103-3-189-127/value.yml
137
+ - test_data/v103-3-189-127/value_ssl.yml
77
138
  - ykutils.gemspec
78
- homepage: ''
79
- licenses: []
80
- metadata: {}
81
- post_install_message:
139
+ homepage: https://ykominami.github.io/ykutils/
140
+ licenses:
141
+ - MIT
142
+ metadata:
143
+ homepage_uri: https://ykominami.github.io/ykutils/
144
+ source_code_uri: https://github.com/ykominami/ykutils
145
+ rubygems_mfa_required: 'true'
146
+ post_install_message:
82
147
  rdoc_options: []
83
148
  require_paths:
84
149
  - lib
85
150
  required_ruby_version: !ruby/object:Gem::Requirement
86
151
  requirements:
87
- - - '>='
152
+ - - ">="
88
153
  - !ruby/object:Gem::Version
89
- version: '0'
154
+ version: 2.6.0
90
155
  required_rubygems_version: !ruby/object:Gem::Requirement
91
156
  requirements:
92
- - - '>='
157
+ - - ">="
93
158
  - !ruby/object:Gem::Version
94
159
  version: '0'
95
160
  requirements: []
96
- rubyforge_project:
97
- rubygems_version: 2.4.1
98
- signing_key:
161
+ rubygems_version: 3.0.3.1
162
+ signing_key:
99
163
  specification_version: 4
100
164
  summary: utilty function created by yk.
101
165
  test_files: []
data/.travis.yml DELETED
@@ -1,3 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.0.0
@@ -1,443 +0,0 @@
1
- require 'ykutils/stringutils'
2
- require 'ykutils/retcodex'
3
- require 'ykutils/debugutils'
4
- require 'ykutils/fileoputils2'
5
-
6
- module Ykutils
7
- module FileOpUtils
8
- include StringUtils
9
- include DebugUtils
10
-
11
- WRITABLE_FILE_PATH = 11
12
- VALID_FILE_PATH = 10
13
- ABNORMAL_STRING = -5
14
- INVALID_FILE_PATH = -10
15
- NOT_WRITABLE_FILE_PATH = -11
16
-
17
- VALID_PATH = 20
18
- INVALID_PATH = -20
19
-
20
- def valid?
21
- @valid
22
- end
23
-
24
- def valid_fpath( fname )
25
- ret = VALID_FILE_PATH
26
- if normal_string?( fname )
27
- unless File.file?( fname )
28
- ret = INVALID_FILE_PATH
29
- end
30
- else
31
- ret = ABNORMAL_STRING
32
- end
33
- ret
34
- end
35
-
36
- def valid_path( path )
37
- ret = VALID_PATH
38
- if normal_string?( path )
39
- unless File.exist?( path )
40
- ret = INVALID_PATH
41
- end
42
- else
43
- ret = ABNORMAL_STRING
44
- end
45
- ret
46
- end
47
-
48
- def valid_fpath_with_message( fname )
49
- d_puts( "valid_fpath_with_message|fname=#{fname}" )
50
-
51
- mes = ""
52
- ret = valid_fpath(fname)
53
- ret_bool = (ret == VALID_FILE_PATH ? true : false )
54
-
55
- case ret
56
- when ABNORMAL_STRING
57
- mes = "abnormal string|#{fname}"
58
- @valid = false
59
-
60
- d_puts( "1 fname=#{fname}" )
61
- d_caller(0)
62
- when INVALID_PATH
63
- mes = "Can't find #{fname}"
64
- d_caller(0)
65
- @valid = false
66
-
67
- d_puts( "2 fname=#{fname}" )
68
- d_caller(0)
69
- else
70
- mes = ""
71
- d_puts( "3 fname=#{fname}" )
72
- end
73
- RetCode2.new( ret , ret_bool, mes )
74
- end
75
-
76
- def valid_fname?( fname )
77
- ret = false
78
- if normal_string?( fname )
79
- if File.file?( fname )
80
- ret = true
81
- else
82
- d_puts( "FileOpUtils:valid_fname? 2" )
83
- end
84
- else
85
- d_puts( "FileOpUtils:valid_fname? 1" )
86
- end
87
- ret
88
- end
89
-
90
- def valid_readable_fname?( fname )
91
- ret = false
92
- if normal_string?( fname ) and File.file?( fname ) and File.readable?( fname )
93
- ret = true
94
- end
95
- ret
96
- end
97
-
98
- def valid_writable_fpath_with_message( fname )
99
- mes = ""
100
-
101
- ret = valid_fpath(fname)
102
-
103
- ret_bool = (ret == VALID_FILE_PATH ? true : false )
104
-
105
- case ret
106
- when ABNORMAL_STRING
107
- mes = "abnormal string|#{fname}"
108
- @valid = false
109
- d_puts( "1 fname=#{fname}" )
110
- d_caller(0)
111
- when INVALID_FILE_PATH
112
- mes = "Can't find #{fname}"
113
- d_caller(0)
114
- @valid = false
115
- d_puts( "2 fname=#{fname}" )
116
- d_caller(0)
117
- else
118
- if File.writable?( fname )
119
- mes = ""
120
- ret = WRITABLE_FILE_PATH
121
- else
122
- mes = "Can't write #{fname}"
123
- @valid = false
124
- ret = NOT_WRITABLE_FILE_PATH
125
- ret_bool = false
126
- d_puts( "3 fname=#{fname}" )
127
- d_caller(0)
128
- end
129
- end
130
- RetCode2.new( ret , ret_bool, mes )
131
- end
132
-
133
- def valid_writable_fname?( fname )
134
- ret = false
135
- if normal_string?( fname )
136
- if File.file?( fname )
137
- if File.writable?( fname )
138
- ret = true
139
- end
140
- else
141
- unless File.directory?( fname )
142
- dir , filename = File.split( fname )
143
- ret = valid_writable_directory?( dir )
144
- end
145
- end
146
- end
147
- ret
148
- end
149
-
150
- def valid_readable_directory?( path )
151
- ret = false
152
- if File.directory?(path)
153
- if File.readable?(path)
154
- ret = true
155
- end
156
- end
157
- ret
158
- end
159
-
160
- def valid_writable_directory?( path )
161
- ret = false
162
- if File.directory?(path)
163
- if File.writable?(path)
164
- ret = true
165
- end
166
- end
167
- ret
168
- end
169
-
170
- def write_file_with_template(input_file_path , output_file )
171
- ary = []
172
- begin
173
- File.open( input_file_path , "r" ) do |file|
174
- while line = file.gets
175
- line.chomp!
176
- ary << file_content_process(line)
177
- end
178
- end
179
- rescue => ex
180
- pp ex
181
- pp ex.traceback
182
- @valid = false
183
- end
184
- if @valid
185
- content = ary.join("\n")
186
- begin
187
- output_file.write( content )
188
- rescue => ex
189
- pp ex
190
- pp ex.traceback
191
- @valid = false
192
- end
193
- end
194
- end
195
-
196
- def rewrite_file( from_path_1 , from_path_2 , to_path_1 , to_path_2 )
197
- d_p( "rewrite_file" )
198
- d_p( "from_path_1=#{from_path_1}" )
199
- d_p( "from_path_2=#{from_path_2}" )
200
- d_p( "to_path_1=#{to_path_1}" )
201
- d_p( "to_path_2=#{to_path_2}")
202
-
203
- mes = prepare_file_copy( from_path_1, from_path_2 , to_path_1 , to_path_2 )
204
-
205
- puts_no_empty( mes )
206
-
207
-
208
- unless @valid
209
- return false
210
- end
211
-
212
- from_path = File.join( from_path_1, from_path_2 )
213
- to_path = File.join( to_path_1, to_path_2 )
214
- ary = []
215
- begin
216
- File.open( from_path , "r" ) do |file|
217
- while line = file.gets
218
- line.chomp!
219
- ary << file_content_process(line)
220
- end
221
- end
222
- rescue => ex
223
- pp ex
224
- pp ex.traceback
225
- @valid = false
226
- end
227
-
228
- unless @valid
229
- return false
230
- end
231
-
232
- content = ary.join("\n")
233
-
234
- begin
235
- File.open( to_path , "w") do |file|
236
- file.write( content )
237
- end
238
- rescue => ex
239
- pp ex
240
- pp ex.traceback
241
- @valid = false
242
- end
243
- end
244
-
245
- def prepare_file_copy( from_path_1, from_path_2 , to_path_1 , to_path_2 )
246
- mes = ""
247
-
248
- d_p( "prepare_file_copy" )
249
- d_p( "from_path_1=#{from_path_1}" )
250
- d_p( "from_path_2=#{from_path_2}" )
251
- d_p( "to_path_1=#{to_path_1}" )
252
- d_p( "to_path_2=#{to_path_2}" )
253
-
254
- unless prepare_source_dir( from_path_1, from_path_2 )
255
- mes = "Can't read #{from_path_1}/#{from_path_2}"
256
- @valid = false
257
- else
258
- unless prepare_dest_dir( to_path_1, to_path_2 )
259
- mes = "Can't write #{to_path_1}/#{to_path_1}"
260
- d_caller(0)
261
- @valid = false
262
- end
263
- end
264
-
265
- mes
266
- end
267
-
268
- def prepare_source_dir( from_path_1, from_path_2 )
269
- state = false
270
- from_path = File.join( from_path_1, from_path_2 )
271
- if valid_readable_directory?( from_path_1 )
272
- dirname , filename = File.split( from_path )
273
- if valid_readable_directory?( dirname )
274
- if valid_readable_fname?( from_path )
275
- state = true
276
- end
277
- end
278
- end
279
- state
280
- end
281
-
282
- def prepare_dest_dir( to_path_1, to_path_2 )
283
- state = true
284
- unless valid_writable_directory?( to_path_1 )
285
- if File.exist?( to_path_1 )
286
- d_caller(0)
287
- return false
288
- end
289
-
290
- begin
291
- FileUtils.mkdir_p( to_path_1 )
292
- rescue => ex
293
- state = false
294
- pp ex
295
- pp ex.traceback
296
- end
297
- end
298
- unless valid_writable_directory?( to_path_1 )
299
- d_caller(0)
300
- return false
301
- end
302
-
303
- to_path = File.join( to_path_1, to_path_2 )
304
- dirname , filename = File.split( to_path )
305
- unless File.exist?( dirname )
306
- begin
307
- FileUtils.mkdir_p( dirname )
308
- rescue => ex
309
- state = false
310
- pp caller(0)
311
- end
312
- end
313
-
314
- unless state
315
- d_caller(0)
316
- return false
317
- end
318
-
319
- unless valid_writable_directory?( dirname )
320
- d_caller(0)
321
- return false
322
- end
323
-
324
- if File.file?( to_path )
325
- unless valid_writable_fname?( to_path )
326
- d_caller(0)
327
- return false
328
- end
329
- end
330
-
331
- true
332
- end
333
-
334
- def copy_file( from_path_1 , from_path_2 , to_path_1 , to_path_2 )
335
- retry_flag = false
336
- begin
337
- from_path = File.join( from_path_1, from_path_2 )
338
- to_path = File.join( to_path_1 , to_path_2 )
339
- FileUtils.cp( from_path , to_path )
340
- d_puts( "Copy #{from_path} -> #{to_path}" )
341
- rescue => ex
342
- retry_flag = prepare_file_copy( from_path_1 , from_path_2 , to_path_1 , to_path_2 )
343
- end
344
-
345
- if retry_flag
346
- begin
347
- FileUtils.cp( from_path , to_path )
348
- d_puts( "Copy #{from_path} -> #{to_path}" )
349
- rescue => ex
350
- @valid = false
351
- end
352
- end
353
-
354
- unless @valid
355
- d_puts( "Don't Copy #{from_path} -> #{to_path}" )
356
- end
357
- end
358
-
359
- def find_file( path , dirname , filename )
360
- ret = false
361
- ary = path.split( File::SEPARATOR )
362
- left = ary.index( dirname )
363
- d_p( ary )
364
- d_p(left)
365
- if left
366
- sub_ary = ary[(left+1)..-1]
367
- if sub_ary
368
- if sub_ary.index( filename )
369
- ret = true
370
- end
371
- end
372
- end
373
-
374
- ret
375
- end
376
-
377
- def check_filepath( fname_ary )
378
- ret = RetCode2.new( ret , false, "" )
379
- mes_ary = []
380
- fname_ary.each do |fname|
381
- ret2 = valid_fpath_with_message( fname )
382
- d_puts("==check_filepath")
383
- d_puts_no_empty( ret2.mes )
384
- d_p( ret2 )
385
- if ret2.bool
386
- ret.ret = fname
387
- ret.bool = true
388
- break
389
- else
390
- if ret2.ret == FileOpUtils::ABNORMAL_STRING
391
- ret.ret = ret2.ret
392
- mes_ary << "Can't find common (#{common_fname})"
393
- end
394
- end
395
- end
396
- unless ret.bool
397
- ret.mes = mes_ary.join("\n")
398
- end
399
- ret
400
- end
401
-
402
- def make_fpath_list( fname , parent_dir_ary )
403
- ary = [ fname ]
404
- parent_dir_ary.each do |dir|
405
- if dir
406
- ary << File.join( dir , fname )
407
- end
408
- end
409
- ary
410
- end
411
-
412
- def reform_filename( fname , add_string )
413
- path = Pathname(fname)
414
- basename = path.basename(".*")
415
- dirname = path.dirname
416
- extname = path.extname
417
-
418
- dirname.join( basename.to_s + add_string + extname.to_s )
419
- end
420
-
421
- def determine_encoding(pn)
422
- encodings = [Encoding::UTF_8 , Encoding::EUC_JP , Encoding::Shift_JIS , Encoding::CP932]
423
-
424
- valid_enc = nil
425
- encodings.each do |enc|
426
- unless valid_enc
427
- s = pn.expand_path.read(:encoding => enc)
428
- if s.valid_encoding?
429
- begin
430
- cs = s.encode(Encoding::CP932)
431
- valid_enc = enc
432
- rescue => ex
433
- # puts "Conversion Error! #{y}"
434
- # puts y
435
- end
436
- end
437
- end
438
- end
439
-
440
- valid_enc
441
- end
442
- end
443
- end