Если вы не передадите блок get_historical_quotes_days
, вы получите массив обратно. Затем вы можете использовать map
, чтобы получить массив результатов join
.
Как правило, начиная с ruby 1.8.7, большинство методов итераторов возвращают перечислимое значение при вызове без блока. Так что если foo.bar {|x| puts x}
выведет значения 1,2,3, то enum = foo.bar
вернет перечислимое значение 1,2,3. И если вы сделаете arr = foo.bar.to_a
, вы получите массив [1,2,3]
.
Если есть метод итератора, который этого не делает (возможно, из какой-то библиотеки, которая не придерживается этого соглашения), вы можете использовать foo.enum_for(:bar)
для получения перечислимого объекта, содержащего все значения, полученные из bar
.
Итак, гипотетически, если get_historical_quotes_days
еще не вернул массив, вы можете использовать YahooFinance.enum_for(:get_historical_quotes_days).map {|row| row.join(",") }
, чтобы получить то, что вы хотите.