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