Class: KnjDB_sqlite3::Columns

Inherits:
Object
  • Object
show all
Defined in:
lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb

Defined Under Namespace

Classes: Column

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Columns

Returns a new instance of Columns.



4
5
6
7
8
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb', line 4

def initialize(args)
  @args = args
  @db = @args[:db]
  @driver = @args[:driver]
end

Instance Attribute Details

#dbObject (readonly)

Returns the value of attribute db.



2
3
4
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb', line 2

def db
  @db
end

#driverObject (readonly)

Returns the value of attribute driver.



2
3
4
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb', line 2

def driver
  @driver
end

Instance Method Details

#data_sql(data) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb', line 10

def data_sql(data)
  raise "No type given." if !data["type"]
  type = data["type"]
  
  if type == "enum"
    type = "varchar"
    data.delete("maxlength")
  end
  
  data["maxlength"] = 255 if type == "varchar" and !data.key?("maxlength")
  type = "integer" if @db.int_types.index(type) and (data["autoincr"] or data["primarykey"])
  
  sql = "`#{data["name"]}` #{type}"
  sql << "(#{data["maxlength"]})" if data["maxlength"] and !data["autoincr"]
  sql << "(11)" if !data.key?("maxlength") and !data["autoincr"]
  sql << " PRIMARY KEY" if data["primarykey"]
  sql << " NOT NULL" if !data["null"] and data.key?("null")
  
  if data.key?("default_func")
    sql << " DEFAULT #{data["default_func"]}"
  elsif data.key?("default") and data["default"] != false
    sql << " DEFAULT '#{@db.escape(data["default"])}'"
  end
  
  return sql
end