Class: ActiveRecord::ConnectionAdapters::JdbcColumn
- Inherits:
-
Column
- Object
- Column
- ActiveRecord::ConnectionAdapters::JdbcColumn
- Defined in:
- lib/arjdbc/jdbc/column.rb
Overview
The base class for all of JdbcAdapter's returned columns.
Instances of JdbcColumn will get extended with "column-spec" modules
(similar to how JdbcAdapter gets spec modules in) if the adapter spec
module provided a column_selector
(matcher) method for it's database
specific type.
Direct Known Subclasses
DB2Column, FirebirdColumn, H2Column, InformixColumn, MSSQLColumn, MysqlAdapter::Column, OracleColumn, PostgreSQLColumn, SQLite3Column
Instance Attribute Summary collapse
-
#limit ⇒ Object
writeonly
deprecated
Deprecated.
attribute writers will be removed in 1.4
-
#precision ⇒ Object
writeonly
deprecated
Deprecated.
attribute writers will be removed in 1.4
Class Method Summary collapse
-
.column_types ⇒ Hash
Returns the available column types.
Instance Method Summary collapse
-
#default_value(value) ⇒ Object
Similar to
ActiveRecord
'sextract_value_from_default(default)
. -
#init_column(*args) ⇒ Object
Additional column initialization for sub-classes.
-
#initialize(config, name, *args) ⇒ JdbcColumn
constructor
A new instance of JdbcColumn.
Constructor Details
#initialize(config, name, *args) ⇒ JdbcColumn
Returns a new instance of JdbcColumn.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/arjdbc/jdbc/column.rb', line 16 def initialize(config, name, *args) if self.class == JdbcColumn # NOTE: extending classes do not want this if they do they shall call call_discovered_column_callbacks(config) if config default = args.shift else # for extending classes allow ignoring first argument : if ! config.nil? && ! config.is_a?(Hash) default = name; name = config # initialize(name, default, *args) else default = args.shift end end default = default_value(default) # super <= 4.1: (name, default, sql_type = nil, null = true) # super >= 4.2: (name, default, cast_type, sql_type = nil, null = true) super(name, default, *args) init_column(name, default, *args) end |
Instance Attribute Details
#limit=(value) ⇒ Object (writeonly)
attribute writers will be removed in 1.4
14 15 16 |
# File 'lib/arjdbc/jdbc/column.rb', line 14 def limit=(value) @limit = value end |
#precision=(value) ⇒ Object (writeonly)
attribute writers will be removed in 1.4
14 15 16 |
# File 'lib/arjdbc/jdbc/column.rb', line 14 def precision=(value) @precision = value end |
Class Method Details
.column_types ⇒ Hash
Returns the available column types
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/arjdbc/jdbc/column.rb', line 57 def self.column_types types = {} for mod in ::ArJdbc.modules if mod.respond_to?(:column_selector) sel = mod.column_selector # [ matcher, block ] types[ sel[0] ] = sel[1] end end types end |
Instance Method Details
#default_value(value) ⇒ Object
Similar to ActiveRecord
's extract_value_from_default(default)
.
41 |
# File 'lib/arjdbc/jdbc/column.rb', line 41 def default_value(value); value; end |
#init_column(*args) ⇒ Object
Additional column initialization for sub-classes.
37 |
# File 'lib/arjdbc/jdbc/column.rb', line 37 def init_column(*args); end |