【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>"

共通処理は別クラスに宣言しておけば、すっきり記述できますね。