Module: ActiveItem::ModelLoader

Included in:
Associations, Relation
Defined in:
lib/active_item/model_loader.rb

Overview

Utility for resolving association class names to constants, attempting common model file paths when the constant is not yet loaded.

Instance Method Summary collapse

Instance Method Details

#safe_constantize_model(class_name) ⇒ Object

Raises:

  • (ArgumentError)


9
10
11
12
13
# File 'lib/active_item/model_loader.rb', line 9

def safe_constantize_model(class_name)
  raise ArgumentError, "Invalid class name: #{class_name}" unless class_name.match?(/\A[A-Z][A-Za-z0-9]*(::[A-Z][A-Za-z0-9]*)*\z/)

  class_name.safe_constantize || raise(NameError, "Unknown model: #{class_name}")
end