module ActiveRecord::ModelSpaces::Util
Public Instance Methods
all_model_superclasses(klass)
click to toggle source
returns all model superclasses upto but not including ActiveRecord::Base
# File lib/active_record/model_spaces/util.rb, line 42 def all_model_superclasses(klass) superclasses = klass.ancestors.grep(Class).sort.take_while{|k| k < ActiveRecord::Base} end
class_for_classname(classname)
click to toggle source
# File lib/active_record/model_spaces/util.rb, line 29 def class_for_classname(classname) begin model_from_name(classname) rescue false end end
class_from_classname(classname)
click to toggle source
# File lib/active_record/model_spaces/util.rb, line 37 def class_from_classname(classname) class_for_classname(classname) || require_for_classname(classname) end
is_active_record_model?(klass)
click to toggle source
# File lib/active_record/model_spaces/util.rb, line 46 def is_active_record_model?(klass) superclasses = klass.ancestors.grep(Class).sort.take_while{|k| k <= ActiveRecord::Base} superclasses.length > 1 && superclasses.include?(ActiveRecord::Base) end
model_from_name(key)
click to toggle source
# File lib/active_record/model_spaces/util.rb, line 12 def model_from_name(key) if key.is_a? String Kernel.eval(key) else key end end
name_from_model(model)
click to toggle source
# File lib/active_record/model_spaces/util.rb, line 8 def name_from_model(model) model.to_s end
require_for_classname(classname)
click to toggle source
# File lib/active_record/model_spaces/util.rb, line 20 def require_for_classname(classname) begin Kernel.require ActiveSupport::Inflector.underscore(classname) Kernel.eval(classname) rescue Exception=>e false end end