diff --git a/lib/telegram/bot/updates_controller/instrumentation.rb b/lib/telegram/bot/updates_controller/instrumentation.rb index 3b6eb1f..89d0e1a 100644 --- a/lib/telegram/bot/updates_controller/instrumentation.rb +++ b/lib/telegram/bot/updates_controller/instrumentation.rb @@ -6,7 +6,7 @@ module Telegram module Instrumentation class << self def prepended(base) - base.config_accessor :logger + base.send :config_accessor, :logger base.extend ClassMethods end diff --git a/lib/telegram/bot/updates_poller.rb b/lib/telegram/bot/updates_poller.rb index 84c61f8..825dcdb 100644 --- a/lib/telegram/bot/updates_poller.rb +++ b/lib/telegram/bot/updates_poller.rb @@ -77,11 +77,25 @@ module Telegram def reload! return yield unless reload - ActionDispatch::Reloader.prepare! - if controller.is_a?(Class) && controller.name - @controller = Object.const_get(controller.name) + reloading_code do + if controller.is_a?(Class) && controller.name + @controller = Object.const_get(controller.name) + end + yield + end + end + + if defined?(Rails) && Rails.application.respond_to?(:reloader) + def reloading_code + Rails.application.reloader.wrap do + yield + end + end + else + def reloading_code + ActionDispatch::Reloader.prepare! + yield.tap { ActionDispatch::Reloader.cleanup! } end - yield.tap { ActionDispatch::Reloader.cleanup! } end end end diff --git a/telegram-bot.gemspec b/telegram-bot.gemspec index ff4e46f..d26ae38 100644 --- a/telegram-bot.gemspec +++ b/telegram-bot.gemspec @@ -20,8 +20,8 @@ Gem::Specification.new do |spec| spec.required_ruby_version = '~> 2.0' - spec.add_dependency 'activesupport', '~> 4.0' - spec.add_dependency 'actionpack', '~> 4.0' + spec.add_dependency 'activesupport', '>= 4.0', '< 5.1' + spec.add_dependency 'actionpack', '>= 4.0', '< 5.1' spec.add_dependency 'httpclient', '~> 2.7' spec.add_development_dependency 'bundler', '~> 1.11' spec.add_development_dependency 'rake', '~> 10.0'