caxlsx 4.0.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -12
  3. data/README.md +1 -1
  4. data/examples/generate.rb +3 -1
  5. data/lib/axlsx/content_type/abstract_content_type.rb +6 -3
  6. data/lib/axlsx/content_type/content_type.rb +4 -4
  7. data/lib/axlsx/content_type/default.rb +4 -1
  8. data/lib/axlsx/content_type/override.rb +4 -1
  9. data/lib/axlsx/doc_props/app.rb +91 -24
  10. data/lib/axlsx/drawing/area_chart.rb +3 -3
  11. data/lib/axlsx/drawing/area_series.rb +10 -4
  12. data/lib/axlsx/drawing/ax_data_source.rb +1 -1
  13. data/lib/axlsx/drawing/axes.rb +1 -1
  14. data/lib/axlsx/drawing/axis.rb +25 -7
  15. data/lib/axlsx/drawing/bar_3D_chart.rb +3 -3
  16. data/lib/axlsx/drawing/bar_chart.rb +3 -3
  17. data/lib/axlsx/drawing/bar_series.rb +14 -5
  18. data/lib/axlsx/drawing/bubble_chart.rb +2 -2
  19. data/lib/axlsx/drawing/bubble_series.rb +2 -2
  20. data/lib/axlsx/drawing/cat_axis.rb +23 -8
  21. data/lib/axlsx/drawing/chart.rb +32 -8
  22. data/lib/axlsx/drawing/d_lbls.rb +8 -8
  23. data/lib/axlsx/drawing/drawing.rb +50 -49
  24. data/lib/axlsx/drawing/hyperlink.rb +13 -4
  25. data/lib/axlsx/drawing/line_3D_chart.rb +3 -3
  26. data/lib/axlsx/drawing/line_chart.rb +3 -3
  27. data/lib/axlsx/drawing/line_series.rb +10 -4
  28. data/lib/axlsx/drawing/marker.rb +19 -4
  29. data/lib/axlsx/drawing/num_val.rb +1 -1
  30. data/lib/axlsx/drawing/one_cell_anchor.rb +8 -2
  31. data/lib/axlsx/drawing/pic.rb +17 -8
  32. data/lib/axlsx/drawing/pie_3D_chart.rb +3 -3
  33. data/lib/axlsx/drawing/pie_chart.rb +36 -0
  34. data/lib/axlsx/drawing/pie_series.rb +18 -6
  35. data/lib/axlsx/drawing/scaling.rb +18 -4
  36. data/lib/axlsx/drawing/scatter_chart.rb +2 -2
  37. data/lib/axlsx/drawing/scatter_series.rb +2 -2
  38. data/lib/axlsx/drawing/ser_axis.rb +11 -5
  39. data/lib/axlsx/drawing/series.rb +8 -2
  40. data/lib/axlsx/drawing/two_cell_anchor.rb +1 -1
  41. data/lib/axlsx/drawing/val_axis.rb +2 -2
  42. data/lib/axlsx/drawing/view_3D.rb +8 -2
  43. data/lib/axlsx/package.rb +11 -11
  44. data/lib/axlsx/rels/relationship.rb +15 -5
  45. data/lib/axlsx/rels/relationships.rb +3 -3
  46. data/lib/axlsx/stylesheet/border.rb +12 -3
  47. data/lib/axlsx/stylesheet/border_pr.rb +15 -4
  48. data/lib/axlsx/stylesheet/cell_alignment.rb +39 -10
  49. data/lib/axlsx/stylesheet/cell_protection.rb +9 -2
  50. data/lib/axlsx/stylesheet/cell_style.rb +30 -7
  51. data/lib/axlsx/stylesheet/color.rb +10 -4
  52. data/lib/axlsx/stylesheet/dxf.rb +29 -6
  53. data/lib/axlsx/stylesheet/fill.rb +4 -1
  54. data/lib/axlsx/stylesheet/font.rb +59 -13
  55. data/lib/axlsx/stylesheet/gradient_fill.rb +9 -3
  56. data/lib/axlsx/stylesheet/gradient_stop.rb +9 -2
  57. data/lib/axlsx/stylesheet/num_fmt.rb +8 -2
  58. data/lib/axlsx/stylesheet/pattern_fill.rb +14 -3
  59. data/lib/axlsx/stylesheet/styles.rb +83 -43
  60. data/lib/axlsx/stylesheet/table_style.rb +15 -4
  61. data/lib/axlsx/stylesheet/table_style_element.rb +12 -3
  62. data/lib/axlsx/stylesheet/table_styles.rb +10 -3
  63. data/lib/axlsx/stylesheet/xf.rb +69 -16
  64. data/lib/axlsx/util/accessors.rb +9 -7
  65. data/lib/axlsx/util/constants.rb +2 -2
  66. data/lib/axlsx/util/serialized_attributes.rb +2 -2
  67. data/lib/axlsx/util/simple_typed_list.rb +25 -12
  68. data/lib/axlsx/util/storage.rb +4 -4
  69. data/lib/axlsx/util/validators.rb +1 -1
  70. data/lib/axlsx/version.rb +1 -1
  71. data/lib/axlsx/workbook/defined_name.rb +1 -1
  72. data/lib/axlsx/workbook/defined_names.rb +1 -1
  73. data/lib/axlsx/workbook/shared_strings_table.rb +3 -3
  74. data/lib/axlsx/workbook/workbook.rb +80 -67
  75. data/lib/axlsx/workbook/workbook_views.rb +1 -1
  76. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +4 -4
  77. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +5 -3
  78. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +3 -3
  79. data/lib/axlsx/workbook/worksheet/auto_filter/sort_condition.rb +1 -1
  80. data/lib/axlsx/workbook/worksheet/auto_filter/sort_state.rb +2 -2
  81. data/lib/axlsx/workbook/worksheet/border_creator.rb +4 -4
  82. data/lib/axlsx/workbook/worksheet/cell.rb +37 -17
  83. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +1 -1
  84. data/lib/axlsx/workbook/worksheet/cfvo.rb +8 -2
  85. data/lib/axlsx/workbook/worksheet/col.rb +22 -9
  86. data/lib/axlsx/workbook/worksheet/col_breaks.rb +1 -1
  87. data/lib/axlsx/workbook/worksheet/cols.rb +1 -1
  88. data/lib/axlsx/workbook/worksheet/comment.rb +2 -2
  89. data/lib/axlsx/workbook/worksheet/comments.rb +1 -1
  90. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +9 -3
  91. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +70 -15
  92. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +3 -3
  93. data/lib/axlsx/workbook/worksheet/data_validation.rb +53 -14
  94. data/lib/axlsx/workbook/worksheet/data_validations.rb +3 -3
  95. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +2 -2
  96. data/lib/axlsx/workbook/worksheet/dimension.rb +1 -1
  97. data/lib/axlsx/workbook/worksheet/icon_set.rb +17 -5
  98. data/lib/axlsx/workbook/worksheet/merged_cells.rb +1 -1
  99. data/lib/axlsx/workbook/worksheet/outline_pr.rb +1 -1
  100. data/lib/axlsx/workbook/worksheet/page_margins.rb +30 -7
  101. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +1 -2
  102. data/lib/axlsx/workbook/worksheet/page_setup.rb +32 -9
  103. data/lib/axlsx/workbook/worksheet/pane.rb +8 -2
  104. data/lib/axlsx/workbook/worksheet/pivot_table.rb +29 -5
  105. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +1 -1
  106. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +1 -1
  107. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +31 -11
  108. data/lib/axlsx/workbook/worksheet/row.rb +5 -2
  109. data/lib/axlsx/workbook/worksheet/row_breaks.rb +1 -1
  110. data/lib/axlsx/workbook/worksheet/selection.rb +8 -2
  111. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +1 -1
  112. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +1 -1
  113. data/lib/axlsx/workbook/worksheet/sheet_view.rb +30 -9
  114. data/lib/axlsx/workbook/worksheet/table_style_info.rb +2 -2
  115. data/lib/axlsx/workbook/worksheet/tables.rb +1 -1
  116. data/lib/axlsx/workbook/worksheet/worksheet.rb +28 -14
  117. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +3 -3
  118. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +2 -2
  119. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +2 -2
  120. data/lib/axlsx.rb +44 -30
  121. data/lib/caxlsx.rb +1 -1
  122. metadata +10 -48
@@ -31,11 +31,11 @@ module Axlsx
31
31
 
32
32
  serializable_attributes :sheet_id, :state
33
33
 
34
- # Initalizes page margin, setup and print options
34
+ # Initializes page margin, setup and print options
35
35
  # @param [Hash] options Options passed in from the initializer
36
36
  def initialize_page_options(options)
37
37
  @page_margins = PageMargins.new options[:page_margins] if options[:page_margins]
38
- @page_setup = PageSetup.new options[:page_setup] if options[:page_setup]
38
+ @page_setup = PageSetup.new options[:page_setup] if options[:page_setup]
39
39
  @print_options = PrintOptions.new options[:print_options] if options[:print_options]
40
40
  @header_footer = HeaderFooter.new options[:header_footer] if options[:header_footer]
41
41
  @row_breaks = RowBreaks.new
@@ -181,7 +181,7 @@ module Axlsx
181
181
  @auto_filter ||= AutoFilter.new self
182
182
  end
183
183
 
184
- # Indicates if the worksheet will be fit by witdh or height to a specific number of pages.
184
+ # Indicates if the worksheet will be fit by width or height to a specific number of pages.
185
185
  # To alter the width or height for page fitting, please use page_setup.fit_to_widht or page_setup.fit_to_height.
186
186
  # If you want the worksheet to fit on more pages (e.g. 2x2), set {PageSetup#fit_to_width} and {PageSetup#fit_to_height} accordingly.
187
187
  # @return Boolean
@@ -421,7 +421,7 @@ module Axlsx
421
421
  # @option options [Array] values
422
422
  # @option options [Array, Symbol] types
423
423
  # @option options [Array, Integer] style
424
- # @option options [Array] widths each member of the widths array will affect how auto_fit behavies.
424
+ # @option options [Array] widths each member of the widths array will affect how auto_fit behaves.
425
425
  # @option options [Float] height the row's height (in points)
426
426
  # @option options [Integer] offset - add empty columns before values
427
427
  # @option options [Array, Boolean] escape_formulas - Whether to treat a value starting with an equal
@@ -552,6 +552,19 @@ module Axlsx
552
552
  end
553
553
  end
554
554
 
555
+ # This is a helper method that lets you specify a default style for multiple columns in a worksheet in one go.
556
+ # This style will be applied for all not-yet-defined cells in a column.
557
+ # Note that you must call column_styles BEFORE adding data, otherwise the styles will not be set successfully for new cells.
558
+ # @param [Integer] styles the cellXfs indexes
559
+ def column_styles(*styles)
560
+ styles.each_with_index do |style, index|
561
+ next if style.nil?
562
+
563
+ Axlsx.validate_unsigned_int(style)
564
+ find_or_create_column_info(index).style = style
565
+ end
566
+ end
567
+
555
568
  # Set the style for cells in a specific column
556
569
  # @param [Integer] index the index of the column
557
570
  # @param [Integer] style the cellXfs index
@@ -653,12 +666,11 @@ module Axlsx
653
666
  # @return [Relationships]
654
667
  def relationships
655
668
  r = Relationships.new
656
- r + [tables.relationships,
657
- worksheet_comments.relationships,
658
- hyperlinks.relationships,
659
- worksheet_drawing.relationship,
660
- pivot_tables.relationships].flatten.compact || []
661
- r
669
+ r.concat [tables.relationships,
670
+ worksheet_comments.relationships,
671
+ hyperlinks.relationships,
672
+ worksheet_drawing.relationship,
673
+ pivot_tables.relationships].flatten.compact
662
674
  end
663
675
 
664
676
  # Returns the cell or cells defined using Excel style A1:B3 references.
@@ -715,7 +727,7 @@ module Axlsx
715
727
  end
716
728
 
717
729
  # shortcut level to specify the outline level for a series of rows
718
- # Oulining is what lets you add collapse and expand to a data set.
730
+ # Outlining is what lets you add collapse and expand to a data set.
719
731
  # @param [Integer] start_index The zero based index of the first row of outlining.
720
732
  # @param [Integer] end_index The zero based index of the last row to be outlined
721
733
  # @param [integer] level The level of outline to apply
@@ -725,7 +737,7 @@ module Axlsx
725
737
  end
726
738
 
727
739
  # shortcut level to specify the outline level for a series of columns
728
- # Oulining is what lets you add collapse and expand to a data set.
740
+ # Outlining is what lets you add collapse and expand to a data set.
729
741
  # @param [Integer] start_index The zero based index of the first column of outlining.
730
742
  # @param [Integer] end_index The zero based index of the last column to be outlined
731
743
  # @param [integer] level The level of outline to apply
@@ -833,13 +845,15 @@ module Axlsx
833
845
  @worksheet_comments ||= WorksheetComments.new self
834
846
  end
835
847
 
836
- def workbook=(v) DataTypeValidator.validate "Worksheet.workbook", Workbook, v; @workbook = v; end
848
+ def workbook=(v)
849
+ DataTypeValidator.validate "Worksheet.workbook", Workbook, v
850
+ @workbook = v
851
+ end
837
852
 
838
853
  def update_column_info(cells, widths = nil)
839
854
  cells.each_with_index do |cell, index|
840
855
  width = widths ? widths[index] : nil
841
856
  col = find_or_create_column_info(index)
842
- next if width == :ignore
843
857
 
844
858
  col.update_width(cell, width, workbook.use_autowidth)
845
859
  end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Axlsx
4
- # A wraper class for comments that defines its on worksheet
5
- # serailization
4
+ # A wrapper class for comments that defines its on worksheet
5
+ # serialization
6
6
  class WorksheetComments
7
7
  # Creates a new WorksheetComments object
8
- # param [Worksheet] worksheet The worksheet comments in thes object belong to
8
+ # param [Worksheet] worksheet The worksheet to which the comments belong
9
9
  def initialize(worksheet)
10
10
  raise ArugumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
11
11
 
@@ -55,12 +55,12 @@ module Axlsx
55
55
  Relationship.new(self, HYPERLINK_R, location, target_mode: :External)
56
56
  end
57
57
 
58
- # Seralize the object
58
+ # Serialize the object
59
59
  # @param [String] str
60
60
  # @return [String]
61
61
  def to_xml_string(str = +'')
62
62
  str << '<hyperlink '
63
- serialized_attributes str, location_or_id
63
+ serialized_attributes str, location_or_id, false
64
64
  str << '/>'
65
65
  end
66
66
 
@@ -8,7 +8,7 @@ module Axlsx
8
8
  def initialize(worksheet)
9
9
  DataTypeValidator.validate "Hyperlinks.worksheet", [Worksheet], worksheet
10
10
  @worksheet = worksheet
11
- super WorksheetHyperlink
11
+ super(WorksheetHyperlink)
12
12
  end
13
13
 
14
14
  # Creates and adds a new hyperlink based on the options provided
@@ -27,7 +27,7 @@ module Axlsx
27
27
  map(&:relationship)
28
28
  end
29
29
 
30
- # seralize the collection of hyperlinks
30
+ # serialize the collection of hyperlinks
31
31
  # @return [String]
32
32
  def to_xml_string(str = +'')
33
33
  return if empty?
data/lib/axlsx.rb CHANGED
@@ -1,38 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'axlsx/version'
4
+
5
+ # gemspec dependencies
3
6
  require 'htmlentities'
4
- require 'axlsx/version'
5
7
  require 'marcel'
6
-
7
- require 'axlsx/util/simple_typed_list'
8
- require 'axlsx/util/constants'
9
- require 'axlsx/util/validators'
10
- require 'axlsx/util/accessors'
11
- require 'axlsx/util/serialized_attributes'
12
- require 'axlsx/util/options_parser'
13
- require 'axlsx/util/mime_type_utils'
14
- require 'axlsx/util/buffered_zip_output_stream'
15
- require 'axlsx/util/zip_command'
16
-
17
- require 'axlsx/stylesheet/styles'
18
-
19
- require 'axlsx/doc_props/app'
20
- require 'axlsx/doc_props/core'
21
- require 'axlsx/content_type/content_type'
22
- require 'axlsx/rels/relationships'
23
-
24
- require 'axlsx/drawing/drawing'
25
- require 'axlsx/workbook/workbook'
26
- require 'axlsx/package'
27
- # required gems
28
8
  require 'nokogiri'
29
9
  require 'zip'
30
10
 
31
- # core dependencies
32
- require 'bigdecimal'
11
+ # Ruby core dependencies
33
12
  require 'cgi'
34
13
  require 'set'
35
14
  require 'time'
15
+ require 'uri'
16
+
17
+ require_relative 'axlsx/util/simple_typed_list'
18
+ require_relative 'axlsx/util/constants'
19
+ require_relative 'axlsx/util/validators'
20
+ require_relative 'axlsx/util/accessors'
21
+ require_relative 'axlsx/util/serialized_attributes'
22
+ require_relative 'axlsx/util/options_parser'
23
+ require_relative 'axlsx/util/mime_type_utils'
24
+ require_relative 'axlsx/util/buffered_zip_output_stream'
25
+ require_relative 'axlsx/util/zip_command'
26
+
27
+ require_relative 'axlsx/stylesheet/styles'
28
+
29
+ require_relative 'axlsx/doc_props/app'
30
+ require_relative 'axlsx/doc_props/core'
31
+ require_relative 'axlsx/content_type/content_type'
32
+ require_relative 'axlsx/rels/relationships'
33
+
34
+ require_relative 'axlsx/drawing/drawing'
35
+ require_relative 'axlsx/workbook/workbook'
36
+ require_relative 'axlsx/package'
36
37
 
37
38
  if Gem.loaded_specs.key?("axlsx_styler")
38
39
  raise StandardError, "Please remove `axlsx_styler` from your Gemfile, the associated functionality is now built-in to `caxlsx` directly."
@@ -88,12 +89,10 @@ module Axlsx
88
89
  letters_str = name[/[A-Z]+/]
89
90
 
90
91
  # capitalization?!?
91
- v = letters_str.reverse.chars.reduce({ base: 1, i: 0 }) do |val, c|
92
+ v = letters_str.reverse.chars.each_with_object({ base: 1, i: 0 }) do |c, val|
92
93
  val[:i] += ((c.bytes.first - 64) * val[:base])
93
94
 
94
95
  val[:base] *= 26
95
-
96
- next val
97
96
  end
98
97
 
99
98
  col_index = (v[:i] - 1)
@@ -154,7 +153,7 @@ module Axlsx
154
153
  end
155
154
  end
156
155
 
157
- # performs the increadible feat of changing snake_case to CamelCase
156
+ # performs the incredible feat of changing snake_case to CamelCase
158
157
  # @param [String] s The snake case string to camelize
159
158
  # @return [String]
160
159
  def self.camel(s = "", all_caps = true)
@@ -163,7 +162,7 @@ module Axlsx
163
162
  s.gsub(/_(.)/) { ::Regexp.last_match(1).upcase }
164
163
  end
165
164
 
166
- # returns the provided string with all invalid control charaters
165
+ # returns the provided string with all invalid control characters
167
166
  # removed.
168
167
  # @param [String] str The string to process
169
168
  # @return [String]
@@ -229,4 +228,19 @@ module Axlsx
229
228
  Axlsx.validate_boolean(value)
230
229
  @escape_formulas = value
231
230
  end
231
+
232
+ # Returns a URI parser instance, preferring RFC2396_PARSER if available,
233
+ # otherwise falling back to DEFAULT_PARSER. This method ensures consistent
234
+ # URI parsing across different Ruby versions.
235
+ # This method can be removed when dropping compatibility for Ruby < 3.4
236
+ # See https://github.com/ruby/uri/pull/114 for details.
237
+ # @return [Object]
238
+ def self.uri_parser
239
+ @uri_parser ||=
240
+ if defined?(URI::RFC2396_PARSER)
241
+ URI::RFC2396_PARSER
242
+ else
243
+ URI::DEFAULT_PARSER
244
+ end
245
+ end
232
246
  end
data/lib/caxlsx.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'axlsx'
3
+ require_relative 'axlsx'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caxlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Randy Morgan
8
8
  - Jurriaan Pruis
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-10-30 00:00:00.000000000 Z
12
+ date: 2024-12-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: htmlentities
@@ -85,48 +85,6 @@ dependencies:
85
85
  - - "<"
86
86
  - !ruby/object:Gem::Version
87
87
  version: '3'
88
- - !ruby/object:Gem::Dependency
89
- name: kramdown
90
- requirement: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - "~>"
93
- - !ruby/object:Gem::Version
94
- version: '2.3'
95
- type: :development
96
- prerelease: false
97
- version_requirements: !ruby/object:Gem::Requirement
98
- requirements:
99
- - - "~>"
100
- - !ruby/object:Gem::Version
101
- version: '2.3'
102
- - !ruby/object:Gem::Dependency
103
- name: timecop
104
- requirement: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - "~>"
107
- - !ruby/object:Gem::Version
108
- version: 0.9.0
109
- type: :development
110
- prerelease: false
111
- version_requirements: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - "~>"
114
- - !ruby/object:Gem::Version
115
- version: 0.9.0
116
- - !ruby/object:Gem::Dependency
117
- name: yard
118
- requirement: !ruby/object:Gem::Requirement
119
- requirements:
120
- - - "~>"
121
- - !ruby/object:Gem::Version
122
- version: 0.9.8
123
- type: :development
124
- prerelease: false
125
- version_requirements: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: 0.9.8
130
88
  description: 'xlsx spreadsheet generation with charts, images, automated column width,
131
89
  customizable styles and full schema validation. Axlsx helps you create beautiful
132
90
  Office Open XML Spreadsheet documents (Excel, Google Spreadsheets, Numbers, LibreOffice)
@@ -183,6 +141,7 @@ files:
183
141
  - lib/axlsx/drawing/pic.rb
184
142
  - lib/axlsx/drawing/picture_locking.rb
185
143
  - lib/axlsx/drawing/pie_3D_chart.rb
144
+ - lib/axlsx/drawing/pie_chart.rb
186
145
  - lib/axlsx/drawing/pie_series.rb
187
146
  - lib/axlsx/drawing/scaling.rb
188
147
  - lib/axlsx/drawing/scatter_chart.rb
@@ -334,8 +293,11 @@ homepage: https://github.com/caxlsx/caxlsx
334
293
  licenses:
335
294
  - MIT
336
295
  metadata:
296
+ bug_tracker_uri: https://github.com/caxlsx/caxlsx/issues
297
+ changelog_uri: https://github.com/caxlsx/caxlsx/blob/master/CHANGELOG.md
298
+ source_code_uri: https://github.com/caxlsx/caxlsx
337
299
  rubygems_mfa_required: 'true'
338
- post_install_message:
300
+ post_install_message:
339
301
  rdoc_options: []
340
302
  require_paths:
341
303
  - lib
@@ -350,8 +312,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
312
  - !ruby/object:Gem::Version
351
313
  version: '0'
352
314
  requirements: []
353
- rubygems_version: 3.2.3
354
- signing_key:
315
+ rubygems_version: 3.4.19
316
+ signing_key:
355
317
  specification_version: 4
356
318
  summary: Excel OOXML (xlsx) with charts, styles, images and autowidth columns.
357
319
  test_files: []