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.1.1'
Class Method Summary
collapse
Class Method Details
.constantize(type_name) ⇒ Object
6
7
8
|
# File 'lib/nested_record/lookup_const.rb', line 6
def self.constantize(type_name)
ActiveSupport::Dependencies.constantize(type_name)
end
|
.lookup_const(owner, type_name) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/nested_record/lookup_const.rb', line 24
def self.lookup_const(owner, type_name)
if type_name.start_with?('::')
NestedRecord.constantize(type_name)
else
candidates = []
owner.name.scan(/::|$/) { candidates.unshift "#{$`}::#{type_name}" }
candidates << type_name
candidates.each do |candidate|
constant = NestedRecord.safe_constantize(candidate)
return constant if candidate == constant.to_s
end
raise NameError.new("uninitialized constant #{candidates.first}", candidates.first)
end
end
|
.safe_constantize(type_name) ⇒ Object
10
11
12
|
# File 'lib/nested_record/lookup_const.rb', line 10
def self.safe_constantize(type_name)
ActiveSupport::Dependencies.safe_constantize(type_name)
end
|