diff options
| author | Geremia Taglialatela <[email protected]> | 2022-09-21 09:39:09 +0200 |
|---|---|---|
| committer | Stefan Daschek <[email protected]> | 2022-09-21 20:40:13 +0200 |
| commit | 7eb5bef01e600938d13ca889d07b331ff5c4a6ba (patch) | |
| tree | 27ef3c217d42b6ff34a69960799a1889792bfe16 | |
| parent | abd64701cee4f5326c18241c24f872fb96268094 (diff) | |
| download | caxlsx-7eb5bef01e600938d13ca889d07b331ff5c4a6ba.tar.gz caxlsx-7eb5bef01e600938d13ca889d07b331ff5c4a6ba.zip | |
Move worksheet name forbidden chars to a constant
| -rw-r--r-- | lib/axlsx/util/constants.rb | 3 | ||||
| -rw-r--r-- | lib/axlsx/workbook/worksheet/worksheet.rb | 2 |
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) |
