Method: ArelExtensions::Visitors::MSSQL#quote

Defined in:
lib/arel_extensions/visitors/mssql.rb

#quote(value, column = nil) ⇒ Object



119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/arel_extensions/visitors/mssql.rb', line 119

def quote value, column = nil
  case value
  when Arel::Nodes::SqlLiteral
    value
  when String, Symbol, ActiveSupport::Multibyte::Chars
    "'#{quote_string(value.to_s)}'"
  when true
    quoted_true
  when false
    quoted_false
  when nil
    'NULL'
  # BigDecimals need to be put in a non-normalized form and quoted.
  when BigDecimal
    value.to_s('F')
  when Numeric, ActiveSupport::Duration
    value.to_s
  when Arel::VERSION.to_i > 6 && ActiveRecord::Type::Time::Value
    "'#{quoted_time(value)}'"
  when Date, Time
    "'#{quoted_date(value)}'"
  when Class
    "'#{value}'"
  else
    raise TypeError, "can't quote #{value.class.name}"
  end
end