bricolages / bricolage

AWS-oriented Data Warehouse Framework
113 stars 20 forks source link

variable.ymlを捨てて変数定義はすべてRuby(variable.rb)にする #156

Open aamine opened 3 years ago

aamine commented 3 years ago

これまではvariable.ymlでerbを使うことで動的な定義を可能にしてきたが、YAMLで宣言した値をRubyから読むのも難しく、Rubyから変数を宣言することもできなかった。結果としてどんどん変数定義がRubyに移動していき、結果をYAMLに埋め込むだけになってしまった。

それならばいっそ最初からRubyで変数を定義することにすれば、スムーズに宣言できるのではないか。

仕様案

variable.rb(仮)

var.data_date = Date.today - 1
var.data_date_end = var.data_date
var.data_date_endx = var.data_date + 1
var.platform_id_pc = 1
var.default_dest_schema = 'test'
aamine commented 3 years ago

試しに手元のvariable.ymlを1つ書き換えてみたが何の問題もないどころかむしろすっきりした。 少なくとも variable.rb(仮)は導入しよう。

aamine commented 3 years ago

変数の設定のしかたはどうするか。なんらかのRubyの変数に入れておいてOpenStructスタイルで書く(インデックス形式でも書ける)のはほぼ確定だが、変数はちょっと悩む。

# var案。まあ普通か。
var.data_date = Date.today - 1

# インスタンス変数案。いまいち?
@var.data_date = Date.today - 1

# グローバル変数案。bricolage変数の見ためにちょっと近いがしかし……
$V.data_date = Date.today - 1

ローカル変数varでいいかなあ。varsのほうがいいかなあ。はたまたdefvar……いやそれはない