ykutils 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/README.md +39 -0
- data/Rakefile +1 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/ykutils.rb +5 -0
- data/lib/ykutils/debugutils.rb +129 -0
- data/lib/ykutils/fileoputils2.rb +443 -0
- data/lib/ykutils/filepermision.rb +36 -0
- data/lib/ykutils/hasharray.rb +67 -0
- data/lib/ykutils/lines.rb +154 -0
- data/lib/ykutils/lsutils.rb +72 -0
- data/lib/ykutils/nkfutil.rb +155 -0
- data/lib/ykutils/nkfutil19.rb +165 -0
- data/lib/ykutils/osutil.rb +19 -0
- data/lib/ykutils/pathop.rb +37 -0
- data/lib/ykutils/retcodex.rb +50 -0
- data/lib/ykutils/specfileop.rb +213 -0
- data/lib/ykutils/stext.rb +462 -0
- data/lib/ykutils/stextx.rb +33 -0
- data/lib/ykutils/stringutils.rb +125 -0
- data/lib/ykutils/treemanager.rb +36 -0
- data/lib/ykutils/treemanagera.rb +26 -0
- data/lib/ykutils/version.rb +3 -0
- data/lib/ykutils/xlines.rb +9 -0
- data/lib/ykutils/yamlxop.rb +34 -0
- data/ykutils.gemspec +27 -0
- metadata +101 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e9bf4a1496614553e8da4558a59f381ca144e99c
|
4
|
+
data.tar.gz: 3cdd60d495a1479f954f7d918131f3a0de74b56f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 45b7af05299dffc72a8a494ef9183176dff1b85243efa27774e3cc75b6478c7e56a06926128888a412206a22cfa858cd9bb42d05526deb0340bea549d572eff2
|
7
|
+
data.tar.gz: 107de770406966509cb4016d3a4842dcf651dfe7f19e61932bb8c639b1c3ea14499b7575d389432ec93b15e1d6e033abf6de07a759378adab8d6910cebe6aae4
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Ykutils
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/ykutils`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'ykutils'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install ykutils
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
1. Fork it ( https://github.com/[my-github-username]/ykutils/fork )
|
36
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
37
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
38
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
39
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "ykutils"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/lib/ykutils.rb
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
require 'pp'
|
2
|
+
|
3
|
+
module Ykutils
|
4
|
+
module DebugUtils
|
5
|
+
class DebugMes
|
6
|
+
def DebugMes.init( debug = false )
|
7
|
+
@@debug = debug
|
8
|
+
@@buf = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def DebugMes.set_debug( debug )
|
12
|
+
@@debug = debug
|
13
|
+
end
|
14
|
+
|
15
|
+
def DebugMes.puts_x( mes )
|
16
|
+
@@buf ||= []
|
17
|
+
@@buf << mes
|
18
|
+
# puts "#{@@buf.size} |#{mes}"
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
def DebugMes.get
|
23
|
+
buf = @@buf
|
24
|
+
# DebugMes.clear
|
25
|
+
|
26
|
+
buf
|
27
|
+
end
|
28
|
+
|
29
|
+
def DebugMes.clear
|
30
|
+
@@buf ||= []
|
31
|
+
@@buf.clear
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def clear_d
|
36
|
+
DebugMes.clear
|
37
|
+
end
|
38
|
+
|
39
|
+
def puts_d(mes)
|
40
|
+
DebugMes.puts_x( mes )
|
41
|
+
# puts mes
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_d
|
45
|
+
DebugMes.get
|
46
|
+
end
|
47
|
+
|
48
|
+
def puts_current_method
|
49
|
+
d_puts (caller(1)[0].split)[-1]
|
50
|
+
end
|
51
|
+
|
52
|
+
def error_exit(n)
|
53
|
+
puts "error(#{n})"
|
54
|
+
pp caller(0)
|
55
|
+
exit(n)
|
56
|
+
end
|
57
|
+
|
58
|
+
def debug_utils_init
|
59
|
+
set_debug( false )
|
60
|
+
set_warn( 0 )
|
61
|
+
|
62
|
+
DebugMes.init( false )
|
63
|
+
end
|
64
|
+
|
65
|
+
def set_debug( val )
|
66
|
+
@debugutils = val
|
67
|
+
DebugMes.set_debug( val )
|
68
|
+
end
|
69
|
+
|
70
|
+
def get_debug
|
71
|
+
@debugutils
|
72
|
+
end
|
73
|
+
|
74
|
+
def set_warn( val )
|
75
|
+
@warn = val
|
76
|
+
end
|
77
|
+
|
78
|
+
def debug
|
79
|
+
@debugutils
|
80
|
+
end
|
81
|
+
|
82
|
+
def d_exit( num )
|
83
|
+
exit( num ) if @debugutils
|
84
|
+
end
|
85
|
+
|
86
|
+
def d_puts( str )
|
87
|
+
puts(str) if @debugutils
|
88
|
+
end
|
89
|
+
|
90
|
+
def w1_puts( str )
|
91
|
+
unless @warn
|
92
|
+
set_warn( 0 )
|
93
|
+
end
|
94
|
+
puts(str) if @debugutils or @warn >= 1
|
95
|
+
end
|
96
|
+
|
97
|
+
def w2_puts( str )
|
98
|
+
unless @warn
|
99
|
+
set_warn( 0 )
|
100
|
+
end
|
101
|
+
puts(str) if @debugutils or @warn >= 2
|
102
|
+
end
|
103
|
+
|
104
|
+
def d_caller( num )
|
105
|
+
pp caller( 0 ) if @debugutils
|
106
|
+
end
|
107
|
+
|
108
|
+
def puts_no_empty( mes )
|
109
|
+
puts mes if mes != ""
|
110
|
+
end
|
111
|
+
|
112
|
+
def d_puts_no_empty( mes )
|
113
|
+
puts mes if mes != "" and @debugutils
|
114
|
+
end
|
115
|
+
|
116
|
+
def d_p( it )
|
117
|
+
p it if @debugutils
|
118
|
+
end
|
119
|
+
|
120
|
+
def d_pp( it )
|
121
|
+
if @debugutils
|
122
|
+
pp "@debugutils=#{@debugutils}"
|
123
|
+
pp caller(0)
|
124
|
+
exit
|
125
|
+
end
|
126
|
+
pp it if @debugutils
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,443 @@
|
|
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
|