ruby – puppet模板删除最后一个逗号
发布时间:2020-12-17 04:23:21 所属栏目:百科 来源:网络整理
导读:我有以下puppet示例模板: { "servers" : [ { "port" : 9200,"host" : "localhost","queries" : [ % @markets.each do |market| -% { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_%= m
我有以下puppet示例模板:
{ "servers" : [ { "port" : 9200,"host" : "localhost","queries" : [ <% @markets.each do |market| -%> { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_<%= market %>:type=queryResultCache,id=org.apache.solr.search.LRUCache","attr" : [ "hits","hitratio" ] },<% end -%> ],"numQueryThreads" : 2 } ],} 将它应用于市场= [‘英国’,’FR’,’IT’],我得到以下结果: { "servers" : [ { "port" : 9200,"queries" : [ { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_UK:type=queryResultCache,{ "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_FR:type=queryResultCache,"obj" : "solr/market_IT:type=queryResultCache,],} 问题是最后一个逗号,这使得它成为无效的solr配置. 而不是应用市场.我可以使用market.map和join(‘,’). 我可以使用如下地图: <%= @markets.map{ |market| "hello_"+market }.join(',') -%> 这会打印hello_UK,hello_FR,hello_IT(注意我们在hello_IT之后没有逗号), { "servers" : [ { "port" : 9200,"queries" : [ <% @markets.map |market| -%> { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],<% }.join(',') -%> ],} 这不起作用. 那么,如何让它发挥作用? 解决方法
这实际上是一个Ruby问题.由于这是一个数组,只需将.each更改为.each_with_index即可.然后,您可以将最终逗号包装在一个检查中,以查看当前索引值是否小于索引的大小.所以
<% @markets.each_with_index |market,i| -%> 然后 }<%= ',' if i < (@markets.size - 1) %> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |