module Reflect
Constants
- Error
Public Class Methods
call(subject, constant_name, strict: nil, ancestors: nil)
click to toggle source
# File lib/reflect/reflect.rb, line 4 def self.call(subject, constant_name, strict: nil, ancestors: nil) Reflection.build(subject, constant_name, strict: strict, ancestors: ancestors) end
constant(subject)
click to toggle source
# File lib/reflect/reflect.rb, line 8 def self.constant(subject) [Module, Class].include?(subject.class) ? subject : subject.class end
constant?(subject_constant, constant_name, ancestors: nil)
click to toggle source
# File lib/reflect/reflect.rb, line 34 def self.constant?(subject_constant, constant_name, ancestors: nil) ancestors = Reflection::Default.ancestors if ancestors.nil? subject_constant.const_defined?(constant_name, ancestors) end
get_constant(subject_constant, constant_name, strict: nil, ancestors: nil)
click to toggle source
# File lib/reflect/reflect.rb, line 12 def self.get_constant(subject_constant, constant_name, strict: nil, ancestors: nil) strict = Reflection::Default.strict if strict.nil? ancestors = Reflection::Default.ancestors if ancestors.nil? constant = nil if constant?(subject_constant, constant_name, ancestors: ancestors) constant = get_constant!(subject_constant, constant_name, ancestors: ancestors) end if constant.nil? && strict raise Reflect::Error, "Namespace #{constant_name} is not defined in #{subject_constant.name}" end constant end
get_constant!(subject_constant, constant_name, ancestors: nil)
click to toggle source
# File lib/reflect/reflect.rb, line 29 def self.get_constant!(subject_constant, constant_name, ancestors: nil) ancestors = Reflection::Default.ancestors if ancestors.nil? subject_constant.const_get(constant_name, ancestors) end