Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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>

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

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