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