Ruby не может определить часовой пояс из нуля (ошибка аргумента)

Я написал некоторый код с ruby. Я получаю эту ошибку, когда пытаюсь запустить код:

/Users/macbook/.rvm/gems/ruby-2.2.2/gems/rufus-scheduler-3.3.3/lib/rufus/scheduler/zotime.rb:41:
  in `initialize':
  cannot determine timezone from nil (etz:nil,tnz:"+03",tzid:nil) (ArgumentError)

Редактировать:

Я использую гем электронных книг. Я добавил только потребительские ключи и токены доступа. Мой файл .rb:

require 'twitter_ebooks'

class MyBot < Ebooks::Bot
  def configure
    self.consumer_key = 'Consumer Key'
    self.consumer_secret = 'Consumer Secret'
    self.blacklist = ['tnietzschequote']

    self.delay_range = 1..6
  end

  def on_startup
    scheduler.every '24h' do
    end
  end

  def on_message(dm)
  end

  def on_follow(user)
  end

  def on_mention(tweet)
  end

  def on_timeline(tweet)
  end

  def on_favorite(user, tweet)
  end

  def on_retweet(tweet)
  end
end

MyBot.new("twitter_id") do |bot|
  bot.access_token = "Access Token" # Token connecting the app to this account
  bot.access_token_secret = "Access Token Secret" 
end

Буду рад, если мне кто-нибудь поможет.


person Ethem GÜR    schedule 29.01.2017    source источник
comment
Нам понадобится код, чтобы посмотреть...   -  person OneNeptune    schedule 29.01.2017
comment
Я добавил немного кода.   -  person Ethem GÜR    schedule 29.01.2017


Ответы (2)


явная установка ENV['TZ'] перед созданием экземпляра планировщика

ENV['TZ'] = 'Asia/Shanghai' # your time zone 
  # or
ENV['TZ'] = Time.zone.tzinfo.identifier
scheduler = Rufus::Scheduler.new
# ...

должен решить вашу проблему :)

См. https://github.com/jmettraux/rufus-scheduler#i-get-zotimerb41in-initialize-cannot-determine-timezone-from-nil

person Shajed    schedule 30.07.2018

Это весь код? Я запустил его, и он работал нормально для меня.

mb = MyBot.new("twitter_id") do |bot|
  bot.access_token = "Access Token" # Token connecting the app to this account
  bot.access_token_secret = "Access Token Secret"
end

p mb.access_token
p mb.access_token_secret

Оба они дали соответствующие значения.

Ошибка говорит о том, что возникла проблема в строке 41, но код, который вы разместили, не состоит из 41 строки. Может еще какая информация поможет...

person gazayas    schedule 01.02.2017