ruby对象to_s给出了意想不到的输出

时间:2016-06-03 23:59:28

标签: ruby indicator

查看下面puts语句的输出的正确方法是什么?我为这么简单的问题道歉......我对红宝石有点生疏了。 github repo

require 'active_support'
require 'active_support/core_ext'
require 'indicators'

my_data = Indicators::Data.new(Securities::Stock.new(:symbol => 'AAPL', :start_date => '2012-08-25', :end_date => '2012-08-30').output)

puts my_data.to_s #expected to see Open,High,Low,Close for AAPL
temp=my_data.calc(:type => :sma, :params => 3)

puts temp.to_s #expected to see an RSI value for each data point from the data above

2 个答案:

答案 0 :(得分:3)

或许查看awesome_print gem。

它提供了.ai方法,可以在任何方法上调用。

一个例子:

my_obj = { a: "b" }
my_obj_as_string = my_obj.ai
puts my_obj_as_string
# ... this will print
# {
#     :a => "b"
# }
# except the result is colored. 

您可以使用ap(my_obj)将所有这些内容缩短为一步。

还有一种将对象作为HTML返回的方法。它是my_obj.ai(html: true)选项。

答案 1 :(得分:1)

如果要查看对象的内部属性,只需使用.inspect方法而不是.to_s