axlsx 1.3.1 → 1.3.2

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.
Files changed (99) hide show
  1. data/README.md +13 -5
  2. data/examples/colored_links.rb +59 -0
  3. data/examples/example.rb +421 -266
  4. data/examples/example.xlsx +0 -0
  5. data/examples/example_streamed.xlsx +0 -0
  6. data/examples/finance.rb +82 -0
  7. data/examples/finance.xlsx +0 -0
  8. data/examples/financial.xlsx +0 -0
  9. data/examples/no-use_autowidth.xlsx +0 -0
  10. data/examples/shared_strings_example.xlsx +0 -0
  11. data/examples/where_is_my_color.xlsx +0 -0
  12. data/lib/axlsx.rb +11 -4
  13. data/lib/axlsx/content_type/abstract_content_type.rb +32 -0
  14. data/lib/axlsx/content_type/content_type.rb +1 -1
  15. data/lib/axlsx/content_type/default.rb +6 -37
  16. data/lib/axlsx/content_type/override.rb +6 -38
  17. data/lib/axlsx/doc_props/app.rb +7 -4
  18. data/lib/axlsx/drawing/axis.rb +3 -3
  19. data/lib/axlsx/drawing/chart.rb +2 -3
  20. data/lib/axlsx/drawing/d_lbls.rb +21 -31
  21. data/lib/axlsx/drawing/drawing.rb +6 -0
  22. data/lib/axlsx/drawing/hyperlink.rb +40 -32
  23. data/lib/axlsx/drawing/marker.rb +13 -13
  24. data/lib/axlsx/drawing/num_data.rb +6 -6
  25. data/lib/axlsx/drawing/num_data_source.rb +17 -16
  26. data/lib/axlsx/drawing/one_cell_anchor.rb +20 -22
  27. data/lib/axlsx/drawing/pic.rb +25 -27
  28. data/lib/axlsx/drawing/picture_locking.rb +12 -44
  29. data/lib/axlsx/drawing/scaling.rb +13 -13
  30. data/lib/axlsx/drawing/scatter_chart.rb +3 -3
  31. data/lib/axlsx/drawing/series.rb +3 -6
  32. data/lib/axlsx/drawing/str_data.rb +3 -3
  33. data/lib/axlsx/drawing/str_val.rb +7 -8
  34. data/lib/axlsx/drawing/view_3D.rb +51 -37
  35. data/lib/axlsx/drawing/vml_shape.rb +23 -23
  36. data/lib/axlsx/package.rb +14 -16
  37. data/lib/axlsx/stylesheet/border.rb +29 -20
  38. data/lib/axlsx/stylesheet/border_pr.rb +5 -4
  39. data/lib/axlsx/stylesheet/cell_alignment.rb +55 -29
  40. data/lib/axlsx/stylesheet/cell_protection.rb +7 -4
  41. data/lib/axlsx/stylesheet/cell_style.rb +19 -14
  42. data/lib/axlsx/stylesheet/color.rb +19 -16
  43. data/lib/axlsx/stylesheet/dxf.rb +4 -4
  44. data/lib/axlsx/stylesheet/font.rb +22 -22
  45. data/lib/axlsx/stylesheet/gradient_fill.rb +45 -21
  46. data/lib/axlsx/stylesheet/num_fmt.rb +22 -13
  47. data/lib/axlsx/stylesheet/pattern_fill.rb +12 -21
  48. data/lib/axlsx/stylesheet/styles.rb +1 -1
  49. data/lib/axlsx/stylesheet/table_style.rb +17 -16
  50. data/lib/axlsx/stylesheet/table_style_element.rb +15 -11
  51. data/lib/axlsx/stylesheet/table_styles.rb +14 -11
  52. data/lib/axlsx/stylesheet/xf.rb +28 -26
  53. data/lib/axlsx/util/accessors.rb +49 -0
  54. data/lib/axlsx/util/options_parser.rb +15 -0
  55. data/lib/axlsx/util/serialized_attributes.rb +46 -0
  56. data/lib/axlsx/util/simple_typed_list.rb +16 -4
  57. data/lib/axlsx/version.rb +1 -1
  58. data/lib/axlsx/workbook/defined_name.rb +13 -58
  59. data/lib/axlsx/workbook/workbook.rb +27 -1
  60. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +11 -19
  61. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +20 -27
  62. data/lib/axlsx/workbook/worksheet/cell.rb +38 -39
  63. data/lib/axlsx/workbook/worksheet/cfvo.rb +15 -15
  64. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -0
  65. data/lib/axlsx/workbook/worksheet/col.rb +34 -27
  66. data/lib/axlsx/workbook/worksheet/color_scale.rb +7 -13
  67. data/lib/axlsx/workbook/worksheet/comment.rb +14 -11
  68. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +11 -11
  69. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +27 -25
  70. data/lib/axlsx/workbook/worksheet/data_bar.rb +44 -34
  71. data/lib/axlsx/workbook/worksheet/data_validation.rb +61 -62
  72. data/lib/axlsx/workbook/worksheet/dimension.rb +0 -1
  73. data/lib/axlsx/workbook/worksheet/icon_set.rb +20 -20
  74. data/lib/axlsx/workbook/worksheet/page_margins.rb +21 -19
  75. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +6 -9
  76. data/lib/axlsx/workbook/worksheet/page_setup.rb +20 -19
  77. data/lib/axlsx/workbook/worksheet/pane.rb +48 -51
  78. data/lib/axlsx/workbook/worksheet/print_options.rb +8 -30
  79. data/lib/axlsx/workbook/worksheet/protected_range.rb +16 -13
  80. data/lib/axlsx/workbook/worksheet/selection.rb +30 -38
  81. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +6 -26
  82. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +19 -57
  83. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +51 -155
  84. data/lib/axlsx/workbook/worksheet/sheet_view.rb +68 -234
  85. data/lib/axlsx/workbook/worksheet/table.rb +16 -18
  86. data/lib/axlsx/workbook/worksheet/table_style_info.rb +10 -27
  87. data/lib/axlsx/workbook/worksheet/worksheet.rb +6 -7
  88. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +1 -1
  89. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +11 -33
  90. data/test/content_type/tc_default.rb +0 -11
  91. data/test/content_type/tc_override.rb +0 -13
  92. data/test/drawing/tc_d_lbls.rb +14 -4
  93. data/test/tc_axlsx.rb +20 -2
  94. data/test/workbook/tc_defined_name.rb +2 -2
  95. data/test/workbook/tc_workbook.rb +15 -0
  96. data/test/workbook/worksheet/tc_col.rb +11 -1
  97. data/test/workbook/worksheet/tc_pane.rb +5 -45
  98. data/test/workbook/worksheet/tc_selection.rb +9 -48
  99. metadata +13 -3
@@ -7,61 +7,21 @@ class TestPane < Test::Unit::TestCase
7
7
  #inverse defaults for booleans
8
8
  @nil_options = { :active_pane => :bottom_left, :state => :frozen, :top_left_cell => 'A2' }
9
9
  @int_0_options = { :x_split => 2, :y_split => 2 }
10
-
11
- @string_options = { :top_left_cell => 'A2' }
12
- @integer_options = { :x_split => 2, :y_split => 2 }
13
- @symbol_options = { :active_pane => :bottom_left, :state => :frozen }
14
-
15
- @options = @nil_options.merge(@int_0_options)
16
-
10
+ @options = @nil_options.merge(@int_0_options)
17
11
  @pane = Axlsx::Pane.new(@options)
18
12
  end
19
-
20
- def test_initialize
21
- pane = Axlsx::Pane.new
22
-
23
- @nil_options.each do |key, value|
24
- assert_equal(nil, pane.send(key.to_sym), "initialized default #{key} should be nil")
25
- assert_equal(value, @pane.send(key.to_sym), "initialized options #{key} should be #{value}")
26
- end
27
-
28
- @int_0_options.each do |key, value|
29
- assert_equal(0, pane.send(key.to_sym), "initialized default #{key} should be 0")
30
- assert_equal(value, @pane.send(key.to_sym), "initialized options #{key} should be #{value}")
31
- end
32
- end
33
-
34
- def test_string_attribute_validation
35
- @string_options.each do |key, value|
36
- assert_raise(ArgumentError, "#{key} must be string") { @pane.send("#{key}=".to_sym, :symbol) }
37
- assert_nothing_raised { @pane.send("#{key}=".to_sym, "foo") }
38
- end
39
- end
40
-
41
- def test_symbol_attribute_validation
42
- @symbol_options.each do |key, value|
43
- assert_raise(ArgumentError, "#{key} must be symbol") { @pane.send("#{key}=".to_sym, "foo") }
44
- assert_nothing_raised { @pane.send("#{key}=".to_sym, value) }
45
- end
46
- end
47
-
48
- def test_integer_attribute_validation
49
- @integer_options.each do |key, value|
50
- assert_raise(ArgumentError, "#{key} must be integer") { @pane.send("#{key}=".to_sym, "foo") }
51
- assert_nothing_raised { @pane.send("#{key}=".to_sym, value) }
52
- end
53
- end
54
-
13
+
14
+
55
15
  def test_active_pane
56
16
  assert_raise(ArgumentError) { @pane.active_pane = "10" }
57
17
  assert_nothing_raised { @pane.active_pane = :top_left }
58
- assert_equal(@pane.active_pane, :top_left)
18
+ assert_equal(@pane.active_pane, "topLeft")
59
19
  end
60
20
 
61
21
  def test_state
62
22
  assert_raise(ArgumentError) { @pane.state = "foo" }
63
23
  assert_nothing_raised { @pane.state = :frozen_split }
64
- assert_equal(@pane.state, :frozen_split)
24
+ assert_equal(@pane.state, "frozenSplit")
65
25
  end
66
26
 
67
27
  def test_x_split
@@ -3,70 +3,34 @@ require 'tc_helper.rb'
3
3
 
4
4
  class TestSelection < Test::Unit::TestCase
5
5
  def setup
6
- @nil_options = { :active_cell => 'A2', :active_cell_id => 1, :pane => :top_left, :sqref => 'A2' }
7
- @options = @nil_options
8
-
9
- @string_options = { :active_cell => 'A2', :sqref => 'A2' }
10
- @integer_options = { :active_cell_id => 1 }
11
- @symbol_options = { :pane => :top_left }
12
-
6
+ @options = { :active_cell => 'A2', :active_cell_id => 1, :pane => :top_left, :sqref => 'A2' }
13
7
  @selection = Axlsx::Selection.new(@options)
14
8
  end
15
-
16
- def test_initialize
17
- selection = Axlsx::Selection.new
18
-
19
- @nil_options.each do |key, value|
20
- assert_equal(nil, selection.send(key.to_sym), "initialized default #{key} should be nil")
21
- assert_equal(value, @selection.send(key.to_sym), "initialized options #{key} should be #{value}")
22
- end
23
- end
24
-
25
- def test_string_attribute_validation
26
- @string_options.each do |key, value|
27
- assert_raise(ArgumentError, "#{key} must be string") { @selection.send("#{key}=".to_sym, :symbol) }
28
- assert_nothing_raised { @selection.send("#{key}=".to_sym, "foo") }
29
- end
30
- end
31
-
32
- def test_symbol_attribute_validation
33
- @symbol_options.each do |key, value|
34
- assert_raise(ArgumentError, "#{key} must be symbol") { @selection.send("#{key}=".to_sym, "foo") }
35
- assert_nothing_raised { @selection.send("#{key}=".to_sym, value) }
36
- end
37
- end
38
-
39
- def test_integer_attribute_validation
40
- @integer_options.each do |key, value|
41
- assert_raise(ArgumentError, "#{key} must be integer") { @selection.send("#{key}=".to_sym, "foo") }
42
- assert_nothing_raised { @selection.send("#{key}=".to_sym, value) }
43
- end
44
- end
45
-
9
+
46
10
  def test_active_cell
47
11
  assert_raise(ArgumentError) { @selection.active_cell = :active_cell }
48
12
  assert_nothing_raised { @selection.active_cell = "F5" }
49
13
  assert_equal(@selection.active_cell, "F5")
50
14
  end
51
-
15
+
52
16
  def test_active_cell_id
53
17
  assert_raise(ArgumentError) { @selection.active_cell_id = "foo" }
54
18
  assert_nothing_raised { @selection.active_cell_id = 11 }
55
19
  assert_equal(@selection.active_cell_id, 11)
56
20
  end
57
-
21
+
58
22
  def test_pane
59
23
  assert_raise(ArgumentError) { @selection.pane = "foo´" }
60
24
  assert_nothing_raised { @selection.pane = :bottom_right }
61
- assert_equal(@selection.pane, :bottom_right)
25
+ assert_equal(@selection.pane, "bottomRight")
62
26
  end
63
-
27
+
64
28
  def test_sqref
65
29
  assert_raise(ArgumentError) { @selection.sqref = :sqref }
66
30
  assert_nothing_raised { @selection.sqref = "G32" }
67
31
  assert_equal(@selection.sqref, "G32")
68
32
  end
69
-
33
+
70
34
  def test_to_xml
71
35
  p = Axlsx::Package.new
72
36
  @ws = p.workbook.add_worksheet :name => "sheetview"
@@ -76,18 +40,15 @@ class TestSelection < Test::Unit::TestCase
76
40
  vs.add_selection(:bottom_left, { :active_cell => 'E55', :sqref => 'E55' })
77
41
  vs.add_selection(:bottom_right, { :active_cell => 'I57', :sqref => 'I57' })
78
42
  end
79
-
43
+
80
44
  doc = Nokogiri::XML.parse(@ws.to_xml_string)
81
-
45
+
82
46
  assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']").size)
83
47
  assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']")
84
-
85
48
  assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']").size)
86
49
  assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']")
87
-
88
50
  assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']").size)
89
51
  assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']")
90
-
91
52
  assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']").size)
92
53
  assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']")
93
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axlsx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-30 00:00:00.000000000 Z
12
+ date: 2012-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -120,6 +120,7 @@ executables: []
120
120
  extensions: []
121
121
  extra_rdoc_files: []
122
122
  files:
123
+ - lib/axlsx/content_type/abstract_content_type.rb
123
124
  - lib/axlsx/content_type/content_type.rb
124
125
  - lib/axlsx/content_type/default.rb
125
126
  - lib/axlsx/content_type/override.rb
@@ -181,8 +182,11 @@ files:
181
182
  - lib/axlsx/stylesheet/table_style_element.rb
182
183
  - lib/axlsx/stylesheet/table_styles.rb
183
184
  - lib/axlsx/stylesheet/xf.rb
185
+ - lib/axlsx/util/accessors.rb
184
186
  - lib/axlsx/util/constants.rb
187
+ - lib/axlsx/util/options_parser.rb
185
188
  - lib/axlsx/util/parser.rb
189
+ - lib/axlsx/util/serialized_attributes.rb
186
190
  - lib/axlsx/util/simple_typed_list.rb
187
191
  - lib/axlsx/util/storage.rb
188
192
  - lib/axlsx/util/validators.rb
@@ -196,6 +200,7 @@ files:
196
200
  - lib/axlsx/workbook/worksheet/auto_filter/filters.rb
197
201
  - lib/axlsx/workbook/worksheet/cell.rb
198
202
  - lib/axlsx/workbook/worksheet/cfvo.rb
203
+ - lib/axlsx/workbook/worksheet/cfvos.rb
199
204
  - lib/axlsx/workbook/worksheet/col.rb
200
205
  - lib/axlsx/workbook/worksheet/color_scale.rb
201
206
  - lib/axlsx/workbook/worksheet/cols.rb
@@ -273,6 +278,7 @@ files:
273
278
  - examples/auto_filter.xlsx
274
279
  - examples/basic_charts.rb
275
280
  - examples/chart_colors.rb
281
+ - examples/colored_links.rb
276
282
  - examples/conditional_formatting/example_conditional_formatting.rb
277
283
  - examples/conditional_formatting/getting_barred.rb
278
284
  - examples/conditional_formatting/hitting_the_high_notes.rb
@@ -285,6 +291,9 @@ files:
285
291
  - examples/extractive.pdf
286
292
  - examples/extractive.rb
287
293
  - examples/extractive.xlsx
294
+ - examples/finance.rb
295
+ - examples/finance.xlsx
296
+ - examples/financial.xlsx
288
297
  - examples/hyperlinks.rb
289
298
  - examples/hyperlinks.xlsx
290
299
  - examples/image1.gif
@@ -324,6 +333,7 @@ files:
324
333
  - examples/styles.rb
325
334
  - examples/styles.xlsx
326
335
  - examples/two_cell_anchor_image.rb
336
+ - examples/where_is_my_color.xlsx
327
337
  - LICENSE
328
338
  - README.md
329
339
  - Rakefile
@@ -450,7 +460,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
450
460
  version: '0'
451
461
  segments:
452
462
  - 0
453
- hash: 2473429157853002876
463
+ hash: -3709977559995033
454
464
  requirements: []
455
465
  rubyforge_project:
456
466
  rubygems_version: 1.8.24