Как избежать отображения результатов запроса API при назначении переменной - PullRequest
0 голосов
/ 20 января 2020

Я использую камень google-api-client для взаимодействия с Календарем Google.

При сохранении списка таких событий:

@events = calendar.list_events(@tmpcalendar)

Вывод calendar.list_events(@tmpcalendar) равен огромный . Я просто хочу сохранить результат в @events (не нужно отображать огромный контент).

Я пробовал: $output.close, перенаправление на /dev/null, добавление ;nil; но огромный результат отображается в любом случае.

Чтобы воспроизвести это (с помощью работающего решения), вы можете

large_text = <<~EOS
  ...huge text here
  ...huge text here
  ...huge text here
  ...
  ...huge text here
EOS

eventos_good = large_text ; nil  # Assigns the content, does not display it
eventos_annoying = large_text    # Assigns the content, but displays the huge text

Это работает для этого случая, но не работает с описанным выше сценарием (вызов API).

Можно ли избежать такого огромного вывода только для присвоения этой переменной выше?

Спасибо.

Ответы [ 2 ]

1 голос
/ 20 января 2020

Похоже, из вашего кода вы используете гем Google API Client? Какая версия?

Если вы не используете этот гем в приложении Rails, то по умолчанию все журналы будут по умолчанию $stdout: https://github.com/googleapis/google-api-ruby-client/blob/1135e74c4896d4ec8aa02c14e3532d9a14514815/lib/google/apis.rb#L34 -L40

Если вы хотите полностью отключить запись в журнал, переопределите регистратор:

require 'logger'

Google::Apis.logger = Logger.new(nil)
0 голосов
/ 20 января 2020

Согласно документации , в геме Google API по умолчанию включена запись в журнал отладки. Чтобы уменьшить выход, установите рычаг регистрации на что-то более высокое:

Google::Apis.logger.level = Logger::FATAL 
# INFO, WARN, ERROR, FATAL each decrease the output. 
# FATAL is the most restrictive.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...