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.



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

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

Class Method Details

.binary_to_string(value) ⇒ Object



572
573
574
575
576
577
# File 'lib/arjdbc/sqlite3/adapter.rb', line 572

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



568
569
570
# File 'lib/arjdbc/sqlite3/adapter.rb', line 568

def self.string_to_binary(value)
  value
end

Instance Method Details

#default_value(value) ⇒ Object



589
590
591
592
593
594
# File 'lib/arjdbc/sqlite3/adapter.rb', line 589

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



580
581
582
583
584
585
586
# File 'lib/arjdbc/sqlite3/adapter.rb', line 580

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

#type_cast(value) ⇒ Object



597
598
599
600
601
602
603
604
605
606
607
608
# File 'lib/arjdbc/sqlite3/adapter.rb', line 597

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