summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/axlsx/util/validators.rb11
-rw-r--r--lib/axlsx/workbook/worksheet/page_setup.rb2
-rw-r--r--test/util/tc_validators.rb14
3 files changed, 17 insertions, 10 deletions
diff --git a/lib/axlsx/util/validators.rb b/lib/axlsx/util/validators.rb
index 27d895e8..4f42b29c 100644
--- a/lib/axlsx/util/validators.rb
+++ b/lib/axlsx/util/validators.rb
@@ -109,7 +109,7 @@ module Axlsx
end
# Requires that the value is an integer ranging from 10 to 400.
- def self.validate_page_scale(v)
+ def self.validate_scale_10_400(v)
DataTypeValidator.validate "page_scale", [Fixnum, Integer], v, lambda { |arg| arg >= 10 && arg <= 400 }
end
@@ -238,4 +238,11 @@ module Axlsx
def self.validate_data_validation_type(v)
RestrictionValidator.validate :data_validation_type, [:custom, :data, :decimal, :list, :none, :textLength, :time, :whole], v
end
-end
+
+ # Requires that the value is a valid sheet view type.
+ # valid types must be one of normal, page_break_preview, page_layout
+ # @param [Any] v The value validated
+ def self.validate_sheet_view_type(v)
+ RestrictionValidator.validate :sheet_view_type, [:normal, :page_break_preview, :page_layout], v
+ end
+end \ No newline at end of file
diff --git a/lib/axlsx/workbook/worksheet/page_setup.rb b/lib/axlsx/workbook/worksheet/page_setup.rb
index fdfab981..10cba403 100644
--- a/lib/axlsx/workbook/worksheet/page_setup.rb
+++ b/lib/axlsx/workbook/worksheet/page_setup.rb
@@ -79,7 +79,7 @@ module Axlsx
# @see paper_width
def paper_width=(v); Axlsx::validate_number_with_unit(v); @paper_width = v; end
# @see scale
- def scale=(v); Axlsx::validate_page_scale(v); @scale = v; end
+ def scale=(v); Axlsx::validate_scale_10_400(v); @scale = v; end
# convenience method to achieve sanity when setting fit_to_width and fit_to_height
# as they both default to 1 if only their counterpart is specified.
diff --git a/test/util/tc_validators.rb b/test/util/tc_validators.rb
index bcb2eadf..a41620a0 100644
--- a/test/util/tc_validators.rb
+++ b/test/util/tc_validators.rb
@@ -84,13 +84,13 @@ class TestValidators < Test::Unit::TestCase
assert_raise(ArgumentError) { Axlsx.validate_number_with_unit "-29cm" }
#page_scale
- assert_nothing_raised { Axlsx.validate_page_scale 10 }
- assert_nothing_raised { Axlsx.validate_page_scale 100 }
- assert_nothing_raised { Axlsx.validate_page_scale 400 }
- assert_raise(ArgumentError) { Axlsx.validate_page_scale 9 }
- assert_raise(ArgumentError) { Axlsx.validate_page_scale 10.0 }
- assert_raise(ArgumentError) { Axlsx.validate_page_scale 400.1 }
- assert_raise(ArgumentError) { Axlsx.validate_page_scale "99" }
+ assert_nothing_raised { Axlsx.validate_scale_10_400 10 }
+ assert_nothing_raised { Axlsx.validate_scale_10_400 100 }
+ assert_nothing_raised { Axlsx.validate_scale_10_400 400 }
+ assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 9 }
+ assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 10.0 }
+ assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 400.1 }
+ assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 "99" }
#page_orientation
assert_nothing_raised { Axlsx.validate_page_orientation :default }