Class: Arxutils_Sqlite3::Arx
- Inherits:
-
Object
- Object
- Arxutils_Sqlite3::Arx
- Defined in:
- lib/arxutils_sqlite3/arx.rb
Overview
スキーマ設定に基づき、テンプレートから変換する
Instance Method Summary collapse
-
#create ⇒ Object
テンプレートファイルを元にした変換結果を返す.
-
#initialize(data, fname) ⇒ Arx
constructor
スキーマ設定配列を、テンプレートで参照可能になるように展開する.
Constructor Details
#initialize(data, fname) ⇒ Arx
スキーマ設定配列を、テンプレートで参照可能になるように展開する
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/arxutils_sqlite3/arx.rb', line 11 def initialize(data, fname) # テンプレートファイルへのパス @fname = fname # スキーマ設定配列 # スキーマ設定とは以下をキーにもつハッシュである # :flist # :classname # :classname_downcase # :items # フィールド名, 型, null許容 の配列 # :plural # :acrecord @data = data # スキーマ設定の:itemsの値を展開後格納するためのStructクラス # @field ||= Struct.new("Field", :name, :type, :null) @field ||= Struct.new(:name, :type, :null) @data[:ary] = if @data[:items] @data[:items].map { |x| @field.new(*x) } else [] end end |
Instance Method Details
#create ⇒ Object
テンプレートファイルを元にした変換結果を返す
38 39 40 41 42 |
# File 'lib/arxutils_sqlite3/arx.rb', line 38 def create scope = Object.new scope.instance_variable_set(:@data, @data) Ykutils::Erubyx.erubi_render_with_template_file(@fname, scope) end |