lib/duckdb/appender.rb in duckdb-1.1.2.0 vs lib/duckdb/appender.rb in duckdb-1.1.2.1

- old
+ new

@@ -72,20 +72,11 @@ # # appender.append_date('2021-10-10') # appender.end_row # appender.flush # def append_date(value) - date = case value - when Date, Time - value - else - begin - Date.parse(value) - rescue - raise(ArgumentError, "Cannot parse argument `#{value}` to Date.") - end - end + date = to_date(value) _append_date(date.year, date.month, date.day) end # @@ -124,22 +115,11 @@ # # appender.append_time('2021-08-01 01:01:01') # appender.end_row # appender.flush # def append_timestamp(value) - time = case value - when Time - value - when Date - value.to_time - else - begin - Time.parse(value) - rescue - raise(ArgumentError, "Cannot parse argument `#{value}` to Time or Date.") - end - end + time = to_time(value) _append_timestamp(time.year, time.month, time.day, time.hour, time.min, time.sec, time.nsec / 1000) end # @@ -230,8 +210,36 @@ private def blob?(value) value.instance_of?(DuckDB::Blob) || value.encoding == Encoding::BINARY + end + + def to_date(value) + case value + when Date, Time + value + else + begin + Date.parse(value) + rescue StandardError + raise(ArgumentError, "Cannot parse argument `#{value}` to Date.") + end + end + end + + def to_time(value) + case value + when Time + value + when Date + value.to_time + else + begin + Time.parse(value) + rescue StandardError + raise(ArgumentError, "Cannot parse argument `#{value}` to Time or Date.") + end + end end end end