ORMSupport

Provides a number of basc convenience methods for working with Object Relational Mapping.

Methods
Public Class methods
default_key(k="~".to_sym)
# File lib/facets/more/ormsupport.rb, line 52
  def self.default_key(k="~".to_sym)
    unless k == "~".to_sym
      @default_key = k.to_s
    else
      @default_key ||= '_id'
    end
  end
default_system(s="~".to_sym)

++

 class level
# File lib/facets/more/ormsupport.rb, line 44
  def self.default_system(s="~".to_sym)
    unless s == "~".to_sym
      @default_system = x.to_sym
    else
      @default_system ||= :og
    end
  end
Public Instance methods
class_name( sys=nil )

Alias for classname

classify( sys=:og )

Like classname, but returns the actual class.

# File lib/facets/more/ormsupport.rb, line 103
  def classify( sys=:og )
    findclass( classname( sys ) )
  end
classname( sys=nil )

Converts a table name into a class name.

This method is also aliased as class_name
# File lib/facets/more/ormsupport.rb, line 83
  def classname( sys=nil )
    sys ||= ORMSupport.default_system
    case sys.to_sym
    when :rails, :ar, :activerecord
      cn = to_s.singular.camelize
    when :nitro, :og
      cn = to_s.gsub(/_/, '::').camelize
    else
      cn = to_s.gsub(/_/, '::').camelize
    end
    k = findclass( cn )
    return k.name if k
    return cn
  end
foreign_key( key=nil )

Alias for keyname

key_name( key=nil )

Alias for keyname

keyname( key=nil )

This is good for generating database key/id field names from class names. In essense, it demodulizes, underscores and appends ‘id’.

This method is also aliased as key_name foreign_key
# File lib/facets/more/ormsupport.rb, line 118
  def keyname( key=nil )
    key ||= ORMSupport.default_key
    case key.to_sym
    when :_id
      self.basename.underscore + "_id"
    when :id
      self.basename.underscore + "id"
    when :_key
      self.basename.underscore + "_key"
    when :key
      self.basename.underscore + "key"
    else
      self.basename.underscore + ORMSupport.default_key
    end
  end
table_name( sys=:og )

Alias for tablename

tableize( sys=:og )

Alias for tablename

tablename( sys=:og )

Converts a class-esque name into a table name.

This method is also aliased as table_name tableize
# File lib/facets/more/ormsupport.rb, line 65
  def tablename( sys=:og )
    sys ||= ORMSupport.default_system
    case sys.to_sym
    when :rails, :ar, :activerecord
      to_s.underscore.plural
    when :nitro, :og
      to_s.gsub(/::/, '_').downcase
    else
      to_s.gsub(/::/, '_').downcase
    end
  end
Private Instance methods
findclass( str )
# File lib/facets/more/ormsupport.rb, line 107
  def findclass( str )
    str = str.gsub(/^::/,'')
    k = nil
    ObjectSpace.each_object(Class) { |c| (k = c;  break) if c.name.downcase == str.downcase }
    return k
  end