md2site 0.1.2 → 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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -19
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +21 -28
  5. data/bin/md2site +26 -31
  6. data/data/_x/diff.txt +337 -0
  7. data/data/_x/list.txt +495 -0
  8. data/data/_x/list2.txt +495 -0
  9. data/data/_x/list3.txt +415 -0
  10. data/data/_x/list4.txt +415 -0
  11. data/data/_x/list5.txt +392 -0
  12. data/data/_x/list6.txt +298 -0
  13. data/data/_x/list7.txt +201 -0
  14. data/data/_x/list8.txt +199 -0
  15. data/data/_x/outer_url.txt +94 -0
  16. data/data/_x/s.txt +140 -0
  17. data/data/conf/conf.sh +0 -2
  18. data/data/testdata/{conf-blog.yml → conf/conf-blog.yml} +0 -0
  19. data/data/testdata/{conf-download.yml → conf/conf-download.yml} +0 -0
  20. data/data/testdata/{conf-link.yml → conf/conf-link.yml} +0 -0
  21. data/data/testdata/{conf-profile.yml → conf/conf-profile.yml} +0 -0
  22. data/data/testdata/{conf-top.yml → conf/conf-top.yml} +0 -0
  23. data/data/testdata/{site.tsv → conf/site.tsv} +0 -0
  24. data/data/testdata0/{conf-appliction.yml → conf/conf-appliction.yml} +0 -0
  25. data/data/testdata0/{conf-attempt.yml → conf/conf-attempt.yml} +16 -16
  26. data/data/testdata0/conf/conf-autosar.yml +11 -0
  27. data/data/testdata0/{conf-community.yml → conf/conf-community.yml} +0 -0
  28. data/data/testdata0/{conf-document.yml → conf/conf-document.yml} +0 -0
  29. data/data/testdata0/{conf-download.yml → conf/conf-download.yml} +0 -0
  30. data/data/testdata0/{conf-edu.yml → conf/conf-edu.yml} +18 -19
  31. data/data/testdata0/{conf-etc.yml → conf/conf-etc.yml} +0 -0
  32. data/data/testdata0/{conf-members.yml → conf/conf-members.yml} +0 -0
  33. data/data/testdata0/{conf-product.yml → conf/conf-product.yml} +9 -9
  34. data/data/testdata0/{conf-project.yml → conf/conf-project.yml} +2 -2
  35. data/data/testdata0/conf/conf-rtk.yml +25 -0
  36. data/data/testdata0/conf/conf-sample.yml +5 -0
  37. data/data/testdata0/{conf-top.yml → conf/conf-top.yml} +0 -0
  38. data/data/testdata0/conf/conf.sh +32 -0
  39. data/data/testdata0/{setting.yml → conf/setting.yml} +11 -0
  40. data/data/testdata0/{site.tsv → conf/site.tsv} +109 -2
  41. data/data/testdata0/conf/status.txt +6 -0
  42. data/lib/md2site/env.rb +248 -276
  43. data/lib/md2site/envcheck.rb +186 -0
  44. data/lib/md2site/htmlutils0.rb +64 -2
  45. data/lib/md2site/info.rb +12 -0
  46. data/lib/md2site/init.rb +61 -5
  47. data/lib/md2site/listfile.rb +16 -0
  48. data/lib/md2site/make.rb +92 -31
  49. data/lib/md2site/nkfguess.rb +8 -0
  50. data/lib/md2site/setup.rb +104 -28
  51. data/lib/md2site/statusfile.rb +98 -6
  52. data/lib/md2site/testdata.rb +43 -3
  53. data/lib/md2site/testx.rb +28 -1
  54. data/lib/md2site/version.rb +1 -1
  55. data/lib/md2site.rb +93 -26
  56. data/md2site.gemspec +5 -6
  57. metadata +77 -76
  58. data/data/testdata0/conf-autosar.yml +0 -11
  59. data/data/testdata0/conf-rtk.yml +0 -25
@@ -0,0 +1,186 @@
1
+ module Md2site
2
+ #
3
+ # 環境検査クラス
4
+ #
5
+ class EnvCheck
6
+ #
7
+ # 初期化
8
+ #
9
+ # @param mes [Messagex] Messagexクラスのインスタンス
10
+ # @param conf_path [String] 構成ファイルのパス
11
+ # @param verbose [Boolean] FileUtilsクラスのメソッドのverbose引数に与える値
12
+ def initialize(mes, conf_path)
13
+ @mes = mes
14
+ @conf_path = conf_path
15
+ end
16
+
17
+ #
18
+ # 有効な構成ファイルへのパスであるか調べる(無効であればexitする)
19
+ #
20
+ # @return [void]
21
+ def check_conf_path
22
+ unless @conf_path
23
+ @mes.output_error("Not specified conf file")
24
+ exit(@mes.ec("EXIT_CODE_NOT_SPECIFIED_CONFFILE"))
25
+ end
26
+
27
+ unless File.exist?(@conf_path)
28
+ @mes.output_fatal("Cannot find conf file(#{confPath})")
29
+ exit(@mes.ec("EXIT_CODE_CANNOT_FIND_CONFFILE"))
30
+ end
31
+ end
32
+
33
+ #
34
+ # Envクラスのattributeとして有効な値が構成ファイル中に指定されているか調べる(無効であればexitする)
35
+ #
36
+ # @param conf_hs [Hash] 構成ハッシュ
37
+ # @return [void]
38
+ def check_conf_hs_for_attribute(conf_hs)
39
+ @absolute_path_root_conf = conf_hs["ABSOLUTE_PATH_ROOT_CONF"]
40
+ unless @absolute_path_root_conf
41
+ @mes.output_fatal("Cannot get ABSOLUTE_PATH_ROOT_CONF in #{@conf_path}")
42
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ABSOLUTE_PATH_ROOT_CONF"))
43
+ end
44
+ unless File.exist?(@absolute_path_root_conf)
45
+ @mes.output_fatal("Cannot find root conf dir(#{@absolute_path_root_conf})")
46
+ exit(@mes.ec("EXIT_CODE_CANNOT_FIND_ROOTCONFFILE"))
47
+ end
48
+
49
+ @absolutepath_root_settingfile = conf_hs["ABSOLUTE_PATH_ROOT_SETTINGFILE"]
50
+ unless @absolutepath_root_settingfile
51
+ @mes.output_error("Can't get ABSOLUTE_PATH_ROOT_SETTINGFILE in #{@conf_path}")
52
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ABSOLUTE_PATH_ROOT_SETTINGFILE"))
53
+ end
54
+ [@absolute_path_root_conf, @absolutepath_root_settingfile]
55
+ end
56
+
57
+ #
58
+ # 構成ファイルから変換したハッシュに有効な値が指定されているか調べる(無効であればexitする)
59
+ #
60
+ # @param conf_hs [Hash] 構成ハッシュ
61
+ # @param absolutepath_root [String] プロジェクトルートへの絶対パス
62
+ # @param root_output_dir [String] ルート出力ディレクトリ
63
+ # @return [void]
64
+ def check_conf_hs(conf_hs, absolutepath_root, root_output_dir) # rubocop:disable Metrics/MethodLength
65
+ default_table_template = conf_hs["DEFAULT_TABLE_TEMPLATE"] # 5col_no_attr_b.erb
66
+ unless default_table_template || !FileTest.exist?(default_table_template)
67
+ @mes.output_fatal("Cannot find valid DEFAULT_TABLE_TEMPLATE(=#{default_table_template}) in #{@conf_path}")
68
+ exit(@mes.ec("EXIT_CODE_CANNOT_FIND_DEFAULT_TABLE_TEMPLATE"))
69
+ end
70
+
71
+ sitefile_path = conf_hs["ABSOLUTE_PATH_SITE_FILE"]
72
+ unless sitefile_path || !FileTest.exist?(sitefile_path)
73
+ @mes.output_error("Can't get valid ABSOLUTE_PATH_SITE_FILE in #{@conf_path}")
74
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ABSOLUTE_PATH_SITE_FILE"))
75
+ end
76
+
77
+ absolute_path_status_file = conf_hs["ABSOLUTE_PATH_STATUS_FILE"]
78
+ unless absolute_path_status_file || !FileTest.exist?(absolute_path_status_file)
79
+ @mes.output_error("Can't find valid ABSOLUTE_PATH_STATUS_FILE in #{@conf_path}")
80
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ABSOLUTE_PATH_STATUS_FILE"))
81
+ end
82
+
83
+ unless conf_hs["TEMPLELATE_DIR"]
84
+ @mes.output_error("Can't get TEPLATE_DIR in #{@conf_path}")
85
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_TEPLATE_DIR"))
86
+ end
87
+
88
+ unless conf_hs["CONF_DIR"]
89
+ @mes.output_error("Can't get CONF_DIR in #{@conf_path}")
90
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_CONF_DIR"))
91
+ end
92
+
93
+ unless conf_hs["URL"]
94
+ @mes.output_error("Can't get URL in #{@conf_path}")
95
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_URL"))
96
+ end
97
+
98
+ unless conf_hs["ROOT_TEMPLATE_FUNCTIONS_VARIABLE"]
99
+ @mes.output_fatal("Cannot get value by ROOT_TEMPLATE_FUNCTIONS_VARIABLE from #{@conf_path}")
100
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ROOT_TEMPLATE_FUNCTIONS_VARIABLE"))
101
+ end
102
+ root_output_path = File.join(absolutepath_root, root_output_dir)
103
+ unless File.exist?(root_output_path)
104
+ @mes.output_error("Can't find root_output_dir(=#{root_output_dir})")
105
+ exit(@mes.ec("EXIT_CODE_CANNOT_FIND_ROOTOUTPUTDIR"))
106
+ end
107
+
108
+ sitefile_path
109
+ end
110
+
111
+ #
112
+ # 構成ファイルから変換したハッシュに指定されている値が有効であれば、インスタンス変数で参照できるようにする(無効であればexitする)
113
+ #
114
+ # @param conf_hs [Hash] 構成ハッシュ
115
+ # @return [void]
116
+ def check_conf_hs_and_set(conf_hs) # rubocop:disable Metrics/MethodLength
117
+ @category_conf_prefix = conf_hs["CATEGORY_CONF_PREFIX"]
118
+ unless @category_conf_prefix
119
+ @mes.output_fatal("Cannot get category conf prefix from #{@conf_path}")
120
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_CATEGORY_CONF_PREFIX"))
121
+ end
122
+
123
+ @root_output_dir = conf_hs["OUTPUT_DIR"]
124
+ unless @root_output_dir
125
+ @mes.output_fatal("Cannot get rootOutputDir from #{@conf_path}")
126
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ROOTOUTPUTDIR"))
127
+ end
128
+
129
+ @src_dir = conf_hs["SRC_DIR"]
130
+ unless @src_dir
131
+ @mes.output_error("Can't get SRC_DIR in #{@conf_path}")
132
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_SRC_DIR"))
133
+ end
134
+
135
+ @data_dir = conf_hs["DATA_DIR"]
136
+ unless @data_dir
137
+ @mes.output_fatal("Cannot get DATA_DIR in #{@conf_path}")
138
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_DATA_DIR"))
139
+ end
140
+
141
+ @work_dir = conf_hs["WORK_DIR"]
142
+ unless @work_dir
143
+ @mes.output_fatal("Cannot get WORK_DIR in #{@conf_path}")
144
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_WORK_DIR"))
145
+ end
146
+
147
+ @material_dir = conf_hs["MATERIAL_DIR"]
148
+ unless @material_dir
149
+ @mes.output_fatal("Cannot get MATERIAL_DIR in #{@conf_path}")
150
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_MATERIAL_DIR"))
151
+ end
152
+
153
+ @target_command_index = conf_hs["TARGET_COMMAND_INDEX"].to_i
154
+ unless @target_command_index
155
+ @mes.output_fatal("Cannot get targetCommandIndex from #{@conf_path}")
156
+ exit(@mes.ec("EXIT_CODE_CANNOT_CANNOT_GET_TARGET_COMMAND_INDEX"))
157
+ end
158
+
159
+ @subtarget_command_index = conf_hs["SUBTARGET_COMMAND_INDEX"].to_i
160
+ unless @subtarget_command_index
161
+ @mes.output_fatal("Cannot get subTargetCommandIndex from #{@conf_path}")
162
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_SUBTARGET_COMMAND_INDEX"))
163
+ end
164
+
165
+ @key_index = conf_hs["KEY_INDEX"].to_i
166
+ unless @key_index
167
+ @mes.output_fatal("Cannot get keyIndex from #{@conf_path}")
168
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_KEY_INDEX"))
169
+ end
170
+
171
+ @htmlfile_index = conf_hs["HTMLFILE_INDEX"].to_i
172
+ unless @htmlfile_index
173
+ @mes.output_fatal("Cannot get htmlfileIndex from #{@conf_path}")
174
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_HTMLFILE_INDEX"))
175
+ end
176
+
177
+ @alias_htmlfile_index = conf_hs["ALIAS_HTMLFILE_INDEX"].to_i
178
+ unless @alias_htmlfile_index
179
+ @mes.output_fatal("Cannot get aliasHtmlfileIndex from #{@conf_path}")
180
+ exit(@mes.ec("EXIT_CODE_CANNOT_GET_ALIAS_HTMLFILE_INDEX"))
181
+ end
182
+
183
+ [@category_conf_prefix, @root_output_dir, @src_dir, @data_dir, @work_dir, @material_dir, @target_command_index, @subtarget_command_index, @key_index, @htmlfile_index, @alias_htmlfile_index]
184
+ end
185
+ end
186
+ end
@@ -1,12 +1,26 @@
1
1
  module Md2site
2
+ #
3
+ # HTMLファイル分割クラス
2
4
  class HTMLUtils
3
5
  require "md2site/nkfguess"
4
6
 
7
+ #
8
+ # 初期化
9
+ #
10
+ # @param htmlfname [String] 分割対象HTMLファイル名
11
+ # @param mes [Messagex] Messagexクラスのインスタンス
12
+ # @return [void]
5
13
  def initialize(htmlfname, mes)
6
14
  @htmlfname = htmlfname
7
15
  @mes = mes
8
16
  end
9
17
 
18
+ #
19
+ # 1行解析
20
+ #
21
+ # @param state [Symbol] 分割対象HTMLファイル名
22
+ # @param line [String] 解析対象行
23
+ # @return [Symbol] 構文解析上の次の状態
10
24
  def parse_line(state, line)
11
25
  event = get_event(line)
12
26
 
@@ -29,6 +43,10 @@ module Md2site
29
43
  next_state
30
44
  end
31
45
 
46
+ #
47
+ # HTMLファイル分割
48
+ #
49
+ # @return [Array] 第0要素:HTML先頭部 第1要素:HTML中間部 第2要素:HTML末尾部
32
50
  def divide_html
33
51
  part_struct = Struct.new(:lines, :status)
34
52
  @part0 = part_struct.new([], false)
@@ -58,6 +76,11 @@ module Md2site
58
76
 
59
77
  private
60
78
 
79
+ #
80
+ # 解析対象行からトークン取得
81
+ #
82
+ # @param line [String] 解析対象行
83
+ # @return [Symbol] トークン種別
61
84
  def get_event(line)
62
85
  line.chomp!
63
86
  @lineno += 1
@@ -81,6 +104,11 @@ module Md2site
81
104
  event
82
105
  end
83
106
 
107
+ #
108
+ # part0部のCONTENTS_ENDイベント処理
109
+ #
110
+ # @param line [String] 解析対象行
111
+ # @return [Symbol] 構文解析上の次の状態
84
112
  def state_in_part0_contents_end(line)
85
113
  @part0.lines << @lines
86
114
  if !@div_body_main.nil? && !@div_cse.nil?
@@ -93,6 +121,12 @@ module Md2site
93
121
  :IN_PART2
94
122
  end
95
123
 
124
+ #
125
+ # part0部のイベント処理
126
+ #
127
+ # @param event [Symbol] トークン種別
128
+ # @param line [String] 解析対象行
129
+ # @return [Symbol] 構文解析上の次の状態
96
130
  def state_in_part0(event, line)
97
131
  case event
98
132
  when :CONTENTS_BEGIN
@@ -125,7 +159,12 @@ module Md2site
125
159
  next_state
126
160
  end
127
161
 
128
- def state_in_part0_contents_contents_env(line)
162
+ #
163
+ # part0_contents部のcontents_endイベント処理
164
+ #
165
+ # @param line [String] 解析対象行
166
+ # @return [Symbol] 構文解析上の次の状態
167
+ def state_in_part0_contents_contents_end(line)
129
168
  @part1.lines << @lines
130
169
  if !@div_body_main.nil? && !@div_cse.nil?
131
170
  @part1.status = true
@@ -137,13 +176,19 @@ module Md2site
137
176
  :IN_PART2
138
177
  end
139
178
 
179
+ #
180
+ # part0_contents部のイベント処理
181
+ #
182
+ # @param event [Symbol] トークン種別
183
+ # @param line [String] 解析対象行
184
+ # @return [Symbol] 構文解析上の次の状態
140
185
  def state_in_part0_contents(event, line)
141
186
  case event
142
187
  when :CONTENTS_BEGIN
143
188
  @lines << line
144
189
  next_state = :IN_PART0_CONTENTS
145
190
  when :CONTENTS_END
146
- next_state = state_in_part0_contents_contents_env(line)
191
+ next_state = state_in_part0_contents_contents_end(line)
147
192
  when :ID_BODY_MAIN
148
193
  @lines << line
149
194
  @div_body_main = line
@@ -169,6 +214,11 @@ module Md2site
169
214
  next_state
170
215
  end
171
216
 
217
+ #
218
+ # part1部のcontents_endイベント処理
219
+ #
220
+ # @param line [String] 解析対象行
221
+ # @return [Symbol] 構文解析上の次の状態
172
222
  def state_in_part1_contents_end(line)
173
223
  @part1.lines << @lines
174
224
  if !@div_body_main.nil? && !@div_cse.nil?
@@ -181,6 +231,12 @@ module Md2site
181
231
  :IN_PART2
182
232
  end
183
233
 
234
+ #
235
+ # part1部のイベント処理
236
+ #
237
+ # @param event [Symbol] トークン種別
238
+ # @param line [String] 解析対象行
239
+ # @return [Symbol] 構文解析上の次の状態
184
240
  def state_in_part1(event, line)
185
241
  case event
186
242
  when :CONTENTS_BEGIN
@@ -214,6 +270,12 @@ module Md2site
214
270
  next_state
215
271
  end
216
272
 
273
+ #
274
+ # part2部のイベント処理
275
+ #
276
+ # @param event [Symbol] トークン種別
277
+ # @param line [String] 解析対象行
278
+ # @return [Symbol] 構文解析上の次の状態
217
279
  def state_in_part2(event, line)
218
280
  @lines << line
219
281
 
data/lib/md2site/info.rb CHANGED
@@ -1,10 +1,22 @@
1
1
  module Md2site
2
+ #
3
+ # infoサブコマンドクラス
2
4
  class Info
5
+ #
6
+ # 初期化
7
+ #
8
+ # @param env [Env] Envクラスのインスタンス
9
+ # @param mes [Messagex] Messagexクラスのインスタンス
3
10
  def initialize(env, mes)
4
11
  @env = env
5
12
  @mes = mes
6
13
  end
7
14
 
15
+ #
16
+ # サブコマンド実行
17
+ #
18
+ # @param option [Struct] オプションストラクト
19
+ # @return [void]
8
20
  def execute_subcommand(option)
9
21
  case option.name
10
22
  when "zlist"
data/lib/md2site/init.rb CHANGED
@@ -1,9 +1,33 @@
1
1
  module Md2site
2
+ #
3
+ # initサブコマンドクラス
2
4
  class Init
3
- attr_reader :hs, :confFile, :templateDir
5
+ #
6
+ # ハッシュ
7
+ #
8
+ # return [Hash]
9
+ attr_reader :hs
10
+
11
+ #
12
+ # 構成ファイルのパス
13
+ #
14
+ # return [String]
15
+ attr_reader :conf_file
16
+
17
+ #
18
+ # テンプレートディレクトリ
19
+ #
20
+ # return [String]
21
+ attr_reader :template_dir
4
22
 
5
23
  require "md2site/testdata"
6
24
 
25
+ #
26
+ # 初期化
27
+ #
28
+ # @param src_root_dir [String] コピー元ルートディレクトリ
29
+ # @param mes [Messagex] Messagexクラスのインスタンス
30
+ # @param verbose [Boolean] FileUtilsクラスのメソッドのverbose引数に与える値
7
31
  def initialize(src_root_dir, mes, verbose)
8
32
  @mes = mes
9
33
  @verbose = verbose
@@ -29,6 +53,12 @@ module Md2site
29
53
  }
30
54
  end
31
55
 
56
+ #
57
+ # サブコマンド実行
58
+ #
59
+ # @param option [Struct] オプションストラクト
60
+ # @param option_url [Struct] URLオプションストラクト
61
+ # @return [void]
32
62
  def execute_subcommand(option, option_url)
33
63
  root_dir = option.value
34
64
  unless File.exist?(root_dir)
@@ -42,12 +72,13 @@ module Md2site
42
72
  url = DEFAULT_URL_SETTING
43
73
  end
44
74
 
45
- @hs[KEY_ABSOLUTE_PATH_ROOT] = absolute_path_root
46
75
  @hs[KEY_URL] = url
47
76
 
48
77
  td = Testdata.new(@src_root_dir, @template_dir, hs)
49
78
 
50
79
  copy_all_files(@src_root_dir, @conf_dir, absolute_path_root, @conf_dir)
80
+ testdata_dir_array = td.testdata_dir_array
81
+ testdata_dir_array.map {|dir| copy_all_files(@src_root_dir, dir, absolute_path_root, @conf_dir) }
51
82
  template_dir_array = td.template_dir_array
52
83
  copy_templatefile(@src_root_dir, template_dir_array, absolute_path_root, @template_dir)
53
84
  files = expand_and_write_files(@src_root_dir, @conf_dir, absolute_path_root, [@conf_file], @hs)
@@ -58,22 +89,47 @@ module Md2site
58
89
 
59
90
  private
60
91
 
92
+ #
93
+ # 読込元のファイル群を書込先ディレクトリに変数展開して書き込む
94
+ #
95
+ # @param src_root_dir [String] 読込元ルートディレクトリ
96
+ # @param src_dir [String] 読込元ディレクトリ
97
+ # @param dest_root_dir [String] 書込先ルートディレクトリ
98
+ # @param files [Array<String>] 変数展開対象ファイル群
99
+ # @param hash [Hash] 置換用ハッシュ
100
+ # @return [Array<String>] 書き込んだだファイルへのパスの配列
61
101
  def expand_and_write_files(src_root_dir, src_dir, dest_root_dir, files, hash)
62
- files.map do |x|
63
- src_path = File.join(src_root_dir, src_dir, x)
102
+ files.map do |fname|
103
+ src_path = File.join(src_root_dir, src_dir, fname)
64
104
  content = Filex::Filex.check_and_expand_file(src_path, hash, @mes)
65
105
  dest_dir = File.join(dest_root_dir, src_dir)
66
106
  @mes.exc_make_directory(dest_dir) { FileUtils.mkdir_p(dest_dir, { verbose: @verbose }) }
67
- dest_path = File.join(dest_dir, x)
107
+ dest_path = File.join(dest_dir, fname)
68
108
  @mes.exc_file_write(dest_path) { File.open(dest_path, "w") {|f| f.puts(content) } }
69
109
  dest_path
70
110
  end
71
111
  end
72
112
 
113
+ #
114
+ # コピー元ディレクトリ下のファイル群をコピー先ディレクトリにコピーする
115
+ #
116
+ # @param src_root_dir [String] コピー元ルートディレクトリ
117
+ # @param src_dir_array [Array<String>] コピー元ディレクトリ群
118
+ # @param dest_root_dir [String] コピー先ルートディレクトリ
119
+ # @param dest_dir [String] コピー先ディレクトリ
120
+ # @return [void]
73
121
  def copy_templatefile(src_root_dir, src_dir_array, dest_root_dir, dest_dir)
74
122
  src_dir_array.map {|x| copy_all_files(src_root_dir, x, dest_root_dir, dest_dir) }.flatten
75
123
  end
76
124
 
125
+ #
126
+ # コピー元のファイル群をコピー先ディレクトリにコピーする
127
+ #
128
+ # @param src_root_dir [String] コピー元ルートディレクトリ
129
+ # @param src_dir [String] コピー元ディレクトリ
130
+ # @param dest_root_dir [String] コピー先ルートディレクトリ
131
+ # @param dest_dir [String] コピー先ディレクトリ
132
+ # @return [void]
77
133
  def copy_all_files(src_root_dir, src_dir, dest_root_dir, dest_dir)
78
134
  dir = File.join(src_root_dir, src_dir)
79
135
  files = Dir[%Q(#{dir}/*)].map do |x|
@@ -1,7 +1,14 @@
1
1
  module Md2site
2
2
  require "csv"
3
3
 
4
+ #
5
+ # ダウンロード一覧ファイルクラス
4
6
  class ListFile
7
+ #
8
+ # 初期化
9
+ #
10
+ # @param dir [String] 書込先ディレクトリ
11
+ # @param mes [Messagex] Messagexクラスのインスタンス
5
12
  def initialize(dir, mes)
6
13
  @fname = File.join(dir, LIST_FILE)
7
14
  @mes = mes
@@ -11,10 +18,19 @@ module Md2site
11
18
  @csv.add_row([FIELD_FILENMAE, FIELD_DATETIMESTR, FIELD_UNIXTIME, FIELD_MD5])
12
19
  end
13
20
 
21
+ #
22
+ # 行追加
23
+ #
24
+ # @param row [Array<String>] 1行分のフィールドの配列
25
+ # @return [void]
14
26
  def add(row)
15
27
  @csv.add_row(row)
16
28
  end
17
29
 
30
+ #
31
+ # ダウンロード一覧ファイルクローズ
32
+ #
33
+ # @return [void]
18
34
  def close
19
35
  @mes.exc_file_close(@fname) { @csv.close }
20
36
  end