Module: RailsBase

Defined in:
app/models/rails_base/user_helper/totp.rb,
lib/rails_base.rb,
lib/rails_base/config.rb,
lib/rails_base/engine.rb,
lib/rails_base/version.rb,
lib/rails_base/mfa_event.rb,
lib/rails_base/request_link.rb,
lib/rails_base/configuration/app.rb,
lib/rails_base/configuration/mfa.rb,
lib/rails_base/configuration/base.rb,
lib/rails_base/configuration/totp.rb,
lib/rails_base/configuration/user.rb,
lib/rails_base/switch_user_helper.rb,
lib/rails_base/configuration/admin.rb,
lib/rails_base/configuration/owner.rb,
lib/rails_base/configuration/redis.rb,
app/helpers/rails_base/admin_helper.rb,
app/jobs/rails_base/application_job.rb,
lib/rails_base/configuration/mailer.rb,
lib/rails_base/configuration/twilio.rb,
app/models/rails_base/user_constants.rb,
lib/rails_base/configuration/templates.rb,
lib/rails_base/configuration/active_job.rb,
lib/rails_base/configuration/appearance.rb,
app/models/rails_base/application_record.rb,
lib/rails_base/configuration/display/card.rb,
lib/rails_base/configuration/display/text.rb,
app/controllers/rails_base/admin_controller.rb,
lib/rails_base/configuration/authentication.rb,
lib/rails_base/configuration/display/footer.rb,
lib/rails_base/configuration/display/header.rb,
lib/rails_base/configuration/display/navbar.rb,
lib/rails_base/configuration/exceptions_app.rb,
lib/rails_base/configuration/login_behavior.rb,
app/controllers/rails_base/errors_controller.rb,
app/services/rails_base/admin_risky_mfa_send.rb,
lib/rails_base/configuration/display/bg_light.rb,
lib/rails_base/configuration/display/btn_dark.rb,
lib/rails_base/configuration/display/btn_info.rb,
app/services/rails_base/admin_update_attribute.rb,
lib/rails_base/configuration/display/btn_light.rb,
app/helpers/rails_base/capture_reference_helper.rb,
lib/rails_base/configuration/display/btn_danger.rb,
lib/rails_base/configuration/display/table_body.rb,
lib/rails_base/configuration/display/back_to_top.rb,
lib/rails_base/configuration/display/btn_primary.rb,
lib/rails_base/configuration/display/btn_success.rb,
lib/rails_base/configuration/display/btn_warning.rb,
app/controllers/rails_base/switch_user_controller.rb,
lib/rails_base/configuration/display/table_header.rb,
lib/rails_base/configuration/display/btn_secondary.rb,
app/controllers/rails_base/user_settings_controller.rb,
app/models/rails_base/user_helper/totp/class_options.rb,
lib/rails_base/configuration/display/background_color.rb,
app/models/rails_base/user_helper/totp/backup_method_options.rb,
app/models/rails_base/user_helper/totp/consume_method_options.rb,
app/controllers/rails_base/secondary_authentication_controller.rb

Overview

Defined Under Namespace

Modules: Admin, AdminHelper, AppearanceHelper, ApplicationHelper, Authentication, CaptureReferenceHelper, Configuration, MailerKwargInject, Mfa, MfaAuthHelper, SecondaryAuthenticationHelper, ServiceLogging, SwitchUserHelper, UserConstants, UserFieldValidators, UserHelper, UserSettingsHelper Classes: AdminController, AdminRiskyMfaSend, AdminStruct, AdminUpdateAttribute, ApplicationJob, ApplicationMailer, ApplicationRecord, Config, EmailChange, EmailVerificationMailer, Encryption, Engine, ErrorsController, EventMailer, MfaEvent, NameChange, RequestLink, SecondaryAuthenticationController, ServiceBase, SwitchUserController, UserSettingsController

Constant Summary collapse

MAJOR =
"0"
MINOR =
"81"
PATCH =
"1"
VERSION =
"#{MAJOR}.#{MINOR}.#{PATCH}"

Class Method Summary collapse

Class Method Details

.___execute_initializer___?Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/rails_base.rb', line 23

def self.___execute_initializer___?
  # Fixes rails 6 changes to ARGV's -- dont rerun initializers during rake tasks
  return false if Rake.application.top_level_tasks.any? { |task| task.include?(":") } rescue nil

  # Only execute when not doing DB actions
  boolean = defined?(ARGV) ? true : false  # for when no ARGVs are provided, we know its a railsc or rails s explicit
  boolean = false if boolean && ARGV[0]&.include?('db') # when its the DB rake tasks
  boolean = false if boolean && ARGV[0]&.include?('asset') # when its an asset
  boolean = false if boolean && ARGV[0]&.include?(':') # else this delim should never be included
  boolean = false if ENV['SKIP_CUSTOM_INIT'] == 'true' # explicitly set the variable to skip shit

  boolean
end

.app_nameObject



41
42
43
# File 'lib/rails_base.rb', line 41

def self.app_name
  config.app.app_name
end

.appearanceObject



66
67
68
# File 'lib/rails_base.rb', line 66

def self.appearance
  @appearance ||= config.appearance
end

.configObject



62
63
64
# File 'lib/rails_base.rb', line 62

def self.config
  @config ||= RailsBase::Config.instance
end

.configure {|config| ... } ⇒ Object

Yields:



56
57
58
59
60
# File 'lib/rails_base.rb', line 56

def self.configure(&block)
  yield(config) if block_given?

  config.validate_configs!
end

.default_app_nameObject



45
46
47
# File 'lib/rails_base.rb', line 45

def self.default_app_name
  ::Rails.application.class.module_parent_name
end


7
8
9
# File 'lib/rails_base/version.rb', line 7

def self.print_version
  $stdout.puts VERSION
end

.reloadable_paths!(relative_path: nil, only_files: [], skip_files: []) ⇒ Object

This method allows the downstream service to explicitly set the paths to reload This can be very useful if you want to add new methods to already defined classes from RailsBase EG: You want to add a new method to the User Model EG: You want to overload a method for the services/rails_base/name_change.rb



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/rails_base.rb', line 78

def self.reloadable_paths!(relative_path: nil, only_files: [], skip_files: [])
  unless Array === skip_files
    raise ArgumentError, "When `skip_files` provided, it is expected to be an array"
  end

  unless Array === only_files
    raise ArgumentError, "When `only_files` provided, it is expected to be an array"
  end

  override_files = if relative_path
    Dir.glob("#{Rails.root.join(relative_path)}/**/*.rb")
  elsif only_files.presence
    only_files.map { Rails.root.join(_1) }
  else
    []
  end

  Rails.autoloaders.main.ignore(*override_files)

  Rails.configuration.to_prepare do
    override_files.sort.each do |override|
      if skip_files.any? { override.include?(_1) }
        next
      end

      load override
    end
  end
end

.reset_config!Object



70
71
72
# File 'lib/rails_base.rb', line 70

def self.reset_config!
  config.reset_config!
end

.route_exist?(path) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
52
53
54
# File 'lib/rails_base.rb', line 49

def self.route_exist?(path)
  Rails.application.routes.recognize_path(path)
  true
rescue StandardError, ActionController::RoutingError
  false
end

.url_routesObject



37
38
39
# File 'lib/rails_base.rb', line 37

def self.url_routes
  Rails.application.routes.url_helpers
end