module SorbetRails::Utils

typed: false

Public Class Methods

rails_eager_load_all!() click to toggle source
# File lib/sorbet-rails/utils.rb, line 7
def self.rails_eager_load_all!
  # need to eager load to see all models
  Rails.configuration.eager_load_namespaces.each { |ns| ns.try(:eager_load!) }
  # Rails 6.0 change the loading logic to use Zeitwerk
  # https://github.com/rails/rails/blob/master/railties/lib/rails/application/finisher.rb#L116
  # But this is not applied to Rails.application.eager_load! method
  Zeitwerk::Loader.eager_load_all if defined?(Zeitwerk)
  # Let's eager_load more stuff so that we have the full picture of the runtime environment.
  # Also only applicable to Rails 6.
  if Rails.respond_to?(:autoloaders)
    Rails.autoloaders.each(&:eager_load)
  end
end
valid_method_name?(method_name) click to toggle source
# File lib/sorbet-rails/utils.rb, line 22
def self.valid_method_name?(method_name)
  !!method_name.match(/^[A-z][A-z0-9_]*[!?=]?$/)
end