如何在HAML文件中运行一长串ruby代码,包括一个数组?

时间:2015-03-29 01:27:30

标签: ruby arrays haml hammer

我有一些Ruby正确输出为.rb文件。但是,我想在HAML文件中包含等效代码,而我无法正确输出它。我曾尝试以各种方式重新格式化,但未能弄清楚,也没有找到我在另一个问题中寻找的确切内容。

我正在使用存储在数组数组中的元素生成重复的div块。我想在.row下分组3组.class对象。我必须制作这些的BUNCH,所以我想尽可能自动化。现在我可以在sublime文本中运行ruby代码,然后将格式化的HAML复制+粘贴到我的HAML页面中...但似乎我应该能够在线进行!

这是Ruby代码:

gfys = [
  [ #ROW 1
    {"Title"=>"MOVE", "ID"=>"#gfy0a", "Desc"=>"Use either analog stick or directional buttons."},
    {"Title"=>"SHOOT", "ID"=>"#gfy0b", "Desc"=>"Press any button; pull any trigger."},
    {"Title"=>"PUSH", "ID"=>"#gfy0c", "Desc"=>"Projectiles displace the ball on impact."}
  ],
  [ #ROW 2
    {"Title"=>"AIM", "ID"=>"#gfy1a", "Desc"=>"Projectiles are triangular. Balls are circular."},
    {"Title"=>"LAUNCH", "ID"=>"#gfy1b", "Desc"=>"Shoot while moving for faster projectiles."},
    {"Title"=>"SCORE", "ID"=>"#gfy1c", "Desc"=>"Push a ball into the opposing goal to earn a point."}
  ]
]

gfys.each do |group|
  puts "// ROW #{gfys.index(group)}"
  puts ".row"
  group.each do |gfy|
    puts "\t.class
    .class2
      %h2
        #{gfy["Title"]}
      #{gfy["ID"]}.class
      %p
        #{gfy["Desc"]}"
  end
end

这正确输出到HAML代码:

// ROW 0
.row
  .class
    .class2
      %h2
        MOVE
      #gfy0a.class
      %p
        Use either analog stick or directional buttons.
  .class
    .class2
      %h2
        SHOOT
      #gfy0b.class
      %p
        Press any button; pull any trigger.
  .class
    .class2
      %h2
        PUSH
      #gfy0c.class
      %p
        Projectiles displace the ball on impact.
// ROW 1
.row
  .class
    .class2
      %h2
        AIM
      #gfy1a.class
      %p
        Projectiles are triangular. Balls are circular.
  .class
    .class2
      %h2
        LAUNCH
      #gfy1b.class
      %p
        Shoot while moving for faster projectiles.
  .class
    .class2
      %h2
        SCORE
      #gfy1c.class
      %p
        Push a ball into the opposing goal to earn a point.

现在,只需在HAML文件中的:ruby过滤器下运行代码对我来说不起作用。它似乎将整个数组打印到页面中,然后其他一切都变得愚蠢。取出END标签,并考虑HAML试图“简化”代码的尝试不起作用。在代码不适合我之前,在适当的位置放置 - 或=字符。

我知道数组中的格式化会使情况变得复杂,但是将数组折叠到一行也无济于事。

最后,我在使用Hammer.app将其上传到页面之前进行了预编译,如果这很重要的话。

我在疯狂吗?或者我错过了什么?我真的很感谢你的帮助!

0 个答案:

没有答案