Class: KnjDB_sqlite3::Columns
- Defined in:
- lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb
Defined Under Namespace
Classes: Column
Instance Attribute Summary collapse
-
#db ⇒ Object
readonly
Returns the value of attribute db.
-
#driver ⇒ Object
readonly
Returns the value of attribute driver.
Instance Method Summary collapse
- #data_sql(data) ⇒ Object
-
#initialize(args) ⇒ Columns
constructor
A new instance of Columns.
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
#db ⇒ Object (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 |
#driver ⇒ Object (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 |