ORMSupport
Provides a number of basc convenience methods for working with Object Relational Mapping.
Methods
- class_name
- classify
- classname
- default_key
- default_system
- findclass
- foreign_key
- key_name
- keyname
- table_name
- tableize
- tablename
Public Class methods
[ show source ]
# 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
++
class level
[ show source ]
# 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
Alias for classname
Like classname, but returns the actual class.
[ show source ]
# File lib/facets/more/ormsupport.rb, line 103 def classify( sys=:og ) findclass( classname( sys ) ) end
Converts a table name into a class name.
This method is also aliased as
class_name
[ show source ]
# 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
Alias for keyname
Alias for keyname
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
[ show source ]
# 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
Alias for tablename
Alias for tablename
Converts a class-esque name into a table name.
This method is also aliased as
table_name
tableize
[ show source ]
# 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
[ show source ]
# 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