2016-06-03 5 views
0

Каков правильный способ просмотра вывода инструкций puts ниже? Приношу свои извинения за такой простой вопрос ... Я немного ржавый на рубине. github reporuby ​​object to_s дает неожиданный вывод

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 

ответ

0

Просто используйте .inspect метод вместо .to_s, если вы хотите, чтобы увидеть внутренние свойства объектов.

+0

Как получить доступ к атрибутам? например, если 'temp.inspect' возвращает' # ' – Rilcon42

+0

' puts temp @ output 'не работает – Rilcon42

+2

' puts temp @ output' - это не какой-либо синтаксис Ruby. Если 'output' является методом' temp', используйте 'temp.output'. Если 'output' является переменной экземпляра, попробуйте' temp.instance_variable_get ("@ output") ' –

2

Возможно, посмотрите на драгоценный камень awesome_print.

Он предоставляет метод .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).