write_xlsx 0.85.8 → 0.85.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a8ed1e139d973baf49fc349d874da19de256e10ac34f2b4f5a08ec6dcac1eba
4
- data.tar.gz: a553667cbe7443f9c9bbfc74d28a9a30e830c95dec213e2d70ca48862bb0505a
3
+ metadata.gz: ee225c252867f895e976e92e0cf2d1fa0617c8d1ab08277dced0f8c53037f0ae
4
+ data.tar.gz: 846527548749de579fc47f7cdd0df9826032fcb1b15cd500c441e6ffd339c3fa
5
5
  SHA512:
6
- metadata.gz: ec4e891ca22e53564f6a715aca9efce06c19782a4274d71ddb485b2bc34f1bf4f11a5f70b736b5fd4f23d74b47e68235c8ef4781fd3c014cad7cbf7c07501963
7
- data.tar.gz: e262a4b65b0da4703894ab831f36a1058dcae5d71d103d7f83c313c0ada4e30db534eaabc3273b4c784c1b06d14de4730506b142ea49c8dc32c283339604f0c3
6
+ metadata.gz: 89fe866dcb96df87a917ddf9ef666d5583c5ece4c20424020fffbf55a648e1cbc8fa9cd6c6acd25e979528108c653414879fd020533e20740f7024c1a4678e69
7
+ data.tar.gz: e065e79287b82fe2b423cf119c008d92dc4c7f982acf1d98a4feb3da1d1ead8d8f8a8cc3c40e62162cf6315408875806366eeb6b058cd65f64197492cf0fe0bb
data/Changes CHANGED
@@ -1,5 +1,8 @@
1
1
  Change history of write_xlsx rubygem.
2
2
 
3
+ 2020-09-07 v0.85.9
4
+ apply pull-request #59 and #60
5
+
3
6
  2020-09-03 v0.85.8
4
7
  apply pull-request #58 and #52
5
8
 
@@ -2631,7 +2631,7 @@ def write_custom_error_base(tag, values, data)
2631
2631
  end
2632
2632
 
2633
2633
  def write_num_ref_or_lit(values, data)
2634
- if values =~ /^=/ # '=Sheet1!$A$1:$A$5'
2634
+ if values.to_s =~ /^=/ # '=Sheet1!$A$1:$A$5'
2635
2635
  write_num_ref(values, data, 'num')
2636
2636
  else # [1, 2, 3]
2637
2637
  write_num_lit(values)
@@ -306,7 +306,7 @@ def range_start_cell_for_conditional_formatting(*args) # :nodoc:
306
306
 
307
307
  def row_col_param_for_conditional_formatting(*args)
308
308
  # Check for a cell reference in A1 notation and substitute row and column
309
- if args[0] =~ /^\D/
309
+ if args[0].to_s =~ /^\D/
310
310
  # Check for a user defined multiple range like B3:K6,B8:K11.
311
311
  user_range = args[0].sub(/^=/, '').gsub(/\s*,\s*/, ' ').gsub(/\$/, '') if args[0] =~ /,/
312
312
  end
@@ -383,7 +383,7 @@ def check_conditional_formatting_parameters(param) # :nodoc:
383
383
  end
384
384
 
385
385
  def convert_date_time_if_required(val)
386
- if val =~ /T/
386
+ if val.to_s =~ /T/
387
387
  date_time = convert_date_time(val)
388
388
  raise "Invalid date/time value '#{val}' in conditional_formatting()" unless date_time
389
389
  date_time
@@ -1,4 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
2
3
  require 'write_xlsx/package/xml_writer_simple'
3
4
  require 'write_xlsx/utility'
4
5
 
@@ -8,11 +9,13 @@ class SharedStrings
8
9
 
9
10
  include Writexlsx::Utility
10
11
 
12
+ PRESERVE_SPACE_ATTRIBUTES = ['xml:space', 'preserve'].freeze
13
+
11
14
  def initialize
12
15
  @writer = Package::XMLWriterSimple.new
13
16
  @strings = [] # string table
14
17
  @strings_index = {} # string table index
15
- @count = {} # count
18
+ @count = 0 # count
16
19
  end
17
20
 
18
21
  def index(string, params = {})
@@ -21,18 +24,18 @@ def index(string, params = {})
21
24
  end
22
25
 
23
26
  def add(string)
24
- str = string.dup
25
- if @count[str]
26
- @count[str] += 1
27
- else
27
+ unless @strings_index[string]
28
+ # Only first time the string will be append to list
29
+ # next time we only check and not #dup it
30
+ str = string.dup.freeze
28
31
  @strings << str
29
32
  @strings_index[str] = @strings.size - 1
30
- @count[str] = 1
31
33
  end
34
+ @count += 1
32
35
  end
33
36
 
34
37
  def string(index)
35
- @strings[index].dup
38
+ @strings[index]
36
39
  end
37
40
 
38
41
  def empty?
@@ -79,7 +82,6 @@ def write_sst_strings
79
82
  # Write the <si> element.
80
83
  #
81
84
  def write_si(string)
82
- string = string.dup
83
85
  attributes = []
84
86
 
85
87
  # Excel escapes control characters with _xHHHH_ and also escapes any
@@ -102,7 +104,7 @@ def write_si(string)
102
104
  end
103
105
 
104
106
  # Add attribute to preserve leading or trailing whitespace.
105
- attributes << ['xml:space', 'preserve'] if string =~ /\A\s|\s\Z/
107
+ attributes << PRESERVE_SPACE_ATTRIBUTES if string =~ /\A\s|\s\Z/
106
108
 
107
109
  # Write any rich strings without further tags.
108
110
  if string =~ %r{^<r>} && string =~ %r{</r>$}
@@ -122,7 +124,7 @@ def add_c2_c3(string)
122
124
  end
123
125
 
124
126
  def total_count
125
- @count.values.inject(0) { |sum, count| sum += count }
127
+ @count
126
128
  end
127
129
 
128
130
  def unique_count
@@ -49,7 +49,7 @@ def set_style_properties(xf_formats, palette, font_count, num_format_count, bord
49
49
  # based on the default or user defined values in the Workbook palette.
50
50
  #
51
51
  def palette_color(index)
52
- if index =~ /^#([0-9A-F]{6})$/i
52
+ if index.to_s =~ /^#([0-9A-F]{6})$/i
53
53
  "FF#{$1.upcase}"
54
54
  else
55
55
  "FF#{super(index)}"
@@ -118,7 +118,7 @@ def key_vals(attribute)
118
118
  end
119
119
 
120
120
  def escape_attributes(str = '')
121
- return str if !(str =~ /["&<>]/)
121
+ return str if !(str.to_s =~ /["&<>]/)
122
122
 
123
123
  str.
124
124
  gsub(/&/, "&amp;").
@@ -128,7 +128,7 @@ def escape_attributes(str = '')
128
128
  end
129
129
 
130
130
  def escape_data(str = '')
131
- if str =~ /[&<>]/
131
+ if str.to_s =~ /[&<>]/
132
132
  str.gsub(/&/, '&amp;').
133
133
  gsub(/</, '&lt;').
134
134
  gsub(/>/, '&gt;')
@@ -244,7 +244,7 @@ def put_deprecate_message(method)
244
244
 
245
245
  # Check for a cell reference in A1 notation and substitute row and column
246
246
  def row_col_notation(args) # :nodoc:
247
- if args[0] =~ /^\D/
247
+ if args[0].to_s =~ /^\D/
248
248
  substitute_cellref(*args)
249
249
  else
250
250
  args
@@ -1 +1 @@
1
- WriteXLSX_VERSION = "0.85.8"
1
+ WriteXLSX_VERSION = "0.85.9"
@@ -927,7 +927,7 @@ def set_calc_mode(mode, calc_id = nil)
927
927
  #
928
928
  def set_custom_color(index, red = 0, green = 0, blue = 0)
929
929
  # Match a HTML #xxyyzz style parameter
930
- if red =~ /^#(\w\w)(\w\w)(\w\w)/
930
+ if red.to_s =~ /^#(\w\w)(\w\w)(\w\w)/
931
931
  red = $1.hex
932
932
  green = $2.hex
933
933
  blue = $3.hex
@@ -721,7 +721,7 @@ def protect_default_settings # :nodoc:
721
721
  #
722
722
  def set_column(*args)
723
723
  # Check for a cell reference in A1 notation and substitute row and column
724
- if args[0] =~ /^\D/
724
+ if args[0].to_s =~ /^\D/
725
725
  row1, firstcol, row2, lastcol, *data = substitute_cellref(*args)
726
726
  else
727
727
  firstcol, lastcol, *data = args
@@ -5811,7 +5811,7 @@ def excel2003_style? # :nodoc:
5811
5811
  # based on the default or user defined values in the Workbook palette.
5812
5812
  #
5813
5813
  def palette_color(index) #:nodoc:
5814
- if index =~ /^#([0-9A-F]{6})$/i
5814
+ if index.to_s =~ /^#([0-9A-F]{6})$/i
5815
5815
  "FF#{$1.upcase}"
5816
5816
  else
5817
5817
  "FF#{super(index)}"
@@ -6100,7 +6100,7 @@ def parse_filter_tokens(expression, tokens) #:nodoc:
6100
6100
  # Special handling of "Top" filter expressions.
6101
6101
  if tokens[0] =~ /^top|bottom$/i
6102
6102
  value = tokens[1]
6103
- if (value =~ /\D/ or value.to_i < 1 or value.to_i > 500)
6103
+ if (value.to_s =~ /\D/ or value.to_i < 1 or value.to_i > 500)
6104
6104
  raise "The value '#{value}' in expression '#{expression}' " +
6105
6105
  "must be in the range 1 to 500"
6106
6106
  end
@@ -6129,7 +6129,7 @@ def parse_filter_tokens(expression, tokens) #:nodoc:
6129
6129
  end
6130
6130
 
6131
6131
  # Special handling for Blanks/NonBlanks.
6132
- if (token =~ /^blanks|nonblanks$/i)
6132
+ if (token.to_s =~ /^blanks|nonblanks$/i)
6133
6133
  # Only allow Equals or NotEqual in this context.
6134
6134
  if (operator != 2 and operator != 5)
6135
6135
  raise "The operator '#{tokens[1]}' in expression '#{expression}' " +
@@ -6157,7 +6157,7 @@ def parse_filter_tokens(expression, tokens) #:nodoc:
6157
6157
 
6158
6158
  # if the string token contains an Excel match character then change the
6159
6159
  # operator type to indicate a non "simple" equality.
6160
- if (operator == 2 and token =~ /[*?]/)
6160
+ if (operator == 2 and token.to_s =~ /[*?]/)
6161
6161
  operator = 22
6162
6162
  end
6163
6163
 
@@ -7635,7 +7635,7 @@ def set_active_pane_and_cell_selections(row, col, top_row, left_col, active_cell
7635
7635
 
7636
7636
  def prepare_filter_column(col) # :nodoc:
7637
7637
  # Check for a column reference in A1 notation and substitute.
7638
- if col =~ /^\D/
7638
+ if col.to_s =~ /^\D/
7639
7639
  col_letter = col
7640
7640
 
7641
7641
  # Convert col ref to a cell ref and then to a col number.
@@ -282,7 +282,7 @@ def valid_criteria_type # :nodoc:
282
282
 
283
283
  def convert_date_time_value(key) # :nodoc:
284
284
  value = instance_variable_get("@#{key}")
285
- if value && value =~ /T/
285
+ if value && value.to_s =~ /T/
286
286
  date_time = convert_date_time(value)
287
287
  instance_variable_set("@#{key}", date_time) if date_time
288
288
  date_time
@@ -0,0 +1,9 @@
1
+ base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
2
+ lib_dir = File.join(base_dir, "lib")
3
+ test_dir = File.join(base_dir, "test")
4
+
5
+ $LOAD_PATH.unshift(lib_dir)
6
+
7
+ require 'test/unit'
8
+
9
+ exit Test::Unit::AutoRunner.run(true, test_dir)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: write_xlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.85.8
4
+ version: 0.85.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hideo NAKAMURA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-06 00:00:00.000000000 Z
11
+ date: 2020-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1578,6 +1578,7 @@ files:
1578
1578
  - test/regression/xlsx_files/vml03.xlsx
1579
1579
  - test/regression/xlsx_files/vml04.xlsx
1580
1580
  - test/republic.png
1581
+ - test/run_test.rb
1581
1582
  - test/test_col_name.rb
1582
1583
  - test/test_delete_files.rb
1583
1584
  - test/test_example_match.rb
@@ -3089,6 +3090,7 @@ test_files:
3089
3090
  - test/regression/xlsx_files/vml03.xlsx
3090
3091
  - test/regression/xlsx_files/vml04.xlsx
3091
3092
  - test/republic.png
3093
+ - test/run_test.rb
3092
3094
  - test/test_col_name.rb
3093
3095
  - test/test_delete_files.rb
3094
3096
  - test/test_example_match.rb