ruby 对象 to_s 给出了意外的输出
ruby object to_s gives unexpected output
查看下面 puts
语句输出的正确方法是什么?对于这么简单的问题,我深表歉意……我对 ruby 有点生疏。 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
如果您想查看对象的内部属性,只需使用 .inspect
方法而不是 .to_s
。
也许看看 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)
将所有这些缩短为一个步骤。
还有一种方法可以将 return 对象设为 HTML。这是 my_obj.ai(html: true)
选项。
查看下面 puts
语句输出的正确方法是什么?对于这么简单的问题,我深表歉意……我对 ruby 有点生疏。 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
如果您想查看对象的内部属性,只需使用 .inspect
方法而不是 .to_s
。
也许看看 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)
将所有这些缩短为一个步骤。
还有一种方法可以将 return 对象设为 HTML。这是 my_obj.ai(html: true)
选项。