ykutils 0.1.0 → 0.1.4

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.
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