# File lib/micro_sql/table.rb, line 24 def primary_key @primary_key ||= db.primary_key(table_name) end
class MicroSql::Table
– A basic table ———————————————————-
Attributes
db[RW]
Public Class Methods
new(db, sql)
click to toggle source
# File lib/micro_sql/table.rb, line 6 def initialize(db, sql) @db = db if sql !~ /\s/ # no space: sql must be the table_name @table_name = sql raise "No such table: '#{@table_name}'" unless exists? elsif sql =~ /\s*CREATE TABLE\s+([^\( ]+)/ @table_name = $1 raise ArgumentError, "Cannot determine table_name from SQL: #{sql}" unless table_name build(sql) unless exists? end end
Public Instance Methods
insert(*values)
click to toggle source
# File lib/micro_sql/table.rb, line 20 def insert(*values) db.insert table_name, *values end
primary_key()
click to toggle source
Private Instance Methods
build(sql)
click to toggle source
# File lib/micro_sql/table.rb, line 34 def build(sql) MicroSql.logger.info "Create table #{table_name}" db.execute_batch(sql) end
exists?()
click to toggle source
# File lib/micro_sql/table.rb, line 30 def exists? db.tables.include?(table_name.to_s) end