Class: Arxutils_Sqlite3::Arx

Inherits:
Object
  • Object
show all
Defined in:
lib/arxutils_sqlite3/arx.rb

Overview

スキーマ設定に基づき、テンプレートから変換する

Instance Method Summary collapse

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

#createObject

テンプレートファイルを元にした変換結果を返す



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