printercu/telegram-bot

View on GitHub
lib/telegram/bot/railtie.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'telegram/bot/routes_helper'

module Telegram
  module Bot
    class Railtie < Rails::Railtie
      config.telegram_updates_controller = ActiveSupport::OrderedOptions.new

      rake_tasks do
        load 'tasks/telegram-bot.rake'
      end

      config.before_initialize do
        ::ActionDispatch::Routing::Mapper.include RoutesHelper
      end

      initializer 'telegram.bot.updates_controller.set_config' do |app|
        options = app.config.telegram_updates_controller

        ActiveSupport.on_load('telegram.bot.updates_controller') do
          self.logger = options.logger || Rails.logger
          self.session_store = options.session_store if options.session_store
        end
      end

      initializer 'telegram.bot.updates_controller.add_ar_runtime' do
        ActiveSupport.on_load('telegram.bot.updates_controller') do
          if defined?(ActiveRecord::Railties::ControllerRuntime)
            prepend ActiveRecord::Railties::ControllerRuntime
            extend ActiveRecord::Railties::ControllerRuntime::ClassMethods
          end
        end
      end
    end
  end
end