从线程脚本中删除多余的字符

时间:2016-08-23 05:47:49

标签: html ruby

我有一个ruby脚本,它检查每个微服务API的微服务版本。我尝试用bamboo运行它并将结果作为html表返回。 ... h = {} 线程= [] service = data_hash.keys service.each do | microservice | 线程<< Thread.new做 thread_id = Thread.current.object_id.to_s(36) 开始 h [thread_id] =“” port = data_hash [“#{microservice}”] ['port']  nodes =“刀搜''chef_environment:#{env}和食谱:#  {microservice}' - i 2>& 1 |尾巴-n 2“  node =%x [#{nodes}] .split  node.each do | n |    h [thread_id]<< “\ n< html>< body>< h4>节点:#{n}< / h4>< / body>< / html> \ n”    uri = URI(“http://#{n}:#{port} / service-version”)    res = Net :: HTTP.get_response(uri)    status = Net :: HTTP.get(uri)    data_hash = JSON.parse(状态)    name = data_hash ['name']    version = data_hash ['version']    h [thread_id]<< “< table>< tr>< th>#{name}:#{version}< / th>< / tr>< / table>”    结束   rescue => Ë     h [thread_id]<< “ReadTimeout错误”     下一个   结束  结束  结束 threads.each做| thread |   的Thread.join 结束 ThreadsWait.all_waits(*线程) 把h.to_a 问题是我想将名称和版本输出到html表中,如果我放线程,它会在每行之间生成一些随机字符: <表>< TR>&LT的第i; microservice1:2.10.3< / th>< / tr>< / table> bjfsw <表>< TR>&LT的第i; microservice2:2.10.8< / th>< / tr>< / table>

1 个答案:

答案 0 :(得分:1)

随机字符是使用to_s(36)生成的哈希的键。

puts h.to_a替换为

puts h.values.join("\n")

你只能看到数据,而不是钥匙。

您可以使用kernel#p hputs h.inspect来查看此内容。