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