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.



617
618
619
620
621
622
623
# File 'lib/arjdbc/sqlite3/adapter.rb', line 617

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

Class Method Details

.binary_to_string(value) ⇒ Object



629
630
631
632
633
634
# File 'lib/arjdbc/sqlite3/adapter.rb', line 629

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



625
626
627
# File 'lib/arjdbc/sqlite3/adapter.rb', line 625

def self.string_to_binary(value)
  value
end

Instance Method Details

#default_value(value) ⇒ Object



646
647
648
649
650
651
# File 'lib/arjdbc/sqlite3/adapter.rb', line 646

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



637
638
639
640
641
642
643
# File 'lib/arjdbc/sqlite3/adapter.rb', line 637

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

#type_cast(value) ⇒ Object



654
655
656
657
658
659
660
661
662
663
664
665
# File 'lib/arjdbc/sqlite3/adapter.rb', line 654

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