Module: NestedRecord
- Defined in:
- lib/nested_record.rb,
lib/nested_record/errors.rb,
lib/nested_record/version.rb,
lib/nested_record/lookup_const.rb
Defined Under Namespace
Modules: Concern, Macro Classes: Base, Collection, CollectionProxy, ConfigurationError, Error, InvalidTypeError, MacroRecorder, Methods, NestedAccessorsSetup, PrimaryKeyCheck, PrimaryKeyError, Setup, Type, TypeMismatchError
Constant Summary collapse
- VERSION =
'1.0.0'
Class Method Summary collapse
Class Method Details
.lookup_const(owner, type_name) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/nested_record/lookup_const.rb', line 6 def self.lookup_const(owner, type_name) if type_name.start_with?('::') ActiveSupport::Dependencies.constantize(type_name) else candidates = [] owner.name.scan(/::|$/) { candidates.unshift "#{$`}::#{type_name}" } candidates << type_name candidates.each do |candidate| constant = ActiveSupport::Dependencies.safe_constantize(candidate) return constant if candidate == constant.to_s end raise NameError.new("uninitialized constant #{candidates.first}", candidates.first) end end |