# File lib/tramp/quoting.rb, line 45
    def quote(value, column = nil)
      # records are quoted as their primary key
      return value.quoted_id if value.respond_to?(:quoted_id)

      case value
        when String, ActiveSupport::Multibyte::Chars
          value = value.to_s
          if column && column.type == :binary && column.class.respond_to?(:string_to_binary)
            "#{quoted_string_prefix}'#{quote_string(column.class.string_to_binary(value))}'" # ' (for ruby-mode)
          elsif column && [:integer, :float].include?(column.type)
            value = column.type == :integer ? value.to_i : value.to_f
            value.to_s
          else
            "#{quoted_string_prefix}'#{quote_string(value)}'" # ' (for ruby-mode)
          end
        when NilClass                 then "NULL"
        when TrueClass                then (column && column.type == :integer ? '1' : quoted_true)
        when FalseClass               then (column && column.type == :integer ? '0' : quoted_false)
        when Float, Fixnum, Bignum    then value.to_s
        # BigDecimals need to be output in a non-normalized form and quoted.
        when BigDecimal               then value.to_s('F')
        else
          if value.acts_like?(:date) || value.acts_like?(:time)
            "'#{quoted_date(value)}'"
          else
            "#{quoted_string_prefix}'#{quote_string(value.to_yaml)}'"
          end
      end
    end