lib/arrow/timestamp-array-builder.rb in red-arrow-0.14.1 vs lib/arrow/timestamp-array-builder.rb in red-arrow-0.15.0

- old
+ new

@@ -15,20 +15,39 @@ # specific language governing permissions and limitations # under the License. module Arrow class TimestampArrayBuilder + class << self + def build(unit_or_data_type, values) + builder = new(unit_or_data_type) + builder.build(values) + end + end + + alias_method :initialize_raw, :initialize + def initialize(unit_or_data_type) + case unit_or_data_type + when DataType + data_type = unit_or_data_type + else + unit = unit_or_data_type + data_type = TimestampDataType.new(unit) + end + initialize_raw(data_type) + end + private def unit_id @unit_id ||= value_data_type.unit.nick.to_sym end def convert_to_arrow_value(value) if value.respond_to?(:to_time) and not value.is_a?(Time) value = value.to_time end - if value.is_a?(Time) + if value.is_a?(::Time) case unit_id when :second value.to_i when :milli value.to_i * 1_000 + value.usec / 1_000