require "rails" require "action_view" require "will_paginate" require 'jquery-rails' require 'rails_connector/configuration' module ::RailsConnector class Engine < Rails::Engine #:nodoc: config.to_prepare { RailsConnector::Configuration.to_prepare } config.after_initialize { RailsConnector::Configuration.after_initialize } # make sure our exceptions cause an adequate error page and http status code config.action_dispatch.rescue_responses.merge!("RailsConnector::ResourceNotFound" => :not_found) initializer "rails_connector.add_cms_routing_paths", :after => :add_routing_paths do |app| cms_route = File.expand_path("cms_routes.rb", paths['config'].to_a.first) app.routes_reloader.paths.push(cms_route) end # Expose rails connector runtime to controller for logging. initializer "rails_connector.log_runtime" do |app| runtime = begin RailsConnector::ControllerRuntime rescue NameError nil end if runtime RailsConnector::LogSubscriber.attach_to :rails_connector ActiveSupport.on_load(:action_controller) do include runtime end end end initializer "rails_connector.configure_database" do |app| RailsConnector::Configuration.configure_cms_database end initializer "rails_connector.liquid_support" do # Liquid Gem integration ActionView::Template.register_template_handler( :liquid, ::RailsConnector::LiquidSupport::LiquidTemplateHandler ) if Rails.env.test? && ::RailsConnector::LiquidSupport.raise_template_errors == nil ::RailsConnector::LiquidSupport.raise_template_errors = true end end initializer "rails_connector.routing_helpers" do if Rails.env == 'test' ActionDispatch::TestRequest.__send__(:include, RailsConnector::CmsTestRequest) end ActionController::Base.__send__(:include, CmsRoutingHelper) ActionView::Base.__send__(:include, CmsRoutingHelper) end initializer "rails_connector.config_local", :after => :load_config_initializers, :before => :engines_blank_point do Dir.glob(Rails.root.join('config', 'local', '*.rb')).each do |file| require file end end config.autoload_paths += paths['lib'].to_a config.autoload_once_paths += paths['app/helpers'].to_a + paths['lib'].to_a RailsConnector.rack_middlewares.each { |middleware| config.app_middleware.use middleware } end end