caxlsx 3.4.1 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -1
  3. data/README.md +9 -11
  4. data/Rakefile +7 -5
  5. data/examples/generate.rb +3 -1
  6. data/lib/axlsx/content_type/abstract_content_type.rb +12 -4
  7. data/lib/axlsx/content_type/content_type.rb +8 -6
  8. data/lib/axlsx/content_type/default.rb +7 -2
  9. data/lib/axlsx/content_type/override.rb +7 -2
  10. data/lib/axlsx/doc_props/app.rb +95 -26
  11. data/lib/axlsx/doc_props/core.rb +8 -6
  12. data/lib/axlsx/drawing/area_chart.rb +10 -8
  13. data/lib/axlsx/drawing/area_series.rb +20 -12
  14. data/lib/axlsx/drawing/ax_data_source.rb +2 -0
  15. data/lib/axlsx/drawing/axes.rb +6 -4
  16. data/lib/axlsx/drawing/axis.rb +42 -22
  17. data/lib/axlsx/drawing/bar_3D_chart.rb +14 -12
  18. data/lib/axlsx/drawing/bar_chart.rb +13 -11
  19. data/lib/axlsx/drawing/bar_series.rb +20 -9
  20. data/lib/axlsx/drawing/bubble_chart.rb +6 -4
  21. data/lib/axlsx/drawing/bubble_series.rb +8 -6
  22. data/lib/axlsx/drawing/cat_axis.rb +29 -12
  23. data/lib/axlsx/drawing/chart.rb +46 -20
  24. data/lib/axlsx/drawing/d_lbls.rb +10 -8
  25. data/lib/axlsx/drawing/drawing.rb +59 -56
  26. data/lib/axlsx/drawing/graphic_frame.rb +6 -4
  27. data/lib/axlsx/drawing/hyperlink.rb +19 -8
  28. data/lib/axlsx/drawing/line_3D_chart.rb +7 -5
  29. data/lib/axlsx/drawing/line_chart.rb +10 -8
  30. data/lib/axlsx/drawing/line_series.rb +20 -12
  31. data/lib/axlsx/drawing/marker.rb +24 -7
  32. data/lib/axlsx/drawing/num_data.rb +9 -7
  33. data/lib/axlsx/drawing/num_data_source.rb +9 -7
  34. data/lib/axlsx/drawing/num_val.rb +7 -5
  35. data/lib/axlsx/drawing/one_cell_anchor.rb +13 -5
  36. data/lib/axlsx/drawing/pic.rb +26 -15
  37. data/lib/axlsx/drawing/picture_locking.rb +3 -1
  38. data/lib/axlsx/drawing/pie_3D_chart.rb +6 -4
  39. data/lib/axlsx/drawing/pie_chart.rb +36 -0
  40. data/lib/axlsx/drawing/pie_series.rb +23 -9
  41. data/lib/axlsx/drawing/scaling.rb +25 -9
  42. data/lib/axlsx/drawing/scatter_chart.rb +7 -5
  43. data/lib/axlsx/drawing/scatter_series.rb +14 -12
  44. data/lib/axlsx/drawing/ser_axis.rb +13 -5
  45. data/lib/axlsx/drawing/series.rb +13 -5
  46. data/lib/axlsx/drawing/series_title.rb +6 -4
  47. data/lib/axlsx/drawing/str_data.rb +7 -5
  48. data/lib/axlsx/drawing/str_val.rb +6 -4
  49. data/lib/axlsx/drawing/title.rb +13 -14
  50. data/lib/axlsx/drawing/two_cell_anchor.rb +4 -2
  51. data/lib/axlsx/drawing/val_axis.rb +4 -2
  52. data/lib/axlsx/drawing/view_3D.rb +16 -8
  53. data/lib/axlsx/drawing/vml_drawing.rb +18 -16
  54. data/lib/axlsx/drawing/vml_shape.rb +24 -22
  55. data/lib/axlsx/package.rb +73 -67
  56. data/lib/axlsx/rels/relationship.rb +21 -6
  57. data/lib/axlsx/rels/relationships.rb +6 -4
  58. data/lib/axlsx/stylesheet/border.rb +15 -4
  59. data/lib/axlsx/stylesheet/border_pr.rb +19 -6
  60. data/lib/axlsx/stylesheet/cell_alignment.rb +41 -10
  61. data/lib/axlsx/stylesheet/cell_protection.rb +12 -3
  62. data/lib/axlsx/stylesheet/cell_style.rb +33 -8
  63. data/lib/axlsx/stylesheet/color.rb +15 -7
  64. data/lib/axlsx/stylesheet/dxf.rb +34 -9
  65. data/lib/axlsx/stylesheet/fill.rb +7 -2
  66. data/lib/axlsx/stylesheet/font.rb +65 -17
  67. data/lib/axlsx/stylesheet/gradient_fill.rb +12 -4
  68. data/lib/axlsx/stylesheet/gradient_stop.rb +14 -5
  69. data/lib/axlsx/stylesheet/num_fmt.rb +14 -10
  70. data/lib/axlsx/stylesheet/pattern_fill.rb +18 -5
  71. data/lib/axlsx/stylesheet/styles.rb +124 -82
  72. data/lib/axlsx/stylesheet/table_style.rb +19 -6
  73. data/lib/axlsx/stylesheet/table_style_element.rb +15 -4
  74. data/lib/axlsx/stylesheet/table_styles.rb +14 -5
  75. data/lib/axlsx/stylesheet/xf.rb +73 -18
  76. data/lib/axlsx/util/accessors.rb +10 -6
  77. data/lib/axlsx/util/buffered_zip_output_stream.rb +60 -0
  78. data/lib/axlsx/util/constants.rb +117 -104
  79. data/lib/axlsx/util/mime_type_utils.rb +3 -5
  80. data/lib/axlsx/util/options_parser.rb +3 -1
  81. data/lib/axlsx/util/serialized_attributes.rb +42 -17
  82. data/lib/axlsx/util/simple_typed_list.rb +47 -47
  83. data/lib/axlsx/util/storage.rb +11 -10
  84. data/lib/axlsx/util/validators.rb +101 -41
  85. data/lib/axlsx/util/zip_command.rb +10 -10
  86. data/lib/axlsx/version.rb +3 -1
  87. data/lib/axlsx/workbook/defined_name.rb +6 -4
  88. data/lib/axlsx/workbook/defined_names.rb +4 -2
  89. data/lib/axlsx/workbook/shared_strings_table.rb +8 -6
  90. data/lib/axlsx/workbook/workbook.rb +94 -79
  91. data/lib/axlsx/workbook/workbook_view.rb +3 -1
  92. data/lib/axlsx/workbook/workbook_views.rb +4 -2
  93. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +65 -8
  94. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +11 -5
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +11 -7
  96. data/lib/axlsx/workbook/worksheet/auto_filter/sort_condition.rb +51 -0
  97. data/lib/axlsx/workbook/worksheet/auto_filter/sort_state.rb +56 -0
  98. data/lib/axlsx/workbook/worksheet/border_creator.rb +5 -3
  99. data/lib/axlsx/workbook/worksheet/break.rb +3 -1
  100. data/lib/axlsx/workbook/worksheet/cell.rb +83 -64
  101. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +31 -27
  102. data/lib/axlsx/workbook/worksheet/cfvo.rb +11 -3
  103. data/lib/axlsx/workbook/worksheet/cfvos.rb +3 -1
  104. data/lib/axlsx/workbook/worksheet/col.rb +5 -3
  105. data/lib/axlsx/workbook/worksheet/col_breaks.rb +6 -4
  106. data/lib/axlsx/workbook/worksheet/color_scale.rb +12 -10
  107. data/lib/axlsx/workbook/worksheet/cols.rb +4 -2
  108. data/lib/axlsx/workbook/worksheet/comment.rb +8 -6
  109. data/lib/axlsx/workbook/worksheet/comments.rb +6 -4
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +16 -5
  111. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +73 -16
  112. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +4 -2
  113. data/lib/axlsx/workbook/worksheet/data_bar.rb +14 -13
  114. data/lib/axlsx/workbook/worksheet/data_validation.rb +69 -28
  115. data/lib/axlsx/workbook/worksheet/data_validations.rb +4 -2
  116. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +7 -5
  117. data/lib/axlsx/workbook/worksheet/dimension.rb +4 -2
  118. data/lib/axlsx/workbook/worksheet/header_footer.rb +4 -2
  119. data/lib/axlsx/workbook/worksheet/icon_set.rb +38 -9
  120. data/lib/axlsx/workbook/worksheet/merged_cells.rb +6 -6
  121. data/lib/axlsx/workbook/worksheet/outline_pr.rb +6 -2
  122. data/lib/axlsx/workbook/worksheet/page_margins.rb +39 -11
  123. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +7 -4
  124. data/lib/axlsx/workbook/worksheet/page_setup.rb +34 -9
  125. data/lib/axlsx/workbook/worksheet/pane.rb +17 -9
  126. data/lib/axlsx/workbook/worksheet/pivot_table.rb +20 -19
  127. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +8 -6
  128. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +3 -1
  129. data/lib/axlsx/workbook/worksheet/print_options.rb +3 -1
  130. data/lib/axlsx/workbook/worksheet/protected_range.rb +3 -1
  131. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +6 -4
  132. data/lib/axlsx/workbook/worksheet/rich_text.rb +3 -1
  133. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +46 -24
  134. data/lib/axlsx/workbook/worksheet/row.rb +11 -9
  135. data/lib/axlsx/workbook/worksheet/row_breaks.rb +7 -5
  136. data/lib/axlsx/workbook/worksheet/selection.rb +15 -7
  137. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +6 -2
  138. data/lib/axlsx/workbook/worksheet/sheet_data.rb +3 -1
  139. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +6 -2
  140. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +8 -4
  141. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +11 -9
  142. data/lib/axlsx/workbook/worksheet/sheet_view.rb +38 -15
  143. data/lib/axlsx/workbook/worksheet/table.rb +9 -7
  144. data/lib/axlsx/workbook/worksheet/table_style_info.rb +4 -2
  145. data/lib/axlsx/workbook/worksheet/tables.rb +4 -2
  146. data/lib/axlsx/workbook/worksheet/worksheet.rb +56 -39
  147. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +4 -2
  148. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +8 -2
  149. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +7 -5
  150. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +5 -3
  151. data/lib/axlsx.rb +56 -42
  152. data/lib/caxlsx.rb +3 -1
  153. metadata +39 -71
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Axlsx
2
4
  # A worksheet hyperlink object. Note that this is not the same as a drawing hyperlink object.
3
5
  class WorksheetHyperlink
@@ -39,7 +41,7 @@ module Axlsx
39
41
  # @param [String|Cell] cell_reference The string reference or cell that defines where this hyperlink shows in the worksheet.
40
42
  def ref=(cell_reference)
41
43
  cell_reference = cell_reference.r if cell_reference.is_a?(Cell)
42
- Axlsx::validate_string cell_reference
44
+ Axlsx.validate_string cell_reference
43
45
  @ref = cell_reference
44
46
  end
45
47
 
@@ -50,15 +52,15 @@ module Axlsx
50
52
  def relationship
51
53
  return unless @target == :external
52
54
 
53
- Relationship.new(self, HYPERLINK_R, location, :target_mode => :External)
55
+ Relationship.new(self, HYPERLINK_R, location, target_mode: :External)
54
56
  end
55
57
 
56
58
  # Seralize the object
57
59
  # @param [String] str
58
60
  # @return [String]
59
- def to_xml_string(str = '')
61
+ def to_xml_string(str = +'')
60
62
  str << '<hyperlink '
61
- serialized_attributes str, location_or_id
63
+ serialized_attributes str, location_or_id, false
62
64
  str << '/>'
63
65
  end
64
66
 
@@ -67,7 +69,7 @@ module Axlsx
67
69
  # r:id should only be specified for external targets.
68
70
  # @return [Hash]
69
71
  def location_or_id
70
- @target == :external ? { :"r:id" => relationship.Id } : { :location => Axlsx::coder.encode(location) }
72
+ @target == :external ? { "r:id": relationship.Id } : { location: Axlsx.coder.encode(location) }
71
73
  end
72
74
  end
73
75
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Axlsx
2
4
  # A collection of hyperlink objects for a worksheet
3
5
  class WorksheetHyperlinks < SimpleTypedList
@@ -6,7 +8,7 @@ module Axlsx
6
8
  def initialize(worksheet)
7
9
  DataTypeValidator.validate "Hyperlinks.worksheet", [Worksheet], worksheet
8
10
  @worksheet = worksheet
9
- super WorksheetHyperlink
11
+ super(WorksheetHyperlink)
10
12
  end
11
13
 
12
14
  # Creates and adds a new hyperlink based on the options provided
@@ -22,12 +24,12 @@ module Axlsx
22
24
  def relationships
23
25
  return [] if empty?
24
26
 
25
- map { |hyperlink| hyperlink.relationship }
27
+ map(&:relationship)
26
28
  end
27
29
 
28
30
  # seralize the collection of hyperlinks
29
31
  # @return [String]
30
- def to_xml_string(str = '')
32
+ def to_xml_string(str = +'')
31
33
  return if empty?
32
34
 
33
35
  str << '<hyperlinks>'
data/lib/axlsx.rb CHANGED
@@ -1,41 +1,41 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'htmlentities'
2
- require 'axlsx/version.rb'
4
+ require 'axlsx/version'
3
5
  require 'marcel'
4
6
 
5
- require 'axlsx/util/simple_typed_list.rb'
6
- require 'axlsx/util/constants.rb'
7
- require 'axlsx/util/validators.rb'
8
- require 'axlsx/util/accessors.rb'
7
+ require 'axlsx/util/simple_typed_list'
8
+ require 'axlsx/util/constants'
9
+ require 'axlsx/util/validators'
10
+ require 'axlsx/util/accessors'
9
11
  require 'axlsx/util/serialized_attributes'
10
12
  require 'axlsx/util/options_parser'
11
13
  require 'axlsx/util/mime_type_utils'
14
+ require 'axlsx/util/buffered_zip_output_stream'
12
15
  require 'axlsx/util/zip_command'
13
16
 
14
- require 'axlsx/stylesheet/styles.rb'
17
+ require 'axlsx/stylesheet/styles'
15
18
 
16
- require 'axlsx/doc_props/app.rb'
17
- require 'axlsx/doc_props/core.rb'
18
- require 'axlsx/content_type/content_type.rb'
19
- require 'axlsx/rels/relationships.rb'
19
+ require 'axlsx/doc_props/app'
20
+ require 'axlsx/doc_props/core'
21
+ require 'axlsx/content_type/content_type'
22
+ require 'axlsx/rels/relationships'
20
23
 
21
- require 'axlsx/drawing/drawing.rb'
22
- require 'axlsx/workbook/workbook.rb'
23
- require 'axlsx/package.rb'
24
+ require 'axlsx/drawing/drawing'
25
+ require 'axlsx/workbook/workbook'
26
+ require 'axlsx/package'
24
27
  # required gems
25
28
  require 'nokogiri'
26
29
  require 'zip'
27
30
 
28
31
  # core dependencies
29
32
  require 'bigdecimal'
33
+ require 'cgi'
30
34
  require 'set'
31
35
  require 'time'
32
36
 
33
- begin
34
- if Gem.loaded_specs.has_key?("axlsx_styler")
35
- raise StandardError.new("Please remove `axlsx_styler` from your Gemfile, the associated functionality is now built-in to `caxlsx` directly.")
36
- end
37
- rescue
38
- # Do nothing
37
+ if Gem.loaded_specs.key?("axlsx_styler")
38
+ raise StandardError, "Please remove `axlsx_styler` from your Gemfile, the associated functionality is now built-in to `caxlsx` directly."
39
39
  end
40
40
 
41
41
  # xlsx generation with charts, images, automated column width, customizable styles
@@ -50,7 +50,7 @@ module Axlsx
50
50
  #
51
51
  # Defining as a class method on Axlsx to refrain from monkeypatching Object for all users of this gem.
52
52
  def self.instance_values_for(object)
53
- Hash[object.instance_variables.map { |name| [name.to_s[1..-1], object.instance_variable_get(name)] }]
53
+ object.instance_variables.to_h { |name| [name.to_s[1..], object.instance_variable_get(name)] }
54
54
  end
55
55
 
56
56
  # determines the cell range for the items provided
@@ -88,7 +88,7 @@ module Axlsx
88
88
  letters_str = name[/[A-Z]+/]
89
89
 
90
90
  # capitalization?!?
91
- v = letters_str.reverse.chars.reduce({ :base => 1, :i => 0 }) do |val, c|
91
+ v = letters_str.reverse.chars.reduce({ base: 1, i: 0 }) do |val, c|
92
92
  val[:i] += ((c.bytes.first - 64) * val[:base])
93
93
 
94
94
  val[:base] *= 26
@@ -102,37 +102,51 @@ module Axlsx
102
102
 
103
103
  row_index = (numbers_str.to_i - 1)
104
104
 
105
- return [col_index, row_index]
105
+ [col_index, row_index]
106
106
  end
107
107
 
108
108
  # converts the column index into alphabetical values.
109
109
  # @note This follows the standard spreadsheet convention of naming columns A to Z, followed by AA to AZ etc.
110
110
  # @return [String]
111
111
  def self.col_ref(index)
112
- chars = ''
113
- while index >= 26 do
114
- index, char = index.divmod(26)
115
- chars.prepend((char + 65).chr)
116
- index -= 1
112
+ # Every row will call this for each column / cell and so we can cache result and avoid lots of small object
113
+ # allocations.
114
+ @col_ref ||= {}
115
+ @col_ref[index] ||= begin
116
+ i = index
117
+ chars = +''
118
+ while i >= 26
119
+ i, char = i.divmod(26)
120
+ chars.prepend((char + 65).chr)
121
+ i -= 1
122
+ end
123
+ chars.prepend((i + 65).chr)
124
+ chars.freeze
117
125
  end
118
- chars.prepend((index + 65).chr)
119
- chars
126
+ end
127
+
128
+ # converts the row index into string values.
129
+ # @note The spreadsheet rows are 1-based and the passed in index is 0-based, so we add 1.
130
+ # @return [String]
131
+ def self.row_ref(index)
132
+ @row_ref ||= {}
133
+ @row_ref[index] ||= (index + 1).to_s.freeze
120
134
  end
121
135
 
122
136
  # @return [String] The alpha(column)numeric(row) reference for this sell.
123
137
  # @example Relative Cell Reference
124
138
  # ws.rows.first.cells.first.r #=> "A1"
125
139
  def self.cell_r(c_index, r_index)
126
- col_ref(c_index) << (r_index + 1).to_s
140
+ col_ref(c_index) + row_ref(r_index)
127
141
  end
128
142
 
129
- # Creates an array of individual cell references based on an excel reference range.
143
+ # Creates an array of individual cell references based on an Excel reference range.
130
144
  # @param [String] range A cell range, for example A1:D5
131
145
  # @return [Array]
132
146
  def self.range_to_a(range)
133
- range.match(/^(\w+?\d+)\:(\w+?\d+)$/)
134
- start_col, start_row = name_to_indices($1)
135
- end_col, end_row = name_to_indices($2)
147
+ range =~ /^(\w+?\d+):(\w+?\d+)$/
148
+ start_col, start_row = name_to_indices(::Regexp.last_match(1))
149
+ end_col, end_row = name_to_indices(::Regexp.last_match(2))
136
150
  (start_row..end_row).to_a.map do |row_num|
137
151
  (start_col..end_col).to_a.map do |col_num|
138
152
  cell_r(col_num, row_num)
@@ -146,7 +160,7 @@ module Axlsx
146
160
  def self.camel(s = "", all_caps = true)
147
161
  s = s.to_s
148
162
  s = s.capitalize if all_caps
149
- s.gsub(/_(.)/) { $1.upcase }
163
+ s.gsub(/_(.)/) { ::Regexp.last_match(1).upcase }
150
164
  end
151
165
 
152
166
  # returns the provided string with all invalid control charaters
@@ -167,18 +181,18 @@ module Axlsx
167
181
  # @param [Object] value The value to process
168
182
  # @return [Object]
169
183
  def self.booleanize(value)
170
- if value == true || value == false
171
- value ? 1 : 0
184
+ if BOOLEAN_VALUES.include?(value)
185
+ value ? '1' : '0'
172
186
  else
173
187
  value
174
188
  end
175
189
  end
176
190
 
177
191
  # utility method for performing a deep merge on a Hash
178
- # @param [Hash] Hash to merge into
179
- # @param [Hash] Hash to be added
192
+ # @param [Hash] first_hash Hash to merge into
193
+ # @param [Hash] second_hash Hash to be added
180
194
  def self.hash_deep_merge(first_hash, second_hash)
181
- first_hash.merge(second_hash) do |key, this_val, other_val|
195
+ first_hash.merge(second_hash) do |_key, this_val, other_val|
182
196
  if this_val.is_a?(Hash) && other_val.is_a?(Hash)
183
197
  Axlsx.hash_deep_merge(this_val, other_val)
184
198
  else
@@ -189,7 +203,7 @@ module Axlsx
189
203
 
190
204
  # Instructs the serializer to not try to escape cell value input.
191
205
  # This will give you a huge speed bonus, but if you content has <, > or other xml character data
192
- # the workbook will be invalid and excel will complain.
206
+ # the workbook will be invalid and Excel will complain.
193
207
  def self.trust_input
194
208
  @trust_input ||= false
195
209
  end
@@ -206,7 +220,7 @@ module Axlsx
206
220
  # See https://www.owasp.org/index.php/CSV_Injection for details.
207
221
  # @return [Boolean]
208
222
  def self.escape_formulas
209
- !defined?(@escape_formulas) || @escape_formulas.nil? ? false : @escape_formulas
223
+ !defined?(@escape_formulas) || @escape_formulas.nil? ? true : @escape_formulas
210
224
  end
211
225
 
212
226
  # Sets whether to treat values starting with an equals sign as formulas or as literal strings.
data/lib/caxlsx.rb CHANGED
@@ -1 +1,3 @@
1
- require 'axlsx.rb'
1
+ # frozen_string_literal: true
2
+
3
+ require 'axlsx'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caxlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.1
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Randy Morgan
@@ -9,48 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-04-23 00:00:00.000000000 Z
12
+ date: 2024-02-28 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: nokogiri
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '1.10'
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.10.4
24
- type: :runtime
25
- prerelease: false
26
- version_requirements: !ruby/object:Gem::Requirement
27
- requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '1.10'
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 1.10.4
34
- - !ruby/object:Gem::Dependency
35
- name: rubyzip
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 1.3.0
41
- - - "<"
42
- - !ruby/object:Gem::Version
43
- version: '3'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 1.3.0
51
- - - "<"
52
- - !ruby/object:Gem::Version
53
- version: '3'
54
14
  - !ruby/object:Gem::Dependency
55
15
  name: htmlentities
56
16
  requirement: !ruby/object:Gem::Requirement
@@ -86,54 +46,54 @@ dependencies:
86
46
  - !ruby/object:Gem::Version
87
47
  version: '1.0'
88
48
  - !ruby/object:Gem::Dependency
89
- name: yard
49
+ name: nokogiri
90
50
  requirement: !ruby/object:Gem::Requirement
91
51
  requirements:
92
52
  - - "~>"
93
53
  - !ruby/object:Gem::Version
94
- version: 0.9.8
95
- type: :development
96
- prerelease: false
97
- version_requirements: !ruby/object:Gem::Requirement
98
- requirements:
99
- - - "~>"
100
- - !ruby/object:Gem::Version
101
- version: 0.9.8
102
- - !ruby/object:Gem::Dependency
103
- name: kramdown
104
- requirement: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - "~>"
54
+ version: '1.10'
55
+ - - ">="
107
56
  - !ruby/object:Gem::Version
108
- version: '2.3'
109
- type: :development
57
+ version: 1.10.4
58
+ type: :runtime
110
59
  prerelease: false
111
60
  version_requirements: !ruby/object:Gem::Requirement
112
61
  requirements:
113
62
  - - "~>"
114
63
  - !ruby/object:Gem::Version
115
- version: '2.3'
64
+ version: '1.10'
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.10.4
116
68
  - !ruby/object:Gem::Dependency
117
- name: timecop
69
+ name: rubyzip
118
70
  requirement: !ruby/object:Gem::Requirement
119
71
  requirements:
120
- - - "~>"
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.3.0
75
+ - - "<"
121
76
  - !ruby/object:Gem::Version
122
- version: 0.9.0
123
- type: :development
77
+ version: '3'
78
+ type: :runtime
124
79
  prerelease: false
125
80
  version_requirements: !ruby/object:Gem::Requirement
126
81
  requirements:
127
- - - "~>"
82
+ - - ">="
128
83
  - !ruby/object:Gem::Version
129
- version: 0.9.0
130
- description: " xlsx spreadsheet generation with charts, images, automated column
131
- width, customizable styles and full schema validation. Axlsx helps you create beautiful
132
- Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice)
84
+ version: 1.3.0
85
+ - - "<"
86
+ - !ruby/object:Gem::Version
87
+ version: '3'
88
+ description: 'xlsx spreadsheet generation with charts, images, automated column width,
89
+ customizable styles and full schema validation. Axlsx helps you create beautiful
90
+ Office Open XML Spreadsheet documents (Excel, Google Spreadsheets, Numbers, LibreOffice)
133
91
  without having to understand the entire ECMA specification. Check out the README
134
92
  for some examples of how easy it is. Best of all, you can validate your xlsx file
135
93
  before serialization so you know for sure that anything generated is going to load
136
- on your client's machine.\n"
94
+ on your client''s machine.
95
+
96
+ '
137
97
  email: noel@peden.biz
138
98
  executables: []
139
99
  extensions: []
@@ -181,6 +141,7 @@ files:
181
141
  - lib/axlsx/drawing/pic.rb
182
142
  - lib/axlsx/drawing/picture_locking.rb
183
143
  - lib/axlsx/drawing/pie_3D_chart.rb
144
+ - lib/axlsx/drawing/pie_chart.rb
184
145
  - lib/axlsx/drawing/pie_series.rb
185
146
  - lib/axlsx/drawing/scaling.rb
186
147
  - lib/axlsx/drawing/scatter_chart.rb
@@ -218,6 +179,7 @@ files:
218
179
  - lib/axlsx/stylesheet/table_styles.rb
219
180
  - lib/axlsx/stylesheet/xf.rb
220
181
  - lib/axlsx/util/accessors.rb
182
+ - lib/axlsx/util/buffered_zip_output_stream.rb
221
183
  - lib/axlsx/util/constants.rb
222
184
  - lib/axlsx/util/mime_type_utils.rb
223
185
  - lib/axlsx/util/options_parser.rb
@@ -236,6 +198,8 @@ files:
236
198
  - lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb
237
199
  - lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb
238
200
  - lib/axlsx/workbook/worksheet/auto_filter/filters.rb
201
+ - lib/axlsx/workbook/worksheet/auto_filter/sort_condition.rb
202
+ - lib/axlsx/workbook/worksheet/auto_filter/sort_state.rb
239
203
  - lib/axlsx/workbook/worksheet/border_creator.rb
240
204
  - lib/axlsx/workbook/worksheet/break.rb
241
205
  - lib/axlsx/workbook/worksheet/cell.rb
@@ -328,7 +292,11 @@ files:
328
292
  homepage: https://github.com/caxlsx/caxlsx
329
293
  licenses:
330
294
  - MIT
331
- metadata: {}
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
299
+ rubygems_mfa_required: 'true'
332
300
  post_install_message:
333
301
  rdoc_options: []
334
302
  require_paths:
@@ -337,7 +305,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
337
305
  requirements:
338
306
  - - ">="
339
307
  - !ruby/object:Gem::Version
340
- version: '2.3'
308
+ version: '2.6'
341
309
  required_rubygems_version: !ruby/object:Gem::Requirement
342
310
  requirements:
343
311
  - - ">="