123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::ConnectionAdapters::MySQL::Quoting

Do not use. This module is for internal use only.
Relationships & Source Files
Namespace Children
Modules:
Extension / Inclusion / Inheritance Descendants
Included In:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activerecord/lib/active_record/connection_adapters/mysql/quoting.rb

Constant Summary

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

append_features, prepend_features

Instance Method Summary

Instance Method Details

#cast_bound_value(value)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 55

def cast_bound_value(value)
  case value
  when Rational
    value.to_f.to_s
  when Numeric
    value.to_s
  when BigDecimal
    value.to_s("F")
  when true
    "1"
  when false
    "0"
  else
    value
  end
end

#quoted_binary(value)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 88

def quoted_binary(value)
  "x'#{value.hex}'"
end

#quoted_date(value)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 80

def quoted_date(value)
  if supports_datetime_with_precision?
    super
  else
    super.sub(/\.\d{6}\z/, "")
  end
end

#type_cast(value)

Override type_cast we pass to mysql2 ::Date and ::Time objects instead of Strings since ::ActiveRecord::ConnectionAdapters::MySQL adapters are able to handle those classes more efficiently.

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 102

def type_cast(value) # :nodoc:
  case value
  when ActiveSupport::TimeWithZone
    # We need to check explicitly for ActiveSupport::TimeWithZone because
    # we need to transform it to Time objects but we don't want to
    # transform Time objects to themselves.
    if default_timezone == :utc
      value.getutc
    else
      value.getlocal
    end
  when Date, Time
    value
  else
    super
  end
end

#unquote_identifier(identifier)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 92

def unquote_identifier(identifier)
  if identifier && identifier.start_with?("`")
    identifier[1..-2]
  else
    identifier
  end
end

#unquoted_false

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 76

def unquoted_false
  0
end

#unquoted_true

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 72

def unquoted_true
  1
end