Class: Arxutils_Sqlite3::Config
- Inherits:
-
Object
- Object
- Arxutils_Sqlite3::Config
- Defined in:
- lib/arxutils_sqlite3/config.rb
Overview
migrateに必要なファイルをテンプレートから作成し、migarteを実行する
Constant Summary collapse
- DB_DIR =
DB格納ディレクトリ名
"db"
- MIGRATE_BASE_DIR =
migrate用スクリプト格納ディレクトリ名
"migrate"
- DBCONFIG_SQLITE3 =
SQLITE3用DB構成名
"sqlite3"
- DBCONFIG_MYSQL =
MYSQL用DB構成名
"mysql"
- CONFIG_DIR_NAME =
DB構成格納用ディレクトリ名
"config"
- CONFIG_DIR =
コンフィグディレクトリへのパス
Pathname.new(CONFIG_DIR_NAME)
- DATABASELOG =
データベース用ログファイル名
"database.log"
- TEMPLATE_DIR =
テンプレートディレクトリへのパス
Arxutils_Sqlite3::TOP_DIR.join("template")
- TEMPLATE_ACRECORD_DIR =
リレーションテンプレートディレクトリへのパス
TEMPLATE_DIR.join("acrecord")
- TEMPLATE_CONFIG_DIR =
TEMPLATE_DIR.join(CONFIG_DIR)
- DB_SCHEME_DIR =
TEMPLATE_ACRECORD_DIR.join("db_scheme")
- DB_SCHEME_FILE =
DB_SCHEME_DIR.join("db_scheme.yml")
- SAMPLE_DB_SCHEME_FILE =
CONFIG_DIR.join("db_scheme.yml.sample")
- DB_SCHEME_FILE_NAME =
"db_scheme.yml"
- DB_SCHEME_FILE_NAME_B =
"db_scheme"
- OPTS_FILE_NAME =
"opts.tmpl"
- SAMPLE_OPTS_FILE_NAME =
"opts.rb.sample"
- OPTS_FILE_NAME_B =
"opts"
- DEST_OPTS_FILE_NAME =
"opts.rb"
- DEST_OPTS_FILE_NAME_B =
"opts"
- DBSETUP_FILE_NAME =
"dbsetup.tmpl"
- DBSETUP_FILE_NAME_B =
"dbsetup"
- DEST_DBSETUP_FILE_NAME =
"dbsetup.rb"
- SETTING_YAML_FILE_NAME =
"setting.yml"
- DEST_CONFIG_DIR =
Pathname.new(CONFIG_DIR)
- OPTS_FILE =
DB_SCHEME_DIR.join(OPTS_FILE_NAME)
- SAMPLE_OPTS_FILE =
CONFIG_DIR.join(SAMPLE_OPTS_FILE_NAME)
- DBSETUP_FILE =
変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス
DB_SCHEME_DIR.join(DBSETUP_FILE_NAME)
- DEST_OPTS_FILE =
変換先optsファイル(Rubyスクリプトファイル)へのパス
DEST_CONFIG_DIR.join(DEST_OPTS_FILE_NAME)
- DEST_OPTS_FILE_B =
DEST_CONFIG_DIR.join(OPTS_FILE_NAME_B)
- DEST_DBSETUP_FILE =
変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス
DEST_CONFIG_DIR.join(DEST_DBSETUP_FILE_NAME)
- DEST_DBSETUP_FILE_B =
変換先Dbsetupクラス定義のRubyスクリプトファイル(拡張子無し)へのパス
DEST_CONFIG_DIR.join(DBSETUP_FILE_NAME_B)
- DEST_DB_SCHEME_FILE =
DEST_CONFIG_DIR.join(DB_SCHEME_FILE_NAME)
- DEST_DB_SCHEME_FILE_B =
変換後DBスキームファイル(拡張子無し)へのパス
DEST_CONFIG_DIR.join(DB_SCHEME_FILE_NAME_B)
- SETTING_YAML_FILE =
CONFIG_DIR.join(SETTING_YAML_FILE_NAME)
- DB_PN =
Pathname.new(DB_DIR)
- MIGRATE_DIR =
migrateディレクトリへのパス
DB_PN.join(MIGRATE_BASE_DIR)
- EXCLUDE_FILES =
削除しないファイル群
%w[SETTING_YAML_FILE_NAME].freeze
- DEFAULT_MOD =
作成対象のActiveRecordの子クラスのデフォルトクラス名
"Xenop"
Instance Method Summary collapse
-
#check_file_exist(file_pn, banner, exit_code) ⇒ Object
指定ファイルの存在確認.
-
#check_file_not_exist(file_pn, banner, exit_code) ⇒ Object
指定ファイルの非存在確認.
-
#config_dir ⇒ Object
コンフィグディレクトリへのパス.
-
#copy_db_scheme_file ⇒ Object
DBスキームファイルが存在しなければ、サンプルファイルをDBスキームファイルとしてコピー.
-
#copy_opts_file ⇒ Object
optsファイルが存在しなければ、サンプルファイルをoptsファイルとしてコピー.
-
#db_dir ⇒ Object
DB格納ディレクトリ名.
- #default_mod ⇒ Object
-
#dest_dbsetup_file ⇒ Object
変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス.
- #dest_dbsetup_file_b ⇒ Object
- #exclude_file?(fname) ⇒ Boolean
-
#load_setting_yaml_file ⇒ Object
setting.ymlのロード.
-
#make_config_directory ⇒ Object
DB構成ファイル格納ディレクトリの作成.
-
#make_dbconfig_path(dbconfig) ⇒ Object
DB構成ファイルの作成.
- #make_dbsetup_file(db_scheme_ary, acrecord, _mod, dest_dbsetup_file) ⇒ Object
-
#make_migrate_script(db_scheme_ary, dbconfig_path, dbconfig, acrecord) ⇒ Object
migrate用スクリプトの生成.
-
#migrate_dir ⇒ Object
migrateディレクトリへのパス.
-
#prepare_for_migrate(db_scheme_ary, dbconfig_dest_path, dbconfig, acrecord) ⇒ Object
migrateの準備.
-
#require_dbsetup_file ⇒ Object
Dbsetupファイル(Rubyスクリプトファイル)のrequire.
-
#require_opts_file ⇒ Object
optsファイル(Rubyスクリプトファイル)のrequire.
- #setting_yaml_file ⇒ Object
-
#setup_db_scheme_file(mod) ⇒ Object
DBスキームファイルのサンプルファイコピー.
-
#setup_for_db_log_path(dbconfig) ⇒ Object
DBログファイルの作成.
-
#setup_for_dbconfig_path(dbconfig) ⇒ Object
DB構成ファイルの作成.
-
#setup_opts_file(mod) ⇒ Object
optsファイル(Rubyスクリプトファイル)のサンプルファイル書き込み.
-
#setup_setting_yaml_file(mod) ⇒ Object
setting.ymlへの出力.
- #setupx(toplevel) ⇒ Object
-
#src_dbsetup_file ⇒ Object
変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス.
-
#template_acrecord_dir ⇒ Object
リレーションテンプレートディレクトリへのパス.
-
#template_config_dir ⇒ Object
テンプレートディレクトリへのパス.
Instance Method Details
#check_file_exist(file_pn, banner, exit_code) ⇒ Object
指定ファイルの存在確認
202 203 204 205 206 207 208 |
# File 'lib/arxutils_sqlite3/config.rb', line 202 def check_file_exist(file_pn, , exit_code) return unless file_pn.exist? puts "#{file_pn} exists!" puts exit exit_code end |
#check_file_not_exist(file_pn, banner, exit_code) ⇒ Object
指定ファイルの非存在確認
211 212 213 214 215 216 217 |
# File 'lib/arxutils_sqlite3/config.rb', line 211 def check_file_not_exist(file_pn, , exit_code) return if file_pn.exist? puts "#{file_pn} does not exists!" puts exit exit_code end |
#config_dir ⇒ Object
コンフィグディレクトリへのパス
230 231 232 |
# File 'lib/arxutils_sqlite3/config.rb', line 230 def config_dir CONFIG_DIR end |
#copy_db_scheme_file ⇒ Object
DBスキームファイルが存在しなければ、サンプルファイルをDBスキームファイルとしてコピー
128 129 130 131 132 |
# File 'lib/arxutils_sqlite3/config.rb', line 128 def copy_db_scheme_file return if File.exist?(DEST_DB_SCHEME_FILE) FileUtils.cp(SAMPLE_DB_SCHEME_FILE, DEST_DB_SCHEME_FILE) end |
#copy_opts_file ⇒ Object
optsファイルが存在しなければ、サンプルファイルをoptsファイルとしてコピー
143 144 145 146 147 148 149 |
# File 'lib/arxutils_sqlite3/config.rb', line 143 def copy_opts_file return if File.exist?(DEST_OPTS_FILE) # p "exist? #{File.exist?(DEST_OPTS_FILE)}" # p "copy SAMPLE_OPTS_FILE(#{SAMPLE_OPTS_FILE}) to DEST_OPTS_FILE(#{DEST_OPTS_FILE})" FileUtils.cp(SAMPLE_OPTS_FILE, DEST_OPTS_FILE) end |
#db_dir ⇒ Object
DB格納ディレクトリ名
220 221 222 |
# File 'lib/arxutils_sqlite3/config.rb', line 220 def db_dir DB_DIR end |
#default_mod ⇒ Object
68 69 70 |
# File 'lib/arxutils_sqlite3/config.rb', line 68 def default_mod DEFAULT_MOD end |
#dest_dbsetup_file ⇒ Object
変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス
250 251 252 |
# File 'lib/arxutils_sqlite3/config.rb', line 250 def dest_dbsetup_file DEST_DBSETUP_FILE end |
#dest_dbsetup_file_b ⇒ Object
76 77 78 |
# File 'lib/arxutils_sqlite3/config.rb', line 76 def dest_dbsetup_file_b DEST_DBSETUP_FILE_B end |
#exclude_file?(fname) ⇒ Boolean
299 300 301 |
# File 'lib/arxutils_sqlite3/config.rb', line 299 def exclude_file?(fname) EXCLUDE_FILES.index(fname) != nil end |
#load_setting_yaml_file ⇒ Object
setting.ymlのロード
183 184 185 186 187 188 189 |
# File 'lib/arxutils_sqlite3/config.rb', line 183 def load_setting_yaml_file setting = {} # settingファイル setting_yaml_file = SETTING_YAML_FILE setting = YAML.load_file(setting_yaml_file) if setting_yaml_file.exist? setting end |
#make_config_directory ⇒ Object
DB構成ファイル格納ディレクトリの作成
110 111 112 113 |
# File 'lib/arxutils_sqlite3/config.rb', line 110 def make_config_directory # p "config make_config_directory" FileUtils.mkdir_p(CONFIG_DIR) end |
#make_dbconfig_path(dbconfig) ⇒ Object
DB構成ファイルの作成
165 166 167 168 |
# File 'lib/arxutils_sqlite3/config.rb', line 165 def make_dbconfig_path(dbconfig) # DB構成ファイル名 Arxutils_Sqlite3::Util.make_dbconfig_path(CONFIG_DIR, dbconfig) end |
#make_dbsetup_file(db_scheme_ary, acrecord, _mod, dest_dbsetup_file) ⇒ Object
290 291 292 293 294 295 296 297 |
# File 'lib/arxutils_sqlite3/config.rb', line 290 def make_dbsetup_file(db_scheme_ary, acrecord, _mod, dest_dbsetup_file) scope = Object.new hash0 = { mod_name: acrecord[:module].join("::") } hash = db_scheme_ary[0].merge(hash0) result_content = Ykutils::Erubyx.erubi_render_with_template_file(src_dbsetup_file, scope, hash) File.write(dest_dbsetup_file, result_content) end |
#make_migrate_script(db_scheme_ary, dbconfig_path, dbconfig, acrecord) ⇒ Object
migrate用スクリプトの生成
267 268 269 270 271 |
# File 'lib/arxutils_sqlite3/config.rb', line 267 def make_migrate_script(db_scheme_ary, dbconfig_path, dbconfig, acrecord) mig = Arxutils_Sqlite3::Util.prepare_for_migrate(db_scheme_ary, dbconfig_path, dbconfig, acrecord) # マイグレーション用スクリプトの生成、acrecordのクラス定義ファイルの生成 mig.output end |
#migrate_dir ⇒ Object
migrateディレクトリへのパス
225 226 227 |
# File 'lib/arxutils_sqlite3/config.rb', line 225 def migrate_dir MIGRATE_DIR end |
#prepare_for_migrate(db_scheme_ary, dbconfig_dest_path, dbconfig, acrecord) ⇒ Object
migrateの準備
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 |
# File 'lib/arxutils_sqlite3/config.rb', line 274 def prepare_for_migrate(db_scheme_ary, dbconfig_dest_path, dbconfig, acrecord) # DB構成ファイルの出力先ディレクトリ dbconfig_src_fname = "#{dbconfig}.tmpl" # migrate用スクリプトの出力先ディレクトリ名 # migrate_dir = get_migrate_dir Migrate.new( self, dbconfig_dest_path, dbconfig_src_fname, db_scheme_ary, acrecord, migrate_dir ) end |
#require_dbsetup_file ⇒ Object
Dbsetupファイル(Rubyスクリプトファイル)のrequire
192 193 194 195 196 197 198 199 |
# File 'lib/arxutils_sqlite3/config.rb', line 192 def require_dbsetup_file dbsetup_file = File.join(".", dest_dbsetup_file_b.to_s) begin require dbsetup_file rescue LoadError # pp ex.message end end |
#require_opts_file ⇒ Object
optsファイル(Rubyスクリプトファイル)のrequire
171 172 173 174 175 176 177 178 179 180 |
# File 'lib/arxutils_sqlite3/config.rb', line 171 def require_opts_file return unless DEST_OPTS_FILE.exist? opts_file = File.join("./", DEST_OPTS_FILE_B.to_s) begin require opts_file rescue LoadError # pp ex.message end end |
#setting_yaml_file ⇒ Object
72 73 74 |
# File 'lib/arxutils_sqlite3/config.rb', line 72 def setting_yaml_file SETTING_YAML_FILE end |
#setup_db_scheme_file(mod) ⇒ Object
DBスキームファイルのサンプルファイコピー
116 117 118 119 120 121 122 123 124 125 |
# File 'lib/arxutils_sqlite3/config.rb', line 116 def setup_db_scheme_file(mod) # p "config setup_db_scheme_file" # p "DB_SCHEME_FILE=#{DB_SCHEME_FILE}" # p "SAMPLE_DB_SCHEME_FILE=#{SAMPLE_DB_SCHEME_FILE}" scope = {} value_hash = { mod: mod } content = Ykutils::Erubyx.erubi_render_with_template_file(DB_SCHEME_FILE, scope, value_hash) # Ykxutils.yaml_load_compati(content) File.write(SAMPLE_DB_SCHEME_FILE, content) end |
#setup_for_db_log_path(dbconfig) ⇒ Object
DBログファイルの作成
255 256 257 258 |
# File 'lib/arxutils_sqlite3/config.rb', line 255 def setup_for_db_log_path(dbconfig) # DBログファイルへのパス Arxutils_Sqlite3::Util.make_log_path(db_dir, dbconfig) end |
#setup_for_dbconfig_path(dbconfig) ⇒ Object
DB構成ファイルの作成
261 262 263 264 |
# File 'lib/arxutils_sqlite3/config.rb', line 261 def setup_for_dbconfig_path(dbconfig) # DB構成ファイル名 Arxutils_Sqlite3::Util.make_dbconfig_path(config_dir, dbconfig) end |
#setup_opts_file(mod) ⇒ Object
optsファイル(Rubyスクリプトファイル)のサンプルファイル書き込み
135 136 137 138 139 140 |
# File 'lib/arxutils_sqlite3/config.rb', line 135 def setup_opts_file(mod) scope = Object.new hash = { mod_name: mod } result_content = Ykutils::Erubyx.erubi_render_with_template_file(OPTS_FILE, scope, hash) File.write(SAMPLE_OPTS_FILE, result_content) end |
#setup_setting_yaml_file(mod) ⇒ Object
setting.ymlへの出力
152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/arxutils_sqlite3/config.rb', line 152 def setup_setting_yaml_file(mod) hash = { mod: mod } content = YAML.dump(hash) ret = :SUCCESS begin File.write(SETTING_YAML_FILE, content) rescue StandardError ret = :StandardError end ret end |
#setupx(toplevel) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/arxutils_sqlite3/config.rb', line 80 def setupx(toplevel) require_opts_file opts = toplevel.instance_variable_get(:@opts) || {} acrecord = opts[:acrecord] if acrecord filename = acrecord[:filename] basename = File.basename(filename) begin require basename.to_s rescue LoadError # pp ex.message end end opts[:db_dir] = Arxutils_Sqlite3::Config::DB_DIR setting = load_setting_yaml_file # p "setting=#{setting}" mod = setting[:mod] mod ||= DEFAULT_MOD # DBセットアップクラス require_dbsetup_file [opts, mod] end |
#src_dbsetup_file ⇒ Object
変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス
245 246 247 |
# File 'lib/arxutils_sqlite3/config.rb', line 245 def src_dbsetup_file DBSETUP_FILE end |
#template_acrecord_dir ⇒ Object
リレーションテンプレートディレクトリへのパス
235 236 237 |
# File 'lib/arxutils_sqlite3/config.rb', line 235 def template_acrecord_dir TEMPLATE_ACRECORD_DIR end |
#template_config_dir ⇒ Object
テンプレートディレクトリへのパス
240 241 242 |
# File 'lib/arxutils_sqlite3/config.rb', line 240 def template_config_dir TEMPLATE_CONFIG_DIR end |