summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGeremia Taglialatela <[email protected]>2022-09-21 09:39:09 +0200
committerStefan Daschek <[email protected]>2022-09-21 20:40:13 +0200
commit7eb5bef01e600938d13ca889d07b331ff5c4a6ba (patch)
tree27ef3c217d42b6ff34a69960799a1889792bfe16
parentabd64701cee4f5326c18241c24f872fb96268094 (diff)
downloadcaxlsx-7eb5bef01e600938d13ca889d07b331ff5c4a6ba.tar.gz
caxlsx-7eb5bef01e600938d13ca889d07b331ff5c4a6ba.zip
Move worksheet name forbidden chars to a constant
-rw-r--r--lib/axlsx/util/constants.rb3
-rw-r--r--lib/axlsx/workbook/worksheet/worksheet.rb2
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/axlsx/util/constants.rb b/lib/axlsx/util/constants.rb
index 3f30216f..f1c00e44 100644
--- a/lib/axlsx/util/constants.rb
+++ b/lib/axlsx/util/constants.rb
@@ -277,6 +277,9 @@ module Axlsx
# worksheet maximum name length
WORKSHEET_MAX_NAME_LENGTH = 31
+ # worksheet name forbidden characters
+ WORKSHEET_NAME_FORBIDDEN_CHARS = '[]*/\?:'.freeze
+
# error messages RestrictionValidor
ERR_RESTRICTION = "Invalid Data: %s. %s must be one of %s.".freeze
diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb
index b51e2c00..cfb1d38e 100644
--- a/lib/axlsx/workbook/worksheet/worksheet.rb
+++ b/lib/axlsx/workbook/worksheet/worksheet.rb
@@ -686,7 +686,7 @@ module Axlsx
raise ArgumentError, (ERR_SHEET_NAME_EMPTY) if name.empty?
character_length = name.encode("utf-16")[1..-1].encode("utf-16").bytesize / 2
raise ArgumentError, (ERR_SHEET_NAME_TOO_LONG % name) if character_length > WORKSHEET_MAX_NAME_LENGTH
- raise ArgumentError, (ERR_SHEET_NAME_CHARACTER_FORBIDDEN % name) if '[]*/\?:'.chars.any? { |char| name.include? char }
+ raise ArgumentError, (ERR_SHEET_NAME_CHARACTER_FORBIDDEN % name) if WORKSHEET_NAME_FORBIDDEN_CHARS.chars.any? { |char| name.include? char }
name = Axlsx::coder.encode(name)
sheet_names = @workbook.worksheets.reject { |s| s == self }.map { |s| s.name }
raise ArgumentError, (ERR_DUPLICATE_SHEET_NAME % name) if sheet_names.include?(name)