Sha256: f716417e42c044fe8e07575687633a203d96afa1f2d9c5a970156fdf6667ce6b
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module Arql class Definition class << self def models @@models ||= [] end end def initialize @@models = [] ActiveRecord::Base.connection.tap do |conn| conn.tables.each do |table_name| conn.primary_key(table_name).tap do |pkey| table_name.camelize.tap do |const_name| const_name = 'Modul' if const_name == 'Module' const_name = 'Clazz' if const_name == 'Class' Class.new(ActiveRecord::Base) do self.primary_key = pkey self.table_name = table_name self.inheritance_column = nil end.tap do |clazz| Object.const_set(const_name, clazz).tap do |const| const_name.gsub(/[a-z]*/, '').tap do |abbr| unless Object.const_defined?(abbr) Object.const_set abbr, const abbr_const = abbr end @@models << { model: const, abbr: abbr_const, table: table_name } end end end end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
arql-0.1.3 | lib/arql/definition.rb |