【Ruby】slim から HTML生成術 その3
~ その2の続き
実は、Slim::Template.new("test_slim.slim").render(self) のselfの部分にclassのインスタンスを渡すと、そこで宣言しているインスタンス・クラス変数やメソッドが呼び出せる!
(もちろん、selfも可能)
サンプルコード
requrie 'slim' class MyClass attr_reader :title, :name def initialize @title = 'MyClass title' @name = 'MyClass name' end def add 1 + 1 end end p Slim::Template.new("test_slim.slim").render(MyClass.new)
Slim コードはこんな風に改変できます。
h1 = @title div = "hello #{@name}" div = add
結果
"<h1>MyClass Title</h1><div>hello MyClass name</div><div>2</div>"
共通処理は別クラスに宣言しておけば、すっきり記述できますね。