Module: RailsBase

Defined in:
lib/rails_base.rb,
lib/rails_base/config.rb,
lib/rails_base/engine.rb,
lib/rails_base/version.rb,
lib/rails_base/configuration/app.rb,
lib/rails_base/configuration/mfa.rb,
lib/rails_base/configuration/base.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,
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/controllers/rails_base/mfa_auth_controller.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,
lib/rails_base/configuration/display/background_color.rb,
app/controllers/rails_base/secondary_authentication_controller.rb

Defined Under Namespace

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

Constant Summary collapse

MAJOR =
'0'
MINOR =
'75'
PATCH =
'6'
VERSION =
"#{MAJOR}.#{MINOR}.#{PATCH}"

Class Method Summary collapse

Class Method Details

.___execute_initializer___?Boolean

Returns:

  • (Boolean)


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

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



39
40
41
# File 'lib/rails_base.rb', line 39

def self.app_name
  config.app.app_name
end

.appearanceObject



64
65
66
# File 'lib/rails_base.rb', line 64

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

.configObject



60
61
62
# File 'lib/rails_base.rb', line 60

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

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

Yields:



54
55
56
57
58
# File 'lib/rails_base.rb', line 54

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

  config.validate_configs!
end

.default_app_nameObject



43
44
45
# File 'lib/rails_base.rb', line 43

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



76
77
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
# File 'lib/rails_base.rb', line 76

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



68
69
70
# File 'lib/rails_base.rb', line 68

def self.reset_config!
  config.reset_config!
end

.route_exist?(path) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
51
52
# File 'lib/rails_base.rb', line 47

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

.url_routesObject



35
36
37
# File 'lib/rails_base.rb', line 35

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