arxutils_sqlite3 0.1.48 → 0.1.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -2
  3. data/.rubocop_todo.yml +209 -109
  4. data/Gemfile +13 -16
  5. data/Gemfile.lock +112 -0
  6. data/Rakefile +12 -58
  7. data/arxutils_sqlite3.gemspec +4 -4
  8. data/config/.gitignore +1 -0
  9. data/config/setting.yml +2 -0
  10. data/exe/arxutils_sqlite3 +38 -29
  11. data/lib/arxutils_sqlite3/arx.rb +3 -3
  12. data/lib/arxutils_sqlite3/cli.rb +48 -27
  13. data/lib/arxutils_sqlite3/config.rb +96 -72
  14. data/lib/arxutils_sqlite3/dbutil/dbconnect.rb +4 -26
  15. data/lib/arxutils_sqlite3/dbutil.rb +0 -1
  16. data/lib/arxutils_sqlite3/hier.rb +3 -3
  17. data/lib/arxutils_sqlite3/migrate.rb +59 -53
  18. data/lib/arxutils_sqlite3/util.rb +2 -1
  19. data/lib/arxutils_sqlite3/version.rb +1 -1
  20. data/lib/arxutils_sqlite3.rb +2 -1
  21. data/lib/arxutils_sqlite3_rake_task.rb +68 -0
  22. data/lib/{arxutils_sqlite3/dbutil/dbrelation.rb → dbacrecord.rb} +0 -0
  23. data/lib/template/{relation/relation.tmpl → acrecord/acrecord.tmpl} +1 -1
  24. data/lib/template/{relation/relation_count.tmpl → acrecord/acrecord_count.tmpl} +0 -0
  25. data/lib/template/{relation/relation_current.tmpl → acrecord/acrecord_current.tmpl} +0 -0
  26. data/lib/template/{relation/relation_invalid.tmpl → acrecord/acrecord_invalid.tmpl} +0 -0
  27. data/lib/template/{relation → acrecord}/base.tmpl +0 -0
  28. data/lib/template/{relation → acrecord}/current.tmpl +0 -0
  29. data/lib/template/{relation → acrecord}/db_scheme/db_scheme.yml +0 -0
  30. data/lib/template/acrecord/db_scheme/db_scheme.yml.sample +48 -0
  31. data/lib/template/{relation/db_scheme/dbsetup.rb → acrecord/db_scheme/dbsetup.tmpl} +2 -2
  32. data/lib/template/acrecord/db_scheme/opts.rb.sample +7 -0
  33. data/lib/template/acrecord/db_scheme/opts.tmpl +7 -0
  34. data/lib/template/{relation → acrecord}/invalid.tmpl +0 -0
  35. data/lib/template/{relation → acrecord}/noitem.tmpl +0 -0
  36. metadata +30 -26
  37. data/LICENSE.txt +0 -21
  38. data/lib/template/relation/db_scheme/opts.rb +0 -8
@@ -4,6 +4,7 @@ module Arxutils_Sqlite3
4
4
  ##
5
5
  # migrateに必要なファイルをテンプレートから作成し、migarteを実行する
6
6
  class Config
7
+ EXCLUDE_FILES = %W!setting.yml!
7
8
  # DB格納ディレクトリ名
8
9
  DB_DIR = "db".freeze
9
10
  # migrate用スクリプト格納ディレクトリ名
@@ -22,31 +23,37 @@ module Arxutils_Sqlite3
22
23
  # テンプレートディレクトリへのパス
23
24
  TEMPLATE_DIR = Arxutils_Sqlite3::TOP_DIR.join("template")
24
25
  # リレーションテンプレートディレクトリへのパス
25
- TEMPLATE_RELATION_DIR = TEMPLATE_DIR.join("relation")
26
- TEMPLATE_CONFIG_DIR = TEMPLATE_DIR.join( CONFIG_DIR )
27
- DB_SCHEME_DIR = TEMPLATE_RELATION_DIR.join("db_scheme")
26
+ TEMPLATE_ACRECORD_DIR = TEMPLATE_DIR.join("acrecord")
27
+ TEMPLATE_CONFIG_DIR = TEMPLATE_DIR.join(CONFIG_DIR)
28
+ DB_SCHEME_DIR = TEMPLATE_ACRECORD_DIR.join("db_scheme")
28
29
  DB_SCHEME_FILE = DB_SCHEME_DIR.join("db_scheme.yml")
30
+ SAMPLE_DB_SCHEME_FILE = CONFIG_DIR.join("db_scheme.yml.sample")
29
31
  DB_SCHEME_FILE_NAME = "db_scheme.yml".freeze
30
- DB_SCHEME_FILE_NAME_2 = "db_scheme".freeze
31
- OPTS_FILE_NAME = "opts.rb".freeze
32
- OPTS_FILE_NAME_2 = "opts".freeze
33
- DBSETUP_FILE_NAME = "dbsetup.rb".freeze
34
- DBSETUP_FILE_NAME_2 = "dbsetup".freeze
32
+ DB_SCHEME_FILE_NAME_B = "db_scheme".freeze
33
+ OPTS_FILE_NAME = "opts.tmpl".freeze
34
+ SAMPLE_OPTS_FILE_NAME = "opts.rb.sample".freeze
35
+ OPTS_FILE_NAME_B = "opts".freeze
36
+ DEST_OPTS_FILE_NAME = "opts.rb".freeze
37
+ DEST_OPTS_FILE_NAME_B = "opts".freeze
38
+ DBSETUP_FILE_NAME = "dbsetup.tmpl".freeze
39
+ DBSETUP_FILE_NAME_B = "dbsetup".freeze
40
+ DEST_DBSETUP_FILE_NAME = "dbsetup.rb".freeze
35
41
  SETTING_YAML_FILE_NAME = "setting.yml".freeze
36
- DEST_CONFIG_DIR = Pathname.new( CONFIG_DIR )
42
+ DEST_CONFIG_DIR = Pathname.new(CONFIG_DIR)
37
43
  OPTS_FILE = DB_SCHEME_DIR.join(OPTS_FILE_NAME)
44
+ SAMPLE_OPTS_FILE = CONFIG_DIR.join(SAMPLE_OPTS_FILE_NAME)
38
45
  # 変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス
39
46
  DBSETUP_FILE = DB_SCHEME_DIR.join(DBSETUP_FILE_NAME)
40
47
  # 変換先optsファイル(Rubyスクリプトファイル)へのパス
41
- DEST_OPTS_FILE = DEST_CONFIG_DIR.join(OPTS_FILE_NAME)
42
- DEST_OPTS_FILE_2 = DEST_CONFIG_DIR.join(OPTS_FILE_NAME_2)
48
+ DEST_OPTS_FILE = DEST_CONFIG_DIR.join(DEST_OPTS_FILE_NAME)
49
+ DEST_OPTS_FILE_B = DEST_CONFIG_DIR.join(OPTS_FILE_NAME_B)
43
50
  # 変換先Dbsetupクラス定義のRubyスクリプトファイルへのパス
44
- DEST_DBSETUP_FILE = DEST_CONFIG_DIR.join(DBSETUP_FILE_NAME)
51
+ DEST_DBSETUP_FILE = DEST_CONFIG_DIR.join(DEST_DBSETUP_FILE_NAME)
45
52
  # 変換先Dbsetupクラス定義のRubyスクリプトファイル(拡張子無し)へのパス
46
- DEST_DBSETUP_FILE_2 = DEST_CONFIG_DIR.join(DBSETUP_FILE_NAME_2)
53
+ DEST_DBSETUP_FILE_B = DEST_CONFIG_DIR.join(DBSETUP_FILE_NAME_B)
47
54
  DEST_DB_SCHEME_FILE = DEST_CONFIG_DIR.join(DB_SCHEME_FILE_NAME)
48
55
  # 変換後DBスキームファイル(拡張子無し)へのパス
49
- DEST_DB_SCHEME_FILE_2 = DEST_CONFIG_DIR.join(DB_SCHEME_FILE_NAME_2)
56
+ DEST_DB_SCHEME_FILE_B = DEST_CONFIG_DIR.join(DB_SCHEME_FILE_NAME_B)
50
57
  SETTING_YAML_FILE = CONFIG_DIR.join(SETTING_YAML_FILE_NAME)
51
58
  DB_PN = Pathname.new(DB_DIR)
52
59
  # migrateディレクトリへのパス
@@ -54,31 +61,47 @@ module Arxutils_Sqlite3
54
61
 
55
62
  # DB構成ファイル格納ディレクトリの作成
56
63
  def make_config_directory
64
+ # p "config make_config_directory"
57
65
  FileUtils.mkdir_p(CONFIG_DIR)
58
66
  end
59
67
 
60
- # DBスキームファイルのひな型コピー
68
+ # DBスキームファイルのサンプルファイルコピー
61
69
  def setup_db_scheme_file
62
- FileUtils.cp(DB_SCHEME_FILE, DEST_DB_SCHEME_FILE)
70
+ # p "config setup_db_scheme_file"
71
+ # p "DB_SCHEME_FILE=#{DB_SCHEME_FILE}"
72
+ # p "SAMPLE_DB_SCHEME_FILE=#{SAMPLE_DB_SCHEME_FILE}"
73
+ FileUtils.cp(DB_SCHEME_FILE, SAMPLE_DB_SCHEME_FILE)
63
74
  end
64
75
 
65
- # optsファイル(Rubyスクリプトファイル)のrequire
76
+ # DBスキームファイルが存在しなければ、サンプルファイルをDBスキームファイルとしてコピー
77
+ def copy_db_scheme_file
78
+ return if File.exist?(DEST_DB_SCHEME_FILE)
79
+
80
+ FileUtils.cp(SAMPLE_DB_SCHEME_FILE, DEST_DB_SCHEME_FILE)
81
+ end
82
+
83
+ # optsファイル(Rubyスクリプトファイル)のサンプルファイル書き込み
66
84
  def setup_opts_file(klass)
67
85
  scope = Object.new
68
- hash = {klass: klass}
86
+ hash = { klass: klass }
69
87
  result_content = Ykutils::Erubyx.erubi_render_with_template_file(OPTS_FILE, scope, hash)
70
- File.open(DEST_OPTS_FILE, "w"){|file|
71
- file.write(result_content)
72
- }
88
+ File.write(SAMPLE_OPTS_FILE, result_content)
89
+ end
90
+
91
+ # optsファイルが存在しなければ、サンプルファイルをoptsファイルとしてコピー
92
+ def copy_opts_file
93
+ return if File.exist?(DEST_OPTS_FILE)
94
+
95
+ # p "exist? #{File.exist?(DEST_OPTS_FILE)}"
96
+ # p "copy SAMPLE_OPTS_FILE(#{SAMPLE_OPTS_FILE}) to DEST_OPTS_FILE(#{DEST_OPTS_FILE})"
97
+ FileUtils.cp(SAMPLE_OPTS_FILE, DEST_OPTS_FILE)
73
98
  end
74
99
 
75
100
  # setting.ymlへの出力
76
101
  def setup_setting_yaml_file(klass)
77
- hash = { "klass": klass }
102
+ hash = { klass: klass }
78
103
  content = YAML.dump(hash)
79
- File.open(SETTING_YAML_FILE, "w"){|file|
80
- file.write(content)
81
- }
104
+ File.write(SETTING_YAML_FILE, content)
82
105
  end
83
106
 
84
107
  # DB構成ファイルの作成
@@ -89,13 +112,13 @@ module Arxutils_Sqlite3
89
112
 
90
113
  # optsファイル(Rubyスクリプトファイル)のrequire
91
114
  def require_opts_file
92
- if DEST_OPTS_FILE.exist?
93
- opts_file = File.join("./" , DEST_OPTS_FILE_2.to_s)
94
- begin
95
- require opts_file
96
- rescue LoadError => ex
97
- pp ex.message
98
- end
115
+ return unless DEST_OPTS_FILE.exist?
116
+
117
+ opts_file = File.join("./", DEST_OPTS_FILE_B.to_s)
118
+ begin
119
+ require opts_file
120
+ rescue LoadError
121
+ # pp ex.message
99
122
  end
100
123
  end
101
124
 
@@ -104,40 +127,38 @@ module Arxutils_Sqlite3
104
127
  setting = {}
105
128
  # settingファイル
106
129
  setting_yaml_file = SETTING_YAML_FILE
107
- if setting_yaml_file.exist?
108
- setting = YAML.load_file( setting_yaml_file )
109
- end
130
+ setting = YAML.load_file(setting_yaml_file) if setting_yaml_file.exist?
110
131
  setting
111
132
  end
112
133
 
113
134
  # Dbsetupファイル(Rubyスクリプトファイル)のrequire
114
135
  def require_dbsetup_file
115
- dbsetup_file = File.join(".", get_dest_dbsetup_file_2.to_s)
136
+ dbsetup_file = File.join(".", get_dest_dbsetup_file_b.to_s)
116
137
  begin
117
138
  require dbsetup_file
118
- rescue LoadError => ex
119
- pp ex.message
139
+ rescue LoadError
140
+ # pp ex.message
120
141
  end
121
142
  end
122
143
 
123
144
  # 指定ファイルの存在確認
124
145
  def check_file_exist(file_pn, banner, exit_code)
125
- if file_pn.exist?
126
- puts "#{file_pn} exists!"
127
- puts banner
128
- exit exit_code
129
- end
146
+ return unless file_pn.exist?
147
+
148
+ puts "#{file_pn} exists!"
149
+ puts banner
150
+ exit exit_code
130
151
  end
131
152
 
132
153
  # 指定ファイルの非存在確認
133
154
  def check_file_not_exist(file_pn, banner, exit_code)
134
- if !file_pn.exist?
135
- puts "#{file_pn} does not exists!"
136
- puts banner
137
- exit exit_code
138
- end
155
+ return if file_pn.exist?
156
+
157
+ puts "#{file_pn} does not exists!"
158
+ puts banner
159
+ exit exit_code
139
160
  end
140
-
161
+
141
162
  # 変換先optsファイル(Rubyスクリプトファイル)へのパス
142
163
  def get_dest_opts_file
143
164
  DEST_OPTS_FILE
@@ -152,14 +173,15 @@ module Arxutils_Sqlite3
152
173
  def get_migrate_dir
153
174
  MIGRATE_DIR
154
175
  end
176
+
155
177
  # コンフィグディレクトリへのパス
156
178
  def get_config_dir
157
179
  CONFIG_DIR
158
180
  end
159
181
 
160
182
  # リレーションテンプレートディレクトリへのパス
161
- def get_template_relation_dir
162
- TEMPLATE_RELATION_DIR
183
+ def get_template_acrecord_dir
184
+ TEMPLATE_ACRECORD_DIR
163
185
  end
164
186
 
165
187
  # テンプレートディレクトリへのパス
@@ -178,13 +200,13 @@ module Arxutils_Sqlite3
178
200
  end
179
201
 
180
202
  # 変換先Dbsetupクラス定義のRubyスクリプトファイル(拡張子無し)へのパス
181
- def get_dest_dbsetup_file_2
182
- DEST_DBSETUP_FILE_2
203
+ def get_dest_dbsetup_file_b
204
+ DEST_DBSETUP_FILE_B
183
205
  end
184
206
 
185
207
  # 変換後DBスキームファイル名(拡張子無し)
186
208
  def get_dest_db_scheme_file
187
- DEST_DB_SCHEME_FILE_2
209
+ DEST_DB_SCHEME_FILE_B
188
210
  end
189
211
 
190
212
  # DBログファイルの作成
@@ -202,41 +224,43 @@ module Arxutils_Sqlite3
202
224
  end
203
225
 
204
226
  # migrate用スクリプトの生成
205
- def make_migrate_script(db_scheme_ary, dbconfig_path, dbconfig, relation)
206
- mig = Arxutils_Sqlite3::Util.prepare_for_migrate(db_scheme_ary, dbconfig_path, dbconfig, relation)
207
- # マイグレーション用スクリプトの生成、relationのクラス定義ファイルの生成
227
+ def make_migrate_script(db_scheme_ary, dbconfig_path, dbconfig, acrecord)
228
+ mig = Arxutils_Sqlite3::Util.prepare_for_migrate(db_scheme_ary, dbconfig_path, dbconfig, acrecord)
229
+ # マイグレーション用スクリプトの生成、acrecordのクラス定義ファイルの生成
208
230
  mig.output
209
231
  end
210
232
 
211
233
  # migrateの準備
212
- def prepare_for_migrate(db_scheme_ary, dbconfig_dest_path, dbconfig, relation)
213
- #db_dir = config.DB_DIR
214
- db_dir = get_db_dir
215
- migrate_dir = get_migrate_dir
234
+ def prepare_for_migrate(db_scheme_ary, dbconfig_dest_path, dbconfig, acrecord)
216
235
  # DB構成ファイルの出力先ディレクトリ
217
236
  dbconfig_src_fname = "#{dbconfig}.tmpl"
218
- mig = Migrate.new(
237
+ # migrate用スクリプトの出力先ディレクトリ名
238
+ migrate_dir = get_migrate_dir
239
+
240
+ Migrate.new(
219
241
  self,
220
242
  dbconfig_dest_path,
221
243
  dbconfig_src_fname,
222
244
  db_scheme_ary,
223
- relation
224
- )
245
+ acrecord,
246
+ migrate_dir
247
+ )
225
248
  end
226
249
 
227
- def make_dbsetup_file(db_scheme_ary, relation, klass, dest_dbsetup_file)
250
+ def make_dbsetup_file(db_scheme_ary, acrecord, klass, dest_dbsetup_file)
228
251
  src_dbsetup_file = get_src_dbsetup_file
229
252
 
230
253
  scope = Object.new
231
- hash0 = {module_name: relation[:module].join("::")}
232
- hash = db_scheme_ary[0].merge( hash0 )
254
+ hash0 = { module_name: acrecord[:module].join("::") }
255
+ hash = db_scheme_ary[0].merge(hash0)
233
256
  hash["klass"] = klass
234
257
  result_content = Ykutils::Erubyx.erubi_render_with_template_file(src_dbsetup_file, scope, hash)
235
258
 
236
- #p "################ dest_dbsetup_file=#{dest_dbsetup_file}"
237
- File.open(dest_dbsetup_file, "w"){|file|
238
- file.write(result_content)
239
- }
259
+ File.write(dest_dbsetup_file, result_content)
260
+ end
261
+
262
+ def exclude_file?( fname )
263
+ EXCLUDE_FILES.index( fname ) != nil
240
264
  end
241
265
  end
242
- end
266
+ end
@@ -6,28 +6,6 @@ require "active_record"
6
6
  require "sqlite3"
7
7
  require "ykxutils"
8
8
 
9
- def require_x(path)
10
- require path
11
- rescue StandardError => e
12
- p "1 request_x"
13
- p e
14
- rescue LoadError => e
15
- p "21 request_x"
16
- p e
17
- rescue NotImplementedError => e
18
- p "22 request_x"
19
- p e
20
- rescue SyntaxError => e
21
- p "23 request_x"
22
- p e
23
- rescue ScriptError => e
24
- p "20 request_x"
25
- p e
26
- rescue Exception => e
27
- p "9 request_x"
28
- p e
29
- end
30
-
31
9
  module Arxutils_Sqlite3
32
10
  module Dbutil
33
11
  # DB操作用ユーティリティクラス
@@ -64,14 +42,14 @@ module Arxutils_Sqlite3
64
42
  def connect
65
43
  unless @connect_time
66
44
  begin
67
- #p "@dbconfig_dest_path=#{@dbconfig_dest_path}"
45
+ # p "@dbconfig_dest_path=#{@dbconfig_dest_path}"
68
46
  dbconfig = Ykxutils.yaml_load_file_compati(@dbconfig_dest_path)
69
- #p "dbconfig=#{dbconfig}"
70
- #p "@env=#{@env}"
47
+ # p "dbconfig=#{dbconfig}"
48
+ # p "@env=#{@env}"
71
49
  ActiveRecord::Base.establish_connection(dbconfig[@env])
72
50
  ActiveRecord::Base.logger = Logger.new(@log_path)
73
51
  @connect_time = DateTime.now.new_offset
74
- rescue => ex
52
+ rescue StandardError => ex
75
53
  p ex.message
76
54
  end
77
55
  end
@@ -3,6 +3,5 @@ require_relative "dbutil/dbconnect"
3
3
  module Arxutils_Sqlite3
4
4
  # DB操作用ユーティリティクラス
5
5
  module Dbutil
6
- #
7
6
  end
8
7
  end
@@ -142,10 +142,10 @@ module Arxutils_Sqlite3
142
142
  hier = @hier_klass.find_by(child_id: num)
143
143
  level = hier.level
144
144
  parent_id = hier.parent_id
145
- base = @base_klass.find_by(ord_id: num)
145
+ # base = @base_klass.find_by(ord_id: num)
146
146
 
147
- parent_base = @base_klass.find_by(ord_id: parent_id)
148
- parent_hier_string = parent_base.__send__ @hier_symbol
147
+ # parent_base = @base_klass.find_by(ord_id: parent_id)
148
+ # parent_hier_string = parent_base.__send__ @hier_symbol
149
149
 
150
150
  # 属する子を探す
151
151
  children_hier = @hier_klass.where(parent_id: num)
@@ -1,21 +1,22 @@
1
- #require "arxutils_sqlite3"
1
+ # require "arxutils_sqlite3"
2
2
  require "ykutils"
3
3
  require "fileutils"
4
- #require "active_support"
4
+ # require "active_support"
5
5
  require "active_record"
6
6
  require "active_record/migration"
7
7
  require "pp"
8
8
 
9
9
  # ActiveRecord用ユーティリティモジュール
10
10
  module Arxutils_Sqlite3
11
- ##
12
- # migrateに必要なファイルをテンプレートから作成し、migarteを実行する
11
+ ##
12
+ # migrateに必要なファイルをテンプレートから作成し、migarteを実行する
13
13
  class Migrate
14
14
  attr_reader :migrate_dir
15
+
15
16
  # migrate用スクリプトファイル名の先頭の番号の間隔
16
17
  FILENAME_COUNTER_STEP = 10
17
18
  # DB接続までの初期化を行うDbinitクラスのインスタンス
18
- #attr_reader :dbinit
19
+ # attr_reader :dbinit
19
20
 
20
21
  # migrate用のスクリプトの生成、migrateの実行を行うmigratexの生成
21
22
  def initialize(
@@ -23,8 +24,11 @@ module Arxutils_Sqlite3
23
24
  dbconfig_dest_path,
24
25
  dbconfig_src_fname,
25
26
  db_scheme_ary,
26
- relation_config
27
- )
27
+ acrecord_config,
28
+ migrate_dir
29
+ )
30
+ # アプリ構成情報
31
+ @config = config
28
32
  # DB格納ディレクトリ名
29
33
  @db_dir = config.get_db_dir
30
34
  # DB構成ファイルの出力先ディレクトリ
@@ -34,18 +38,16 @@ module Arxutils_Sqlite3
34
38
  # 参照用DB構成情報ファイル名
35
39
  @dbconfig_src_fname = dbconfig_src_fname
36
40
 
37
- # migrate用スクリプトの出力先ディレクトリ名
38
- @migrate_dir = config.get_migrate_dir
39
41
  # テンプレートファイル格納ディレクトリ名
40
- @src_path = config.get_template_relation_dir
41
- #@src_path = Arxutils_Sqlite3::TEMPLATE_RELATION_DIR
42
+ @src_path = config.get_template_acrecord_dir
42
43
  # 構成ファイル格納ディレクトリ
43
44
  @src_config_path = config.get_template_config_dir
44
- # @src_config_path = Arxutils_Sqlite3::TEMPLATE_CONFIG_DIR
45
+ # @src_config_path = Arxutils_Sqlite3::TEMPLATE_CONFIG_DIR
45
46
  # データベーススキーマ定義配列
46
47
  @db_scheme_ary = db_scheme_ary
47
48
  # リレーション指定
48
- @relation_config = relation_config
49
+ @acrecord_config = acrecord_config
50
+ @migrate_dir = migrate_dir
49
51
 
50
52
  FileUtils.mkdir_p(@db_dir) if @db_dir
51
53
  FileUtils.mkdir_p(@migrate_dir) if @migrate_dir
@@ -60,7 +62,11 @@ module Arxutils_Sqlite3
60
62
  end
61
63
  end
62
64
  Dir.glob(File.join(@dest_config_dir, "*")).each do |x|
63
- FileUtils.rm(x) if File.file?(x)
65
+ basename = File.basename(x)
66
+ ret = !@config.exclude_file?( basename )
67
+ ret_file = File.file?(x)
68
+ ret2 = (ret_file && ret)
69
+ FileUtils.rm(x) if ret2
64
70
  end
65
71
  Dir.glob(File.join(@db_dir, "*")).each do |x|
66
72
  # puts x
@@ -89,12 +95,12 @@ module Arxutils_Sqlite3
89
95
  end
90
96
  end
91
97
 
92
- # マイグレーション用スクリプトの生成、relationのクラス定義ファイルの生成
98
+ # マイグレーション用スクリプトの生成、acrecordのクラス定義ファイルの生成
93
99
  def output
94
100
  # migrationのスクリプトをファイル出力する
95
101
  output_all_script
96
102
 
97
- # relationを表すクラス定義のファイルの内容を生成
103
+ # acrecordを表すクラス定義のファイルの内容を生成
98
104
  content_array = make_content_array
99
105
  # p "content_array=#{content_array}"
100
106
  # 複数形のクラス名を集める
@@ -102,7 +108,7 @@ module Arxutils_Sqlite3
102
108
  x[:need_count_class_plural].nil?
103
109
  end
104
110
  need_count_class_plural = count_class_plurals.map { |x| x[:need_count_class_plural] }
105
- # relationのmigrateが必要であれば、それをテンプレートファイルから作成して、スクリプトの内容として追加する
111
+ # acrecordのmigrateが必要であれば、それをテンプレートファイルから作成して、スクリプトの内容として追加する
106
112
  if content_array.find { |x| !x.nil? }
107
113
  # p "####### 1"
108
114
  data_count = {
@@ -111,12 +117,12 @@ module Arxutils_Sqlite3
111
117
  }
112
118
  # p "data_count=#{data_count}"
113
119
  ary = content_array.collect { |x| x[:content] }.flatten
114
- count_content = convert_count_class_relation(data_count, "relation_count.tmpl")
120
+ count_content = convert_count_class_acrecord(data_count, "acrecord_count.tmpl")
115
121
  ary.unshift(count_content)
116
122
  content_array = ary
117
123
  end
118
- # relationのスクリプトを作成
119
- output_relation_script(content_array, @relation_config)
124
+ # acrecordのスクリプトを作成
125
+ output_acrecord_script(content_array, @acrecord_config)
120
126
  end
121
127
 
122
128
  # migrationのスクリプトをファイル出力する
@@ -128,17 +134,17 @@ module Arxutils_Sqlite3
128
134
  end
129
135
  end
130
136
 
131
- # relationを表すクラス定義のファイルの内容を生成
137
+ # acrecordを表すクラス定義のファイルの内容を生成
132
138
  def make_content_array
133
- # スキーマ設定配列から、relationのmigrate用のスクリプトの内容(ハッシュ形式)の配列を作成する
134
- relations = @db_scheme_ary.map do |x|
135
- make_relation(x, "count")
139
+ # スキーマ設定配列から、acrecordのmigrate用のスクリプトの内容(ハッシュ形式)の配列を作成する
140
+ acrecords = @db_scheme_ary.map do |x|
141
+ make_acrecord(x, "count")
136
142
  end
137
- relations.select { |x| x.size.positive? }
143
+ acrecords.select { |x| x.size.positive? }
138
144
  end
139
145
 
140
- # Countクラス用のrelationのスクリプトの内容に変換
141
- def convert_count_class_relation(data, src_fname)
146
+ # Countクラス用のacrecordのスクリプトの内容に変換
147
+ def convert_count_class_acrecord(data, src_fname)
142
148
  convert(data, @src_path, src_fname)
143
149
  end
144
150
 
@@ -153,28 +159,29 @@ module Arxutils_Sqlite3
153
159
  def make_dbconfig(data)
154
160
  content = convert(data, @src_config_path, @dbconfig_src_fname)
155
161
  File.open(
156
- @dbconfig_dest_path, "w:utf-8") do |f|
162
+ @dbconfig_dest_path, "w:utf-8"
163
+ ) do |f|
157
164
  f.puts(content)
158
165
  end
159
166
  end
160
167
 
161
- # 英子文字で表現したクラス名が、countを表していなければ、relation
168
+ # 英子文字で表現したクラス名が、countを表していなければ、acrecord
162
169
  # 英子文字で表現したクラス名が、countを表していれが、空のハッシュを返す
163
- # スキーマでbase, noitem以外のフィールドが指定されていれば、そのフィールドに対するrelationの設定の内容を返す
164
- def make_relation(data, count_classname_downcase)
170
+ # スキーマでbase, noitem以外のフィールドが指定されていれば、そのフィールドに対するacrecordの設定の内容を返す
171
+ def make_acrecord(data, count_classname_downcase)
165
172
  if data[:classname_downcase] == count_classname_downcase
166
173
  {}
167
174
  else
168
- # 指定フィールドのフィールド名に対応したテンプレートファイルを用いて、relation設定を作成
175
+ # 指定フィールドのフィールド名に対応したテンプレートファイルを用いて、acrecord設定を作成
169
176
  data[:flist].each_with_object({ content: [], need_count_class: nil }) do |field_name, s|
170
177
  case field_name
171
178
  when "base", "noitem"
172
- name_base = "relation"
173
- # data[:relation]がnilに設定されていたら改めて空の配列を設定
174
- data[:relation] = [] unless data[:relation]
179
+ name_base = "acrecord"
180
+ # data[:acrecord]がnilに設定されていたら改めて空の配列を設定
181
+ data[:acrecord] = [] unless data[:acrecord]
175
182
  else
176
183
  data[:count_classname_downcase] = count_classname_downcase
177
- name_base = "relation_#{field_name}"
184
+ name_base = "acrecord_#{field_name}"
178
185
  s[:need_count_class_plural] ||= data[:plural]
179
186
  end
180
187
  # テンプレートファイルからスクリプトの内容を作成
@@ -186,41 +193,40 @@ module Arxutils_Sqlite3
186
193
 
187
194
  # スキーマ設定からmigarte用スクリプトの内容を生成
188
195
  def make_script_group(data)
189
- #p data
190
- data[:flist].map {
191
- |kind|
196
+ # p data
197
+ data[:flist].map do |kind|
192
198
  [kind,
193
- convert(data, @src_path, "#{kind}.tmpl"),
194
- data[:classname_downcase]
195
- ] }
199
+ convert(data, @src_path, "#{kind}.tmpl"),
200
+ data[:classname_downcase]]
201
+ end
196
202
  end
197
203
 
198
204
  # migrationのスクリプトをファイル出力する
199
205
  def output_script(idy, kind, content, classname_downcase)
200
206
  additional = case kind
201
- when "base", "noitem"
202
- ""
203
- else
204
- kind
205
- end
207
+ when "base", "noitem"
208
+ ""
209
+ else
210
+ kind
211
+ end
206
212
  fname = File.join(@migrate_dir, format("%03d_create_%s%s.rb", idy, additional, classname_downcase))
207
213
  File.open(fname, "w", **{ encoding: Encoding::UTF_8 }) do |f|
208
214
  f.puts(content)
209
215
  end
210
216
  end
211
217
 
212
- # relationのスクリプトをファイル出力する
213
- def output_relation_script(content_array, relation_config)
214
- dir = relation_config[:dir]
215
- fname = relation_config[:filename]
218
+ # acrecordのスクリプトをファイル出力する
219
+ def output_acrecord_script(content_array, acrecord_config)
220
+ dir = acrecord_config[:dir]
221
+ fname = acrecord_config[:filename]
216
222
  fpath = File.join(dir, fname)
217
223
  File.open(fpath, "w") do |file|
218
- relation_config[:module].map { |mod| file.puts("module #{mod}") }
224
+ acrecord_config[:module].map { |mod| file.puts("module #{mod}") }
219
225
  content_array.map do |x|
220
226
  file.puts x
221
227
  file.puts ""
222
228
  end
223
- relation_config[:module].map { |_mod| file.puts("end") }
229
+ acrecord_config[:module].map { |_mod| file.puts("end") }
224
230
  end
225
231
  end
226
232
  end
@@ -4,7 +4,8 @@ module Arxutils_Sqlite3
4
4
  def self.make_log_path(db_dir, dbconfig)
5
5
  log_path = ""
6
6
  log_fname = Dbutil::Dbconnect.make_log_file_name(
7
- dbconfig, Config::DATABASELOG)
7
+ dbconfig, Config::DATABASELOG
8
+ )
8
9
  if db_dir && log_fname
9
10
  # DB用ログファイルへのパス
10
11
  log_path = File.join(db_dir, log_fname)
@@ -1,4 +1,4 @@
1
1
  module Arxutils_Sqlite3
2
2
  # バージョン番号
3
- VERSION = "0.1.48".freeze
3
+ VERSION = "0.1.50".freeze
4
4
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "ykutils"
3
4
  require "ykxutils"
4
5
 
@@ -23,5 +24,5 @@ require_relative "arxutils_sqlite3/arx"
23
24
  require_relative "arxutils_sqlite3/transactstate"
24
25
  require_relative "arxutils_sqlite3/hier"
25
26
  require_relative "arxutils_sqlite3/migrate"
26
- require_relative "arxutils_sqlite3/migrate"
27
27
  require_relative "arxutils_sqlite3/util"
28
+ require_relative "dbacrecord"