Class: Apartment::Railtie
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- Apartment::Railtie
- Defined in:
- lib/apartment/railtie.rb
Class Method Summary collapse
-
.header_trust_warning?(elevator_class, opts) ⇒ Boolean
Whether the Header elevator trust warning should fire.
-
.resolve_elevator_class(elevator) ⇒ Object
Resolve an elevator symbol/string to its class.
Class Method Details
.header_trust_warning?(elevator_class, opts) ⇒ Boolean
Whether the Header elevator trust warning should fire. Class method for testability.
70 71 72 |
# File 'lib/apartment/railtie.rb', line 70 def self.header_trust_warning?(elevator_class, opts) elevator_class <= Apartment::Elevators::Header && !opts[:trusted] end |
.resolve_elevator_class(elevator) ⇒ Object
Resolve an elevator symbol/string to its class. Class method for testability. Accepts a Class directly (pass-through) or a symbol/string for lookup.
76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/apartment/railtie.rb', line 76 def self.resolve_elevator_class(elevator) return elevator if elevator.is_a?(Class) class_name = "Apartment::Elevators::#{elevator.to_s.camelize}" require("apartment/elevators/#{elevator}") class_name.constantize rescue NameError, LoadError => e available = Dir[File.join(__dir__, 'elevators', '*.rb')] .filter_map { |f| File.basename(f, '.rb').then { |name| name unless name == 'generic' } } raise(Apartment::ConfigurationError, "Unknown elevator '#{elevator}': #{e.}. " \ "Available elevators: #{available.join(', ')}") end |