module RailsDrivers::Setup
Constants
- DRIVER_PATHS
Public Instance Methods
setup_paths()
click to toggle source
This allows Rails to find models, views, controllers, etc inside of drivers.
# File lib/rails_drivers/setup.rb, line 20 def setup_paths # This REPLACE_DEFAULT_PATH_WITH_DRIVER constant gets defined by bin/driver when we want # to run a command in the context of a driver instead of the main rails app. if defined?(REPLACE_DEFAULT_PATH_WITH_DRIVER) replace_rails_paths_with_driver(REPLACE_DEFAULT_PATH_WITH_DRIVER) else add_every_driver_to_rails_paths end end
Private Instance Methods
add_every_driver_to_rails_paths()
click to toggle source
# File lib/rails_drivers/setup.rb, line 47 def add_every_driver_to_rails_paths # rubocop:disable Metrics/AbcSize rails_config.autoload_paths << "#{rails_config.root}/drivers" Dir['drivers/*'].each do |driver| DRIVER_PATHS.each do |path| rails_config.paths[path] << "#{driver}/#{path}" end # We want to autoload driver/*/lib folders rails_config.autoload_paths += [ "#{rails_config.root}/#{driver}/lib" ] end end
rails_config()
click to toggle source
# File lib/rails_drivers/setup.rb, line 32 def rails_config Rails.application.config end
replace_rails_paths_with_driver(driver_name)
click to toggle source
# File lib/rails_drivers/setup.rb, line 36 def replace_rails_paths_with_driver(driver_name) rails_config.autoload_paths << "#{rails_config.root}/drivers" DRIVER_PATHS.each do |path| rails_config.paths[path] = "drivers/#{driver_name}/#{path}" rails_config.autoload_paths += [ "#{rails_config.root}/drivers/#{driver_name}/lib" ] end end