Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

SlimのSplat attributes「*」で要素代入を楽にやる

Slimでタグにクラスをくっつける場合、配列やハッシュで渡す事ができます。

a.menu class="highlight" href="http://slim-lang.com/" Slim-lang.com

とやれば、

<a class="menu highlight" href="http://slim-lang.com/">Slim-lang.com</a>

と、よろしくコンバートしてくれます。

ここで、Splat attributesという機能をつかい、
あらかじめグループ化しておくと非常に楽になります。

ruby:
  class Node
    attr_accessor :id, :name, :path
    def initialize(id, path, name)
      @id   = id
      @name = name
      @path = path
    end
  end

- node = Node.new(1234, "Hello", "https://duckduckgo.com/")
.node_info*{'node_id'=>node.id, 'node_url'=>node.path} = node.name

dev.node_info

<div class="node_info" node_id="1234" node_url="https://duckduckgo.com/">Shuzo_Kino</div><dev class="node_info"></dev>

といった感じで展開されます。

大量に弄る場合には非常に有効な手段です。