From 155840c2772c964f9793683db7a2de95b7bd9027 Mon Sep 17 00:00:00 2001 From: Artem Kozaev Date: Fri, 27 Nov 2020 18:51:01 +0300 Subject: Add casting to date Add tests --- lib/axlsx/workbook/worksheet/cell.rb | 6 +++++- test/util/tc_validators.rb | 2 +- test/workbook/worksheet/tc_cell.rb | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/axlsx/workbook/worksheet/cell.rb b/lib/axlsx/workbook/worksheet/cell.rb index a066ba91..9b87b894 100644 --- a/lib/axlsx/workbook/worksheet/cell.rb +++ b/lib/axlsx/workbook/worksheet/cell.rb @@ -475,7 +475,11 @@ module Axlsx case type when :date self.style = STYLE_DATE if self.style == 0 - v + if !v.is_a?(Date) && v.respond_to?(:to_date) + v.to_date + else + v + end when :time self.style = STYLE_DATE if self.style == 0 if !v.is_a?(Time) && v.respond_to?(:to_time) diff --git a/test/util/tc_validators.rb b/test/util/tc_validators.rb index 6effac51..d6936496 100644 --- a/test/util/tc_validators.rb +++ b/test/util/tc_validators.rb @@ -127,7 +127,7 @@ class TestValidators < Test::Unit::TestCase assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 0 } #data_validation_type - [:custom, :data, :decimal, :list, :none, :textLength, :time, :whole].each do |sym| + [:custom, :data, :decimal, :list, :none, :textLength, :date, :time, :whole].each do |sym| assert_nothing_raised { Axlsx.validate_data_validation_type sym } end assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style :other_symbol } diff --git a/test/workbook/worksheet/tc_cell.rb b/test/workbook/worksheet/tc_cell.rb index d6f5aeae..7e21b8cb 100644 --- a/test/workbook/worksheet/tc_cell.rb +++ b/test/workbook/worksheet/tc_cell.rb @@ -71,6 +71,13 @@ class TestCell < Test::Unit::TestCase assert_equal(@c.value, now.to_time) end + def test_date + @c.type = :date + now = Time.now + @c.value = now + assert_equal(@c.value, now.to_date) + end + def test_style assert_raise(ArgumentError, "must reject invalid style indexes") { @c.style=@c.row.worksheet.workbook.styles.cellXfs.size } assert_nothing_raised("must allow valid style index changes") {@c.style=1} -- cgit v1.2.3