lib/arxutils_sqlite3/migrate.rb in arxutils_sqlite3-0.1.44 vs lib/arxutils_sqlite3/migrate.rb in arxutils_sqlite3-0.1.45
- old
+ new
@@ -8,47 +8,46 @@
# ActiveRecord用ユーティリティモジュール
module Arxutils_Sqlite3
##
# migrateに必要なファイルをテンプレートから作成し、migarteを実行する
-class Migrate
+ class Migrate
attr_reader :migrate_dir
# migrate用スクリプトファイル名の先頭の番号の間隔
FILENAME_COUNTER_STEP = 10
# DB接続までの初期化を行うDbinitクラスのインスタンス
#attr_reader :dbinit
# migrate用のスクリプトの生成、migrateの実行を行うmigratexの生成
def initialize(
+ config,
dbconfig_dest_path,
dbconfig_src_fname,
- migrate_dir,
- db_dir,
db_scheme_ary,
- relation,
- opts)
+ relation_config
+ )
# DB格納ディレクトリ名
- @db_dir = db_dir
+ @db_dir = config.get_db_dir
# DB構成ファイルの出力先ディレクトリ
- @dest_config_dir = Arxutils_Sqlite3::Dbutil::CONFIG_DIR
+ @dest_config_dir = config.get_config_dir
# 生成するDB構成情報ファイルパス
@dbconfig_dest_path = dbconfig_dest_path
# 参照用DB構成情報ファイル名
@dbconfig_src_fname = dbconfig_src_fname
# migrate用スクリプトの出力先ディレクトリ名
- @migrate_dir = migrate_dir
+ @migrate_dir = config.get_migrate_dir
# テンプレートファイル格納ディレクトリ名
- @src_path = Arxutils_Sqlite3::TEMPLATE_RELATION_DIR
+ @src_path = config.get_template_relation_dir
+ #@src_path = Arxutils_Sqlite3::TEMPLATE_RELATION_DIR
# 構成ファイル格納ディレクトリ
- @src_config_path = Arxutils_Sqlite3::TEMPLATE_CONFIG_DIR
+ @src_config_path = config.get_template_config_dir
+# @src_config_path = Arxutils_Sqlite3::TEMPLATE_CONFIG_DIR
# データベーススキーマ定義配列
@db_scheme_ary = db_scheme_ary
# リレーション指定
- @relation = relation
- # オプション指定
- @opts = opts
+ @relation_config = relation_config
FileUtils.mkdir_p(@db_dir) if @db_dir
FileUtils.mkdir_p(@migrate_dir) if @migrate_dir
FileUtils.mkdir_p(@dest_config_dir)
end
@@ -61,12 +60,12 @@
# puts x
FileUtils.rm(x) if File.file?(x)
end
end
- # マイグレーション用スクリプトの生成、relationのクラス定義ファイルの生成、migrate実行
- def process
+ # マイグレーション用スクリプトの生成、relationのクラス定義ファイルの生成
+ def output
# migrationのスクリプトをファイル出力する
output_all_script
# relationを表すクラス定義のファイルの内容を生成
content_array = make_content_array
@@ -88,11 +87,11 @@
count_content = convert_count_class_relation(data_count, "relation_count.tmpl")
ary.unshift(count_content)
content_array = ary
end
# relationのスクリプトを作成
- output_relation_script(content_array, @relation)
+ output_relation_script(content_array, @relation_config)
end
# migrationのスクリプトをファイル出力する
def output_all_script
# スキーマ設定配列から、migrate用のスクリプトを作成する
@@ -182,22 +181,20 @@
f.puts(content)
end
end
# relationのスクリプトをファイル出力する
- def output_relation_script(content_array, opts)
- # pp "=="
- # pp opts
- dir = opts[:dir]
- fname = opts[:filename]
+ def output_relation_script(content_array, relation_config)
+ dir = relation_config[:dir]
+ fname = relation_config[:filename]
fpath = File.join(dir, fname)
File.open(fpath, "w") do |file|
- opts[:module].map { |mod| file.puts("module #{mod}") }
+ relation_config[:module].map { |mod| file.puts("module #{mod}") }
content_array.map do |x|
file.puts x
file.puts ""
end
- opts[:module].map { |_mod| file.puts("end") }
+ relation_config[:module].map { |_mod| file.puts("end") }
end
end
end
end