Module: ORMSupport

Included in:
Class, String
Defined in:
lib/mega/orm_support.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_keyObject

class level



52
53
54
# File 'lib/mega/orm_support.rb', line 52

def self.default_key
  @default_key ||= '_id'
end

.default_key=(x) ⇒ Object



56
57
58
# File 'lib/mega/orm_support.rb', line 56

def self.default_key=(x)
  @default_key = x.to_s
end

Instance Method Details

#classify(type = :nitro) ⇒ Object

Like classname, but returns the actual class.



95
96
97
# File 'lib/mega/orm_support.rb', line 95

def classify( type=:nitro )
  classname( type ).to_const
end

#classname(type = :nitro) ⇒ Object Also known as: calss_name

Converts a table name into a class name.



81
82
83
84
85
86
87
88
89
90
# File 'lib/mega/orm_support.rb', line 81

def classname( type=:nitro )
  case type
  when :rails, :ar, :activerecord
    self.to_s.singular.camelize
  when :nitro
    self.to_s.gsub(/_/, '::').camelize
  else
    self.to_s.gsub(/_/, '::').camelize
  end
end

#keyname(type = nil) ⇒ Object Also known as: key_name, foreign_key

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



102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/mega/orm_support.rb', line 102

def keyname( type=nil )
  case type
  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

#tablename(type = :nitro) ⇒ Object Also known as: table_name, tableize

Converts a class-esque name into a table name.



66
67
68
69
70
71
72
73
74
75
# File 'lib/mega/orm_support.rb', line 66

def tablename( type=:nitro )
  case type
  when :rails, :ar, :activerecord
    self.to_s.underscore.plural
  when :nitro
    self.to_s.gsub(/::/, '_').downcase
  else
    self.to_s.gsub(/::/, '_').downcase
  end
end