Class: ActiveRecord::ConnectionAdapters::SQLite3Column

Inherits:
JdbcColumn
  • Object
show all
Defined in:
lib/arjdbc/sqlite3/adapter.rb

Instance Attribute Summary

Attributes inherited from JdbcColumn

#limit, #precision

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from JdbcColumn

column_types

Constructor Details

#initialize(name, *args) ⇒ SQLite3Column

Returns a new instance of SQLite3Column.



549
550
551
552
553
554
555
# File 'lib/arjdbc/sqlite3/adapter.rb', line 549

def initialize(name, *args)
  if Hash === name
    super
  else
    super(nil, name, *args)
  end
end

Class Method Details

.binary_to_string(value) ⇒ Object



561
562
563
564
565
566
# File 'lib/arjdbc/sqlite3/adapter.rb', line 561

def self.binary_to_string(value)
  if value.respond_to?(:encoding) && value.encoding != Encoding::ASCII_8BIT
    value = value.force_encoding(Encoding::ASCII_8BIT)
  end
  value
end

.string_to_binary(value) ⇒ Object



557
558
559
# File 'lib/arjdbc/sqlite3/adapter.rb', line 557

def self.string_to_binary(value)
  value
end

Instance Method Details

#default_value(value) ⇒ Object



578
579
580
581
582
583
# File 'lib/arjdbc/sqlite3/adapter.rb', line 578

def default_value(value)
  # JDBC returns column default strings with actual single quotes :
  return $1 if value =~ /^'(.*)'$/

  value
end

#init_column(name, default, *args) ⇒ Object



569
570
571
572
573
574
575
# File 'lib/arjdbc/sqlite3/adapter.rb', line 569

def init_column(name, default, *args)
  if default =~ /NULL/
    @default = nil
  else
    super
  end
end

#type_cast(value) ⇒ Object



586
587
588
589
590
591
592
593
594
595
596
597
# File 'lib/arjdbc/sqlite3/adapter.rb', line 586

def type_cast(value)
  return nil if value.nil?
  case type
    when :string then value
    when :primary_key
      value.respond_to?(:to_i) ? value.to_i : ( value ? 1 : 0 )
    when :float    then value.to_f
    when :decimal  then self.class.value_to_decimal(value)
    when :boolean  then self.class.value_to_boolean(value)
    else super
  end
end