我有,我正在努力恢復到鞋子整數和字符串蒙上了返回的數組,以適當的值
Shoes.setup do
gem 'snmp'
end
class SNMPManager
require 'snmp'
include SNMP
attr_accessor :hostname, :framerate
def initialize(params = {})
@hostname = params.fetch(:hostname, 'localhost')
@framerate = params.fetch(:framerate, 25)
end
def getValues
Manager.open(:host => @hostname, :mib_modules => ["SNMPv2-MIB"]) do |manager|
poolArray = []
ifTable = ObjectId.new("1.3.6.1.4.1.15248.2.5.1.3.1")
manager.walk(ifTable) do |row|
poolArray.push(row.inspect)
end
groups = poolArray.group_by{ |s| s.split(',').first[/\d+$/] }
@values = groups.map{ |key, ary| ary.map{ |s| s[/value=(\S+)/, 1] } }
end
end
def to_s
return @values
end
end
Shoes.app do
#@hostname = edit_line
#man =SNMPManager.new(:host => @hostname)
man = SNMPManager.new
man.getValues
puts 'SNMP Space Monitor'
man.to_s.each {|v|
@note = para "#{v[1]} \t(Pool: #{v[0]}) \tCapacity: #{v[3].to_i} \tFree Protons: #{v[2].to_i} \tPercent Free: %#{(v[3].to_f/v[2].to_f*100).round(2)}"
}
end
出於某種原因,鞋業的數組下面的代碼片段顯示的是什麼樣子:
但是,如果我正常運行ruby腳本,並輸出put,它顯示正確,並正確計算響應。 我知道我錯過了一些明顯的東西,但看不到它是什麼。 我想將數組強制轉換爲另一個數組,但似乎這樣做是爲了全部。
對setup()的調用會導致一個錯誤:'未初始化的常量Encoding :: US_ASCII'。我在鞋子郵寄名單上問了一個關於鞋子的問題,顯然鞋子幾乎是一個獨立包裝,而鞋子導入其他模塊並不是很好。另外,你的to_s()方法仍然不返回一個字符串。 – 7stud