module ClassExt
Public Instance Methods
class_exists?(name)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 20 def class_exists?(name) is_class? get_module(name) rescue return false end
find_first_class(*names)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 57 def find_first_class *names classes = names.flatten.compact.uniq.inject([]) do |res, class_name| found_class = try_class(class_name.to_s.camelize) res << found_class if found_class res end raise ClassNotFoundError, "Not one Class for any of: #{names} is currently loaded" if classes.empty? classes.first end
find_first_module(*names)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 67 def find_first_module *names modules = names.flatten.compact.uniq.inject([]) do |res, class_name| found_class = try_module(class_name.to_s.camelize) res << found_class if found_class res end raise ModuleNotFoundError, "Not one Module for any of: #{names} is currently loaded" if modules.empty? modules.first end
get_module(name)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 5 def get_module name # Module.const_get(name) name.to_s.camelize.constantize rescue nil end
is_class?(clazz)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 12 def is_class?(clazz) clazz.is_a?(Class) && (clazz.respond_to? :new) end
is_module?(clazz)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 16 def is_module?(clazz) clazz.is_a?(Module) && !(clazz.respond_to? :new) end
module_exists?(name)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 26 def module_exists?(name) is_module? get_module(name) rescue NameError return false end
try_class(name)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 32 def try_class name return name if name.kind_of?(Class) found = get_module(name) if name.is_a?(String) || name.is_a?(Symbol) return found if found.is_a?(Class) rescue false end
try_module(name)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 40 def try_module name return name if name.kind_of?(Module) found = get_module(name.to_s) if name.is_a?(String) || name.is_a?(Symbol) return found if found.is_a?(Module) rescue false end
try_module_only(name)
click to toggle source
# File lib/sweetloader/class_ext.rb, line 48 def try_module_only name return name if is_module?(name) found = get_module(name) if name.is_a?(String) || name.is_a?(Symbol) return found if is_module?(found) rescue false end