如何将图标嵌入到Ruby宝石Squib中的文本中?

时间:2015-08-03 18:37:19

标签: ruby squib

我将这个块添加到了我的deck.rb:

text(str: 'Gain 1 :tribute:') do |embed|
embed.svg key: ':tribute:', file: 'tribute.svg'
end

但是,这会让我们获得1 [我的偶像]"进入每张卡片的左上角,但不是卡片文字所在的位置"获得1个致敬。"

如果我添加这一行,试图让它指定" Ability"我的.csv文件中的列:

%w(Ability).each do |key|

然后我收到一条错误消息:

  

"语法错误,意外的输入结束,期待keyword_end。"

我需要添加到我的deck.rb中,确切地说,为了使其能够使用tribute.svg图标,只要“能力”栏中的卡片有文字,"获得1致敬" ?

这是我当前的deck.rb:

require 'squib'
require 'game_icons'

Squib::Deck.new(cards: 4, layout: %w(hand.yml layout.yml)) do
  background color: '#FFFFFF'
  data = csv file: 'country.csv'
  png file: data['Art'], layout: 'Art'

  %w(Title Ability Quote Type Subtype).each do |key|
    text str: data[key], layout: key, markup: true
  end

  %w(Tribute Power Dominion).each do |key|
    svg file: "#{key.downcase}.svg", layout: "#{key}Icon"
    text str: data[key], layout: key
  end

  text(str: 'Gain 1 :tribute:', x: 275, y: 745) do |embed|
    embed.svg key: ':tribute:', file: 'tribute.svg'
  end

  save_png prefix: 'country_'
end

1 个答案:

答案 0 :(得分:1)

text方法需要指定x和y。像这样:

text(str: 'Gain 1 :tribute:', x: 300, y: 500) do |embed| embed.svg key: ':tribute:', file: 'tribute.svg' end

至于语法错误,每个do都需要end,因为您正在定义一个块。虽然这部分似乎与你问题的第一部分无关。剪掉的%w(Ability).each对我来说似乎很愚蠢,因为它只是迭代一个1元素的数组。