То, что вы действительно хотите сделать, это добавить логику, так что самое простое, что нужно сделать, это просто применить ее:
context.each do |product|
product[:price] = to_currency.call(product[:price])
end
Однако, я изучил это более глубоко и обнаружил, что вы можете do это создать класс Mustache
:
class Product < Mustache
attr_reader :name
def initialize(name, price)
@name, @price = name, price
end
def price
currency(@price)
end
private
def currency(price)
num_str = BigDecimal(price.to_s).round(2).to_s('F')
int, flt = num_str.split('.')
"$#{[int, flt.ljust(2, '0')].join('.')}"
end
end
template = <<-EOF
|Product|Price|
{{#products}}
|{{name}}|{{price}}|
{{/products}}
EOF
Mustache.render(template, products: [Product.new('Widget', 1.2), Product.new('Cog', 0.75)])
Вы можете даже динамически передавать блоки:
class Foo < Mustache
def initialize(&block)
@block = block
end
def foo
@block.call(2)
end
end
tmp = <<~TMP
Blah Blah
blah {{foo}} blah
Blah
TMP
foo = Foo.new { |x| (x + x).to_s + "asdf" }
foo.render(tmp)
Mustache.render(tmp, foo)
Я никогда не использовал Усы до этого, и я думаю, что разделение между логикой и шаблоны - это здорово!
Вот список метатегов, поддерживаемых сканером Google:
Каждая страница должна иметь собственное мета-описание, описание используется для отображения данных о странице, как только она появится на экране результатов поиска
Я не знаю, почему я получил отрицательный голос за мой комментарий, но позвольте мне уточнить, в надеется, что голосование будет отменено.
Метатег ключевых слов является важным тегом для поисковых систем. В случае музыкального сайта вы можете добавить что-то вроде следующего. Затем, когда поисковые системы изучают ваш сайт, они будут знать, с какими словами вы хотите, чтобы ваш сайт ассоциировался.
Вот пример:
Я не просматриваю все метатеги вашего описания. Позвольте мне уточнить.
Во-первых, его приятно читать (как вы знаете, эти описания будут представлены в поиске), но это не так точно! Не хорошо для вашего SEO.
Второй, хорошо для SEO, а не для читателей.
Третий, лучше первых двух, но их нужно отполировать.
PS можно добавить еще слов.