md2site 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,11 +1,30 @@
1
1
  module Md2site
2
2
  require "yaml"
3
3
 
4
+ #
5
+ # ダウンロードステータスファイルクラス
4
6
  class StatusFile
5
- attr_accessor :baseurl, :fname, :fpath, :last_datetime, :last_contents_path, :path
7
+ # @return [String] ダウンロード先ホストのURL
8
+ attr_accessor :baseurl
9
+ # @return [String] ダウンロードヘッダ一覧ファイル名
10
+ attr_accessor :fname
11
+ # @return [String] ダウンロードヘッダ一覧ファイルへのパス
12
+ attr_accessor :fpath
13
+ # @return [String] ダウンロード開始日時
14
+ attr_accessor :last_datetime
15
+ # ダウンロード保存先ディレクトリへのパス
16
+ attr_accessor :last_contents_path
6
17
 
7
- def initialize(path, baseurl, mes)
18
+ #
19
+ # 初期化
20
+ #
21
+ # @param path [String] ダウンロードステータスファイルへのパス
22
+ # @param baseurl [String] ダウンロード先ホストのURL
23
+ # @param mes [Messagex] Messagexクラスのインスタンス
24
+ def initialize(path, absolutepath_root, baseurl, mes)
8
25
  @path = path
26
+ @absolutepath_root_pn = Pathname.new(absolutepath_root)
27
+
9
28
  @baseurl = baseurl
10
29
  @mes = mes
11
30
 
@@ -18,9 +37,12 @@ module Md2site
18
37
  obj = Filex::Filex.load_yaml(content, @mes)
19
38
  @baseurl = obj[:baseurl]
20
39
  @fname = obj[:fname]
21
- @fpath = obj[:path]
40
+ @fpath = obj[:fpath]
41
+ @absolutepath_fpath_pn = Pathname.new(get_absolute_path(@fpath))
22
42
  @last_datetime = obj[:last_datetime]
43
+
23
44
  @last_contents_path = obj[:last_contents_path]
45
+ @absolutepath_last_contents_path_pn = Pathname.new(get_absolute_path(@last_contents_path))
24
46
  else
25
47
  @baseurl = @baseurl
26
48
  @fname = nil
@@ -30,6 +52,12 @@ module Md2site
30
52
  end
31
53
  end
32
54
 
55
+ #
56
+ # ダウンロードステータスファイル出力
57
+ #
58
+ # @param path [String] ダウンロードステータスファイルへのパス
59
+ # @param content [String] ダウンロードステータスファイルの内容
60
+ # @return [void]
33
61
  def output(path, content)
34
62
  File.open(path, "w") do |ofile|
35
63
  ofile.puts(content)
@@ -37,8 +65,26 @@ module Md2site
37
65
  end
38
66
  end
39
67
 
68
+ #
69
+ # ダウンロードステータスファイル更新
70
+ #
71
+ # @return [void]
72
+ # @note YAML形式に変換できなければダウンロードステータスファイルを更新しない
40
73
  def update
41
- hs = { baseurl: @baseurl, fname: @fname, path: @fpath, last_datetime: @last_datetime, last_contents_path: @last_contents_path }
74
+ if @fpath
75
+ @absolutepath_fpath_pn = Pathname.new(get_absolute_path(@fpath))
76
+ @fpath = @absolutepath_fpath_pn.relative_path_from(@absolutepath_root_pn).to_s
77
+ else
78
+ @fpath = ""
79
+ end
80
+
81
+ if @last_contents_path
82
+ @absolutepath_last_contents_path_pn = Pathname.new(get_absolute_path(@last_contents_path))
83
+ @last_contents_path = @absolutepath_last_contents_path_pn.relative_path_from(@absolutepath_root_pn).to_s
84
+ else
85
+ @last_contents_path = ""
86
+ end
87
+ hs = { baseurl: @baseurl, fname: @fname, fpath: @fpath, last_datetime: @last_datetime, last_contents_path: @last_contents_path }
42
88
  begin
43
89
  content = YAML.dump(hs)
44
90
  rescue Error => e
@@ -51,6 +97,12 @@ module Md2site
51
97
  @mes.exc_file_write(@path) { output(@path, content) }
52
98
  end
53
99
 
100
+ #
101
+ # ダウンロードステータスファイルの内容の取得
102
+ #
103
+ # @param path [String] ダウンロードステータスファイルへのパス
104
+ # @return [String] ダウンロードステータスファイルの内容
105
+ # @note 引数pathがnilであれば例外発生
54
106
  def get_statusfile(path)
55
107
  unless path
56
108
  raise
@@ -63,13 +115,53 @@ module Md2site
63
115
  content
64
116
  end
65
117
 
66
- def pint
118
+ #
119
+ # ダウンロードステータスファイルの内容の出力(デバッグ用)
120
+ #
121
+ # @return [void]
122
+ def print
67
123
  @mes.output_info("baseurl=#{@baseurl}")
68
124
  @mes.output_info("fname=#{@fname}")
69
125
  @mes.output_info("fpath=#{@fpath}")
70
126
  @mes.output_info("last_datetime=#{@last_datetime}")
71
127
  @mes.output_info("last_contents_path=#{@last_contents_path}")
72
- @mes.output_info("path=#{@path}")
128
+ end
129
+
130
+ private
131
+
132
+ #
133
+ # プロジェクトのルートディレクトリに対する相対パス
134
+ #
135
+ # @param path [String] 相対パスにしたいパス
136
+ # @return [String] プロジェクトのルートディレクトリに対する相対パス
137
+ def get_relative_path(path)
138
+ if path
139
+ to_path_pn = Pathname.new(path)
140
+ unless to_path_pn.absolute?
141
+ to_path_pn = to_path_pn.expand_path
142
+ end
143
+ else
144
+ to_path_pn = Pathname.new("")
145
+ end
146
+ to_path_pn.relative_path_from(@absolutepath_fpath_pn).to_s
147
+ end
148
+
149
+ #
150
+ # プロジェクトのルートディレクトリと相対パスを合わせた絶対パスを得る
151
+ #
152
+ # @param path [String] 相対パス
153
+ # @return [String] プロジェクトのルートディレクトリと相対パスを合わせた絶対パスを得る
154
+ def get_absolute_path(path)
155
+ if path
156
+ path_pn = Pathname.new(path)
157
+ if path_pn.absolute?
158
+ path_pn.to_s
159
+ else
160
+ (@absolutepath_root_pn + path_pn).to_s
161
+ end
162
+ else
163
+ ""
164
+ end
73
165
  end
74
166
  end
75
167
  end
@@ -1,5 +1,14 @@
1
1
  module Md2site
2
+ #
3
+ # テストデータクラス
2
4
  class Testdata
5
+ #
6
+ # 初期化
7
+ #
8
+ # @param src_data_dir [String] テストデータのコピー元ディレクトリ
9
+ # @param templatedir [String] テストデータのテンプレートディレクトリ
10
+ # @param hash [Hash] 修正対象ハッシュ
11
+ # @param num [Integer]
3
12
  def initialize(src_data_dir, templatedir, hash, num=1)
4
13
  @hash = hash
5
14
  @src_data_dir = src_data_dir
@@ -9,20 +18,29 @@ module Md2site
9
18
  require_htmlutils(num) unless defined?(HTMLUtils)
10
19
  end
11
20
 
21
+ #
22
+ # URLに応じてハッシュの内容を修正する
23
+ #
24
+ # @param hash [Hash] 修正対象ハッシュ
25
+ # @return [void]
12
26
  def check_additional_conf(hash)
13
27
  url = hash["url"]
14
28
  hash["functions_variable"] ||= ""
15
- hash["functions_static"] ||= %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{File.join(@src_data_dir, %q(/template/functions_variable.erb))})
29
+ hash["functions_static"] ||= %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{%q(${ABSOLUTE_PATH_ROOT_TEMPLATE}/functions_variable.erb)})
16
30
  hash["contentDivisionWay"] ||= ""
17
31
 
18
32
  case url
19
33
  when /www\.toppers\.jp/
20
34
  hash["contentDivisionWay"] = "CONTENT_DIVISION_WAY=0"
21
- hash["functions_variable"] = %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{File.join(@src_data_dir, %q(/template/functions_variable.erb))})
22
- hash["functions_static"] = %Q(ROOT_TEMPLATE_FUNCTIONS_STATIC=#{File.join(@src_data_dir, %q(/template/functions_static.erb))})
35
+ hash["functions_variable"] = %Q(ROOT_TEMPLATE_FUNCTIONS_VARIABLE=#{%q(${ABSOLUTE_PATH_ROOT_TEMPLATE}/functions_variable.erb)})
36
+ hash["functions_static"] = %Q(ROOT_TEMPLATE_FUNCTIONS_STATIC=#{%q(${ABSOLUTE_PATH_ROOT_TEMPLATE}/functions_static.erb)})
23
37
  end
24
38
  end
25
39
 
40
+ #
41
+ # URLに応じたテンプレートディレクトリを得る
42
+ #
43
+ # @return [Array<String>] URLに応じたテンプレートディレクトリの配列
26
44
  def template_dir_array
27
45
  array = [@templatedir]
28
46
 
@@ -34,6 +52,28 @@ module Md2site
34
52
  array
35
53
  end
36
54
 
55
+ #
56
+ # URLに応じたテストデータディレクトリを得る
57
+ #
58
+ # @return [Array<String>] URLに応じたテストデータディレクトリの配列
59
+ def testdata_dir_array
60
+ array = []
61
+
62
+ case @hash["url"]
63
+ when /www\.toppers\.jp/
64
+ array << TESTDATA_DIR_TOPPERS
65
+ when /northern-cross\.info/
66
+ array << TESTDATA_DIR_TOPPERS
67
+ end
68
+
69
+ array
70
+ end
71
+
72
+ #
73
+ # 適切なHTMLファイル分割クラスの読み込み
74
+ #
75
+ # @param num [Integer]
76
+ # @return [Array<String>] URLに応じた適切なHTMLファイル分割クラスの読み込み
37
77
  def require_htmlutils(num=1)
38
78
  if @content_division
39
79
  num = @content_division.to_i
data/lib/md2site/testx.rb CHANGED
@@ -1,5 +1,15 @@
1
1
  module Md2site
2
+ #
3
+ # 全サブコマンド実行クラス
2
4
  class Testx
5
+ #
6
+ # 初期化
7
+ #
8
+ # @param option [Hash] オプション
9
+ # @param mes [Messagex] Messagexクラスのインスタンス
10
+ # @param verbose [Boolean] FileUtilsクラスのメソッドのverbose引数に与える値
11
+ # @param src_data_dir [String] テストデータコピー元
12
+ # @param opt_struct [Struct] オプションストラクト
3
13
  def initialize(option, mes, verbose, src_data_dir, opt_struct)
4
14
  @option = option
5
15
  @mes = mes
@@ -8,6 +18,11 @@ module Md2site
8
18
  @opt_struct = opt_struct
9
19
  end
10
20
 
21
+ #
22
+ # initサブコマンド実行
23
+ #
24
+ # @param option_url [Struct] オプションURL
25
+ # @return [void]
11
26
  def execute_subcommand_init(option_url)
12
27
  case option_url.value
13
28
  when /northern\-cross\.info/
@@ -21,6 +36,10 @@ module Md2site
21
36
  end
22
37
  end
23
38
 
39
+ #
40
+ # initサブコマンドAパターン実行
41
+ #
42
+ # @return [void]
24
43
  def init_a(option_url, tsv_filepath, test_data_dir_path)
25
44
  root_path = @option.value
26
45
  optionx = @opt_struct.new("init", root_path)
@@ -28,7 +47,7 @@ module Md2site
28
47
  init.execute_subcommand(optionx, option_url)
29
48
 
30
49
  conf_dir = File.join(root_path, init.hs["conf_dir"])
31
- conf_path = File.join(conf_dir, init.confFile)
50
+ conf_path = File.join(conf_dir, init.conf_file)
32
51
  dir = File.dirname(root_path)
33
52
  base = File.basename(root_path)
34
53
  content_path = File.join(dir, %Q(#{base}-contents))
@@ -44,12 +63,20 @@ module Md2site
44
63
  [conf_path, content_path]
45
64
  end
46
65
 
66
+ #
67
+ # initサブコマンドBパターン実行
68
+ #
69
+ # @return [void]
47
70
  def init_b(option, option_url)
48
71
  @mes.output_warn(%Q(option=#{option.value}))
49
72
  @mes.output_warn(%Q(optionUrl=#{option_url.value}))
50
73
  exit(@mes.ec("EXIT_CODE_NORMAL_EXIT"))
51
74
  end
52
75
 
76
+ #
77
+ # initサブコマンド以外のサブコマンド実行
78
+ #
79
+ # @return [void]
53
80
  def execute_subcommand_remain(env, content_path, str_variable, str_static, obj_by_yaml)
54
81
  setup = Setup.new(env, @mes)
55
82
  optionx = @opt_struct.new("zcontents", content_path)
@@ -1,3 +1,3 @@
1
1
  module Md2site
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/md2site.rb CHANGED
@@ -1,36 +1,70 @@
1
1
  require "md2site/version"
2
2
 
3
+ #
4
+ # Markdown形式ファイルによるサイト作成
3
5
  module Md2site
6
+ # 構成ファイル名
4
7
  CONF_FILE = "conf.sh"
8
+ # 構成ディレクトリ名
5
9
  CONF_DIR = "conf"
10
+ # テンプレートディレクトリ名
6
11
  TEMPLATE_DIR = "template"
12
+ # 出力ディレクトリ名
7
13
  OUTPUT_DIR = "output"
14
+ # ソースディレクトリ名
8
15
  SRC_DIR = "src"
16
+ # データディレクトリ名
9
17
  DATA_DIR = "data"
18
+ # ワークディレクトリ名
10
19
  WORK_DIR = "work"
20
+ # 素材ディレクトリ名
11
21
  MATERIAL_DIR = "material"
22
+ # ダウンロードステータスファイル
12
23
  STATUS_FILE = "status.txt"
24
+ # サイト構成ファイル
13
25
  SITE_FILE = "site.tsv"
26
+ # サイト固有設定ファイル
14
27
  SETTING_FILE = "setting.yml"
28
+ # カテゴリ構成ファイルプレフィックス
15
29
  CATEGORY_CONF_PREFIX = "conf-"
30
+ # デフォルトテーブルテンプレートファイル名
16
31
  DEFAULT_TABLE_TEMPLATE_FILE = "5col_no_attr_b.erb"
32
+ # デフォルトURL設定
17
33
  DEFAULT_URL_SETTING = %Q(# URL=http://example.com)
18
- KEY_ABSOLUTE_PATH_ROOT = "absolutePathRoot"
34
+ # urlを示すハッシュのキー
19
35
  KEY_URL = "url"
36
+ # カテゴリ構成ファイル中のINCLUDE指示子
20
37
  INCLUDE_INDICATOR = ":include"
38
+ # infoサブコマンドのzindexオプションで生成されるHTMLファイル名
21
39
  ZINDEX_HTML_FILE = "zindex.html"
40
+ # 全てのターゲットを示すターゲットコマンド名
22
41
  TARGET_COMMAND_OF_ALL = "_z"
42
+ # サブターゲットを全ての示すサブターゲットコマンド名
23
43
  SUB_TARGET_COMMAND_OF_ALL = "_z"
44
+ # ダウンロードファイル一覧ファイル名
24
45
  LIST_FILE = "filelist.tsv"
46
+ # ダウンロードファイル一覧ファイルのファイル名フィールドのフィールド名
25
47
  FIELD_FILENMAE = "filename"
48
+ # ダウンロードファイル一覧ファイルの日時フィールドのフィールド名
26
49
  FIELD_DATETIMESTR = "datetimestr"
50
+ # ダウンロードファイル一覧ファイルのUNIXタイムフィールドのフィールド名
27
51
  FIELD_UNIXTIME = "unixtime"
52
+ # ダウンロードファイル一覧ファイルのMD5値フィールドのフィールド名
28
53
  FIELD_MD5 = "md5"
54
+ # テストデータディレクトリ下の第2テンプレート用のサブディレクトリ名
29
55
  TEMPLATE_DIR2 = "template2"
56
+ # テストデータディレクトリ下のtoppersサイト用ディレクトリ
57
+ TESTDATA_DIR_TOPPERS = "testdata0/conf"
58
+ # テストデータディレクトリ下のnciサイト用ディレクトリ
59
+ TESTDATA_DIR_NCI = "testdata/conf"
30
60
 
61
+ #
62
+ # Md2siteモジュール内でのエラークラス
31
63
  class Error < StandardError; end
32
64
  # Your code goes here...
33
65
 
66
+ #
67
+ # Markdown形式ファイルによるサイト作成クラス
34
68
  class Md2site
35
69
  require "mdextab"
36
70
  require "messagex"
@@ -38,6 +72,7 @@ module Md2site
38
72
  require "open3"
39
73
  require "tempfile"
40
74
  require "md2site/env"
75
+ require "md2site/envcheck"
41
76
  require "md2site/init"
42
77
  require "md2site/testdata"
43
78
  require "md2site/setup"
@@ -45,8 +80,13 @@ module Md2site
45
80
  require "md2site/make"
46
81
  require "md2site/testx"
47
82
 
48
- attr_accessor :option, :optionUrl, :mes, :verbose, :srcDataDir, :optStruct
49
-
83
+ #
84
+ # 初期化
85
+ #
86
+ # @param opts [Hash] オプション
87
+ # @option opts [Boolean] :debug nilでなければMessagexクラスのインスタンスに与えるデバッグモードであり、かつFileUtilsクラスのインスタンスメソッドに与える:verboseオプションの値を真にする
88
+ # @option opts [Boolean] :verbose nilでなければMessagexクラスのインスタンスに与えるデバッグモードであり、、かつFileUtilsクラスのインスタンスメソッドに与える:verboseオプションの値を真にする
89
+ # @option opts [String] :logfile Messagexクラスのインスタンスに与えるLoggerの出力先ファイル名
50
90
  def initialize(opts)
51
91
  @src_data_dir = File.expand_path(File.dirname(__FILE__) + %q(/../data))
52
92
 
@@ -56,10 +96,10 @@ module Md2site
56
96
  @setup = nil
57
97
  @info = nil
58
98
 
59
- if opts["debug"]
99
+ if opts[:debug]
60
100
  @debug = :debug
61
101
  @verbose = true
62
- elsif opts["verbose"]
102
+ elsif opts[:verbose]
63
103
  @debug = :verbose
64
104
  @verbose = true
65
105
  else
@@ -67,7 +107,7 @@ module Md2site
67
107
  @verbose = false
68
108
  end
69
109
 
70
- @mes = Messagex::Messagex.new("EXIT_CODE_NORMAL_EXIT", 0, @debug, nil, opts["logfile"])
110
+ @mes = Messagex::Messagex.new("EXIT_CODE_NORMAL_EXIT", 0, @debug, nil, opts[:logfile])
71
111
  @mes.register_exc
72
112
  @mes.add_exitcode("EXIT_CODE_BY_CANNOT_FIND_TARGET")
73
113
  @mes.add_exitcode("EXIT_CODE_BY_CANNOT_FIND_SUBTARGET")
@@ -82,51 +122,77 @@ module Md2site
82
122
  option_parse(opts)
83
123
  end
84
124
 
125
+ #
126
+ # オプション解析
127
+ #
128
+ # @param opts [Hash] オプション
129
+ # @option opts [String,nil] :targetCommand nilでなければターゲットコマンド名
130
+ # @option opts [String,nil] :subTargetCommand nilでなければサブターゲットコマンド名
131
+ # @option opts [String,nil] :zcontents nilでなければダウンロード先ディレクトリ名
132
+ # @option opts [String,nil] :contentUpdate nilでなければアップデート元ディレクトリ名
133
+ # @option opts [String,nil] :getfiles nilでなければダウンロード先ディレクトリ名
134
+ # @option opts [true,nil] :zlist nilでなければinfoサブコマンドのzlistオプションが有効
135
+ # @option opts [true,nil] :zindex nilでなければinfoサブコマンドのzindexオプションが有効
136
+ # @option opts [true,nil] :contentUpdate nilでなければsetupサブコマンドのzupdateオプションが有効
137
+ # @option opts [String,nil] :init nilでなければプロジェクトルートディレクトリ
138
+ # @option opts [String,nil] :url nilでなければダウンロード対象URL
139
+ # @option opts [String] :confPath 構成ファイルパス
140
+ # @return [void]
85
141
  def option_parse(opts)
86
- @target_command = opts["targetCommand"]
87
- @subtarget_command = opts["subTargetCommand"]
88
- if opts["all"]
89
- @option = @opt_struct.new("all", opts["all"])
90
- elsif opts["zcontents"]
91
- @option = @opt_struct.new("zcontents", opts["zcontents"])
92
- elsif opts["contentUpdate"]
142
+ @target_command = opts[:targetCommand]
143
+ @subtarget_command = opts[:subTargetCommand]
144
+ if opts[:zcontents]
145
+ @option = @opt_struct.new("zcontents", opts[:zcontents])
146
+ elsif opts[:contentUpdate]
93
147
  @option = @opt_struct.new("contentUpdate")
94
- elsif opts["getfiles"]
95
- @option = @opt_struct.new("getfiles", opts["getfiles"])
96
- elsif opts["zlist"]
148
+ elsif opts[:getfiles]
149
+ @option = @opt_struct.new("getfiles", opts[:getfiles])
150
+ elsif opts[:zlist]
97
151
  @option = @opt_struct.new("zlist")
98
- elsif opts["zindex"]
152
+ elsif opts[:zindex]
99
153
  @option = @opt_struct.new("zindex")
100
- elsif opts["zsetup"]
101
- @option = @opt_struct.new("zsetup", opts["zsetup"])
102
- elsif opts["init"]
103
- @option = @opt_struct.new("init", opts["init"])
154
+ elsif opts[:zsetup]
155
+ @option = @opt_struct.new("zsetup", opts[:zsetup])
156
+ elsif opts[:init]
157
+ @option = @opt_struct.new("init", opts[:init])
104
158
  end
105
159
 
106
160
  @option_url = nil
107
- if opts["url"]
108
- @option_url = @opt_struct.new("url", opts["url"])
161
+ if opts[:url]
162
+ @option_url = @opt_struct.new("url", opts[:url])
109
163
  end
110
- @option_conf_path = @opt_struct.new("confPath", opts["confPath"])
164
+
165
+ @option_conf_path = @opt_struct.new("confPath", opts[:confPath])
111
166
  end
112
167
 
168
+ #
169
+ # 構成ファイル、サイト固有設定ファイルで初期化
170
+ #
171
+ # @param conf_path [String] 構成ファイルパス
172
+ # @param src_data_dir [String] インストール先データディレクトリ名
113
173
  def setup_env(conf_path, src_data_dir)
114
174
  unless File.exist?(conf_path)
115
175
  @mes.output_fatal("Can't find #{conf_path} specified by -c or --confpath option")
116
176
  exit(@mes.ec("EXIT_CODE_CANNOT_FIND_CONFPATH"))
117
177
  end
118
178
 
179
+ # 構成ファイル読み込みEnvクラスのインスタンスの属性としてアクセス可能にする
119
180
  @env = Env.new(conf_path, @mes, @verbose)
120
181
 
182
+ # サイト固有設定ファイル(YAML形式ファイル)を読み込み、Rubyのハッシュとしてアクセス可能にする
121
183
  @obj_by_yaml = Filex::Filex.check_and_load_yamlfile(@env.absolutepath_root_settingfile, @mes)
122
184
 
123
- Testdata.new(src_data_dir, @init.templateDir, @env.conf_hs)
185
+ # Testdata.new(src_data_dir, @init.template_dir, @env.conf_hs)
124
186
  fname_variable = @env.conf_hs["ROOT_TEMPLATE_FUNCTIONS_VARIABLE"]
125
187
  @str_variable = Filex::Filex.check_and_load_file(fname_variable, @mes) if fname_variable
126
188
  fname_static = @env.conf_hs["ROOT_TEMPLATE_FUNCTIONS_STATIC"]
127
189
  @str_static = ["<% ", Filex::Filex.check_and_expand_file(fname_static, @obj_by_yaml, @mes), "%>"].join("\n") if fname_static
128
190
  end
129
191
 
192
+ #
193
+ # サブコマンド実行
194
+ #
195
+ # @param cmd [String] サブコマンド名
130
196
  def execute_command(cmd)
131
197
  @init ||= Init.new(@src_data_dir, @mes, @verbose)
132
198
 
@@ -136,6 +202,7 @@ module Md2site
136
202
  @testx ||= Testx.new(@option, @mes, @verbose, @src_data_dir, @opt_struct)
137
203
  conf_path, content_path = testx.execute_subcommandInit(@option_url)
138
204
  setup_env(conf_path, @src_data_dir)
205
+
139
206
  @testx.execute_subcommandRemain(@env, content_path, @str_variable, @str_static, @obj_by_yaml)
140
207
  else
141
208
  setup_env(@option_conf_path.value, @src_data_dir) unless @env
@@ -144,7 +211,7 @@ module Md2site
144
211
  when "make"
145
212
  @make ||= Make.new(@env, @mes, @verbose, @str_variable, @str_static, @obj_by_yaml)
146
213
  if @target_command == "_z"
147
- @env.commands.map {|x| @make.do_multiple_commands(x[0]) }
214
+ @env.commands.keys.map {|x| @make.do_multiple_commands(x) }
148
215
  else
149
216
  @make.execute_subcommand(@target_command, @subtarget_command)
150
217
  end
data/md2site.gemspec CHANGED
@@ -36,24 +36,23 @@ Gem::Specification.new do |spec|
36
36
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
37
  spec.require_paths = ["lib"]
38
38
 
39
- spec.add_runtime_dependency "bundler", "~> 2.0"
40
39
 
41
- spec.add_development_dependency "bundler", "~> 2.0"
42
40
  spec.add_development_dependency "rake", "~> 10.0"
43
41
  spec.add_development_dependency "rspec", "~> 3.0"
44
42
  spec.add_development_dependency "byebug"
45
- spec.add_development_dependency "power_assert", "~> 1.1.4"
46
43
  spec.add_development_dependency "test-unit"
47
44
  spec.add_development_dependency "test-unit-rr"
48
- spec.add_development_dependency "rubocop"
45
+ spec.add_development_dependency "rubocop", "0.69.0"
49
46
  spec.add_development_dependency "rubocop-performance"
47
+ spec.add_development_dependency "power_assert", "~> 1.1.5"
50
48
 
49
+ spec.add_runtime_dependency "bundler", "~> 2.0"
51
50
  spec.add_runtime_dependency "simpleoptparse"
52
51
  spec.add_runtime_dependency "erubis"
53
52
  spec.add_runtime_dependency "mdextab", "~> 0.1.4"
54
53
  spec.add_runtime_dependency "nokogiri"
55
- spec.add_runtime_dependency "messagex"
56
- spec.add_runtime_dependency "filex"
54
+ spec.add_runtime_dependency "messagex", "~> 0.1.3"
55
+ spec.add_runtime_dependency "filex", "~> 0.1.3"
57
56
  spec.add_runtime_dependency "faraday"
58
57
  spec.add_runtime_dependency "faraday_middleware"
59
58
  end