lib/upsert/quoter.rb in upsert-0.0.1 vs lib/upsert/quoter.rb in upsert-0.1.0

- old
+ new

@@ -1,8 +1,36 @@ class Upsert + # @private module Quoter + ISO8601_DATE = '%F' + + def quote_value(v) + case v + when NilClass + 'NULL' + when Upsert::Binary + quote_binary v # must be defined by base + when String + quote_string v # must be defined by base + when TrueClass, FalseClass + quote_boolean v + when BigDecimal + quote_big_decimal v + when Numeric + v + when Symbol + quote_string v.to_s + when Time, DateTime + quote_time v # must be defined by base + when Date + quote_string v.strftime(ISO8601_DATE) + else + raise "not sure how to quote #{v.class}: #{v.inspect}" + end + end + def quote_idents(idents) - idents.map { |k| quote_ident(k) }.join(',') + idents.map { |k| quote_ident(k) }.join(',') # must be defined by base end def quote_values(values) values.map { |v| quote_value(v) }.join(',') end