lib/arxutils_sqlite3/migrate.rb in arxutils_sqlite3-0.1.48 vs lib/arxutils_sqlite3/migrate.rb in arxutils_sqlite3-0.1.49

- old
+ new

@@ -21,33 +21,32 @@ def initialize( config, dbconfig_dest_path, dbconfig_src_fname, db_scheme_ary, - relation_config + acrecord_config, + migrate_dir ) # DB格納ディレクトリ名 @db_dir = config.get_db_dir # DB構成ファイルの出力先ディレクトリ @dest_config_dir = config.get_config_dir # 生成するDB構成情報ファイルパス @dbconfig_dest_path = dbconfig_dest_path # 参照用DB構成情報ファイル名 @dbconfig_src_fname = dbconfig_src_fname - # migrate用スクリプトの出力先ディレクトリ名 - @migrate_dir = config.get_migrate_dir # テンプレートファイル格納ディレクトリ名 - @src_path = config.get_template_relation_dir - #@src_path = Arxutils_Sqlite3::TEMPLATE_RELATION_DIR + @src_path = config.get_template_acrecord_dir # 構成ファイル格納ディレクトリ @src_config_path = config.get_template_config_dir # @src_config_path = Arxutils_Sqlite3::TEMPLATE_CONFIG_DIR # データベーススキーマ定義配列 @db_scheme_ary = db_scheme_ary # リレーション指定 - @relation_config = relation_config + @acrecord_config = acrecord_config + @migrate_dir = migrate_dir FileUtils.mkdir_p(@db_dir) if @db_dir FileUtils.mkdir_p(@migrate_dir) if @migrate_dir FileUtils.mkdir_p(@dest_config_dir) end @@ -87,38 +86,38 @@ # puts x FileUtils.rm(x) if File.file?(x) end end - # マイグレーション用スクリプトの生成、relationのクラス定義ファイルの生成 + # マイグレーション用スクリプトの生成、acrecordのクラス定義ファイルの生成 def output # migrationのスクリプトをファイル出力する output_all_script - # relationを表すクラス定義のファイルの内容を生成 + # acrecordを表すクラス定義のファイルの内容を生成 content_array = make_content_array # p "content_array=#{content_array}" # 複数形のクラス名を集める count_class_plurals = content_array.reject do |x| x[:need_count_class_plural].nil? end need_count_class_plural = count_class_plurals.map { |x| x[:need_count_class_plural] } - # relationのmigrateが必要であれば、それをテンプレートファイルから作成して、スクリプトの内容として追加する + # acrecordのmigrateが必要であれば、それをテンプレートファイルから作成して、スクリプトの内容として追加する if content_array.find { |x| !x.nil? } # p "####### 1" data_count = { count_classname: "Count", need_count_class_plural: need_count_class_plural } # p "data_count=#{data_count}" ary = content_array.collect { |x| x[:content] }.flatten - count_content = convert_count_class_relation(data_count, "relation_count.tmpl") + count_content = convert_count_class_acrecord(data_count, "acrecord_count.tmpl") ary.unshift(count_content) content_array = ary end - # relationのスクリプトを作成 - output_relation_script(content_array, @relation_config) + # acrecordのスクリプトを作成 + output_acrecord_script(content_array, @acrecord_config) end # migrationのスクリプトをファイル出力する def output_all_script # スキーマ設定配列から、migrate用のスクリプトを作成する @@ -126,21 +125,21 @@ idy = (index + 1) * FILENAME_COUNTER_STEP output_script(idy, *data) end end - # relationを表すクラス定義のファイルの内容を生成 + # acrecordを表すクラス定義のファイルの内容を生成 def make_content_array - # スキーマ設定配列から、relationのmigrate用のスクリプトの内容(ハッシュ形式)の配列を作成する - relations = @db_scheme_ary.map do |x| - make_relation(x, "count") + # スキーマ設定配列から、acrecordのmigrate用のスクリプトの内容(ハッシュ形式)の配列を作成する + acrecords = @db_scheme_ary.map do |x| + make_acrecord(x, "count") end - relations.select { |x| x.size.positive? } + acrecords.select { |x| x.size.positive? } end - # Countクラス用のrelationのスクリプトの内容に変換 - def convert_count_class_relation(data, src_fname) + # Countクラス用のacrecordのスクリプトの内容に変換 + def convert_count_class_acrecord(data, src_fname) convert(data, @src_path, src_fname) end # テンプレートファイルからスクリプトの内容に変換 def convert(data, src_dir, src_fname) @@ -156,27 +155,27 @@ @dbconfig_dest_path, "w:utf-8") do |f| f.puts(content) end end - # 英子文字で表現したクラス名が、countを表していなければ、relationを + # 英子文字で表現したクラス名が、countを表していなければ、acrecordを # 英子文字で表現したクラス名が、countを表していれが、空のハッシュを返す - # スキーマでbase, noitem以外のフィールドが指定されていれば、そのフィールドに対するrelationの設定の内容を返す - def make_relation(data, count_classname_downcase) + # スキーマでbase, noitem以外のフィールドが指定されていれば、そのフィールドに対するacrecordの設定の内容を返す + def make_acrecord(data, count_classname_downcase) if data[:classname_downcase] == count_classname_downcase {} else - # 指定フィールドのフィールド名に対応したテンプレートファイルを用いて、relation設定を作成 + # 指定フィールドのフィールド名に対応したテンプレートファイルを用いて、acrecord設定を作成 data[:flist].each_with_object({ content: [], need_count_class: nil }) do |field_name, s| case field_name when "base", "noitem" - name_base = "relation" - # data[:relation]がnilに設定されていたら改めて空の配列を設定 - data[:relation] = [] unless data[:relation] + name_base = "acrecord" + # data[:acrecord]がnilに設定されていたら改めて空の配列を設定 + data[:acrecord] = [] unless data[:acrecord] else data[:count_classname_downcase] = count_classname_downcase - name_base = "relation_#{field_name}" + name_base = "acrecord_#{field_name}" s[:need_count_class_plural] ||= data[:plural] end # テンプレートファイルからスクリプトの内容を作成 content = convert(data, @src_path, "#{name_base}.tmpl") s[:content] << content @@ -207,21 +206,21 @@ File.open(fname, "w", **{ encoding: Encoding::UTF_8 }) do |f| f.puts(content) end end - # relationのスクリプトをファイル出力する - def output_relation_script(content_array, relation_config) - dir = relation_config[:dir] - fname = relation_config[:filename] + # acrecordのスクリプトをファイル出力する + def output_acrecord_script(content_array, acrecord_config) + dir = acrecord_config[:dir] + fname = acrecord_config[:filename] fpath = File.join(dir, fname) File.open(fpath, "w") do |file| - relation_config[:module].map { |mod| file.puts("module #{mod}") } + acrecord_config[:module].map { |mod| file.puts("module #{mod}") } content_array.map do |x| file.puts x file.puts "" end - relation_config[:module].map { |_mod| file.puts("end") } + acrecord_config[:module].map { |_mod| file.puts("end") } end end end end