axlsx 1.3.3 → 1.3.4

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 (73) hide show
  1. data/CHANGELOG.md +14 -0
  2. data/README.md +15 -15
  3. data/Rakefile +1 -1
  4. data/examples/example.rb +106 -35
  5. data/examples/wrap_text.rb +21 -0
  6. data/lib/axlsx/drawing/chart.rb +1 -1
  7. data/lib/axlsx/rels/relationship.rb +1 -1
  8. data/lib/axlsx/util/serialized_attributes.rb +32 -1
  9. data/lib/axlsx/util/validators.rb +1 -0
  10. data/lib/axlsx/version.rb +1 -1
  11. data/lib/axlsx/workbook/workbook.rb +1 -0
  12. data/lib/axlsx/workbook/worksheet/cell.rb +5 -2
  13. data/lib/axlsx/workbook/worksheet/cfvos.rb +0 -3
  14. data/lib/axlsx/workbook/worksheet/color_scale.rb +56 -16
  15. data/lib/axlsx/workbook/worksheet/data_bar.rb +42 -18
  16. data/lib/axlsx/workbook/worksheet/header_footer.rb +54 -0
  17. data/lib/axlsx/workbook/worksheet/worksheet.rb +29 -11
  18. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +1 -1
  19. data/test/benchmark.rb +1 -2
  20. data/test/example.xlsx +0 -0
  21. data/test/profile.rb +4 -13
  22. data/test/rels/tc_relationship.rb +5 -0
  23. data/test/tc_helper.rb +5 -1
  24. data/test/workbook/worksheet/tc_color_scale.rb +31 -2
  25. data/test/workbook/worksheet/tc_data_bar.rb +7 -0
  26. data/test/workbook/worksheet/tc_header_footer.rb +151 -0
  27. data/test/workbook/worksheet/tc_worksheet.rb +31 -6
  28. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +1 -1
  29. metadata +11 -49
  30. data/examples/doc/_index.html +0 -88
  31. data/examples/doc/class_list.html +0 -53
  32. data/examples/doc/css/common.css +0 -1
  33. data/examples/doc/css/full_list.css +0 -57
  34. data/examples/doc/css/style.css +0 -328
  35. data/examples/doc/file_list.html +0 -52
  36. data/examples/doc/frames.html +0 -28
  37. data/examples/doc/index.html +0 -88
  38. data/examples/doc/js/app.js +0 -214
  39. data/examples/doc/js/full_list.js +0 -173
  40. data/examples/doc/js/jquery.js +0 -4
  41. data/examples/doc/method_list.html +0 -52
  42. data/examples/doc/top-level-namespace.html +0 -102
  43. data/examples/extractive.pdf +0 -0
  44. data/examples/finance.rb +0 -82
  45. data/examples/hyperlinks.rb +0 -23
  46. data/examples/image1.gif +0 -0
  47. data/examples/image1.jpg +0 -0
  48. data/examples/image1.png +0 -0
  49. data/examples/sample.png +0 -0
  50. data/examples/scraping_html.rb +0 -91
  51. data/examples/sheet_view.rb +0 -34
  52. data/examples/skydrive/axlsx.csv +0 -1
  53. data/examples/skydrive/axlsx.xlsx +0 -0
  54. data/examples/sprk2012/Screen Shot 2012-09-11 at 10.42.06 PM.png +0 -0
  55. data/examples/sprk2012/Screen Shot 2012-09-11 at 11.07.48 PM.png +0 -0
  56. data/examples/sprk2012/Screen Shot 2012-09-11 at 8.31.50 PM.png +0 -0
  57. data/examples/sprk2012/Screen Shot 2012-09-11 at 9.23.27 PM.png +0 -0
  58. data/examples/sprk2012/Screen Shot 2012-09-11 at 9.32.06 PM.png +0 -0
  59. data/examples/sprk2012/Screen Shot 2012-09-11 at 9.33.35 PM.png +0 -0
  60. data/examples/sprk2012/Screen Shot 2012-09-11 at 9.46.44 PM.png +0 -0
  61. data/examples/sprk2012/Screen Shot 2012-09-12 at 5.07.23 PM.png +0 -0
  62. data/examples/sprk2012/basics.rb +0 -11
  63. data/examples/sprk2012/basics.xlsx +0 -0
  64. data/examples/sprk2012/gravatar.jpeg +0 -0
  65. data/examples/sprk2012/hair_club.jpg +0 -0
  66. data/examples/sprk2012/images.rb +0 -9
  67. data/examples/sprk2012/images.xlsx +0 -0
  68. data/examples/sprk2012/line_chart.rb +0 -56
  69. data/examples/sprk2012/line_chart.xlsx +0 -0
  70. data/examples/sprk2012/sprk2012.key +0 -0
  71. data/examples/sprk2012/styles.rb +0 -20
  72. data/examples/sprk2012/styles.xlsx +0 -0
  73. data/examples/two_cell_anchor_image.rb +0 -11
@@ -73,7 +73,7 @@ module Axlsx
73
73
  # r:id should only be specified for external targets.
74
74
  # @return [Hash]
75
75
  def location_or_id
76
- @target == :external ? { :"r:id" => id } : { :location => location }
76
+ @target == :external ? { :"r:id" => id } : { :location => Axlsx::coder.encode(location) }
77
77
  end
78
78
  end
79
79
  end
@@ -4,11 +4,10 @@ $:.unshift "#{File.dirname(__FILE__)}/../lib"
4
4
  require 'axlsx'
5
5
  require 'csv'
6
6
  require 'benchmark'
7
-
8
7
  row = []
9
8
  input = (32..126).to_a.pack('U*').chars.to_a
10
9
  20.times { row << input.shuffle.join}
11
- times = 2000
10
+ times = 3000
12
11
  Benchmark.bmbm(30) do |x|
13
12
 
14
13
  x.report('axlsx_noautowidth') {
Binary file
@@ -1,31 +1,22 @@
1
1
  #!/usr/bin/env ruby -s
2
- # -*- coding: utf-8 -*-
3
2
 
4
3
  # Usage:
5
4
  # > ruby test/profile.rb
6
- # > pprof.rb --gif /tmp/axlsx_noautowidth > /tmp/axlsx_noautowidth.gif
5
+ # > pprof.rb --gif /tmp/axlsx > /tmp/axlsx.gif
7
6
  # > open /tmp/axlsx_noautowidth.gif
8
7
 
9
8
  $:.unshift "#{File.dirname(__FILE__)}/../lib"
10
9
  require 'axlsx'
11
- require 'csv'
12
-
13
- # require 'benchmark'
14
10
  require 'perftools'
15
11
  row = []
12
+ # Taking worst case scenario of all string data
16
13
  input = (32..126).to_a.pack('U*').chars.to_a
17
14
  20.times { row << input.shuffle.join}
18
15
  times = 3000
19
16
 
20
- PerfTools::CpuProfiler.start("/tmp/axlsx_noautowidth") do
17
+ PerfTools::CpuProfiler.start("/tmp/axlsx") do
21
18
  p = Axlsx::Package.new
22
- p.use_autowidth = false
23
- p.use_shared_strings = true
24
- wb = p.workbook
25
-
26
- #A Simple Workbook
27
-
28
- wb.add_worksheet do |sheet|
19
+ p.workbook.add_worksheet do |sheet|
29
20
  times.times do
30
21
  sheet << row
31
22
  end
@@ -18,4 +18,9 @@ class TestRelationships < Test::Unit::TestCase
18
18
  assert_nothing_raised { Axlsx::Relationship.new( Axlsx::WORKSHEET_R, 'target', :target_mode => :External) }
19
19
  end
20
20
 
21
+ def test_ampersand_escaping_in_target
22
+ r = Axlsx::Relationship.new(Axlsx::HYPERLINK_R, "http://example.com?foo=1&bar=2", :target_mod => :External)
23
+ doc = Nokogiri::XML(r.to_xml_string(1))
24
+ assert_equal(doc.xpath("//Relationship[@Target='http://example.com?foo=1&bar=2']").size, 1)
25
+ end
21
26
  end
@@ -1,4 +1,8 @@
1
1
  $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
2
- require 'cover_me' unless RUBY_VERSION == '1.8.7'
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter "/test/"
5
+ end
6
+
3
7
  require 'test/unit'
4
8
  require "axlsx.rb"
@@ -5,6 +5,37 @@ class TestColorScale < Test::Unit::TestCase
5
5
  @color_scale = Axlsx::ColorScale.new
6
6
  end
7
7
 
8
+ def test_three_tone
9
+ color_scale = Axlsx::ColorScale.three_tone
10
+ assert_equal 3, color_scale.value_objects.size
11
+ assert_equal 3, color_scale.colors.size
12
+ end
13
+
14
+ def test_two_tone
15
+ color_scale = Axlsx::ColorScale.two_tone
16
+ assert_equal 2, color_scale.value_objects.size
17
+ assert_equal 2, color_scale.colors.size
18
+ end
19
+ def test_default_cfvo
20
+ first = Axlsx::ColorScale.default_cfvos.first
21
+ second = Axlsx::ColorScale.default_cfvos.last
22
+ assert_equal 'FFFF7128', first[:color]
23
+ assert_equal :min,first[:type]
24
+ assert_equal 0, first[:val]
25
+
26
+ assert_equal 'FFFFEF9C', second[:color]
27
+ assert_equal :max, second[:type]
28
+ assert_equal 0, second[:val]
29
+ end
30
+
31
+ def test_partial_default_cfvo_override
32
+ first_def = {:type => :percent, :val => "10.0", :color => 'FF00FF00'}
33
+ color_scale = Axlsx::ColorScale.new(first_def)
34
+ assert_equal color_scale.value_objects.first.val, first_def[:val]
35
+ assert_equal color_scale.value_objects.first.type, first_def[:type]
36
+ assert_equal color_scale.colors.first.rgb, first_def[:color]
37
+ end
38
+
8
39
  def test_add
9
40
  @color_scale.add :type => :max, :val => 5, :color => "FFDEDEDE"
10
41
  assert_equal(@color_scale.value_objects.size,3)
@@ -12,8 +43,6 @@ class TestColorScale < Test::Unit::TestCase
12
43
  end
13
44
 
14
45
  def test_delete_at
15
- assert_raise(ArgumentError, "minimum two are protected") { @color_scale.delete_at 0 }
16
- assert_raise(ArgumentError, "minimum two are protected") { @color_scale.delete_at 1 }
17
46
  @color_scale.add :type => :max, :val => 5, :color => "FFDEDEDE"
18
47
  assert_nothing_raised {@color_scale.delete_at 2}
19
48
  assert_equal(@color_scale.value_objects.size,2)
@@ -11,6 +11,13 @@ class TestDataBar < Test::Unit::TestCase
11
11
  assert_equal @data_bar.showValue, true
12
12
  end
13
13
 
14
+ def test_override_default_cfvos
15
+ data_bar = Axlsx::DataBar.new({:color => 'FF00FF00'}, {:type => :min, :val => "20"})
16
+ assert_equal("20", data_bar.value_objects.first.val)
17
+ assert_equal("0", data_bar.value_objects.last.val)
18
+ end
19
+
20
+
14
21
  def test_minLength
15
22
  assert_raise(ArgumentError) { @data_bar.minLength = :invalid_type }
16
23
  assert_nothing_raised { @data_bar.minLength = 0}
@@ -0,0 +1,151 @@
1
+ require 'tc_helper'
2
+
3
+ class TestHeaderFooter < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @p = Axlsx::Package.new
7
+ ws = @p.workbook.add_worksheet :name => 'test'
8
+ @hf = ws.header_footer
9
+ end
10
+
11
+ def test_initialize
12
+ assert_equal(nil, @hf.odd_header)
13
+ assert_equal(nil, @hf.odd_footer)
14
+
15
+ assert_equal(nil, @hf.even_header)
16
+ assert_equal(nil, @hf.even_footer)
17
+
18
+ assert_equal(nil, @hf.first_header)
19
+ assert_equal(nil, @hf.first_footer)
20
+
21
+ assert_equal(nil, @hf.different_first)
22
+ assert_equal(nil, @hf.different_odd_even)
23
+ end
24
+
25
+ def test_initialize_with_options
26
+ header_footer = {
27
+ :odd_header => 'oh',
28
+ :odd_footer => 'of',
29
+
30
+ :even_header => 'eh',
31
+ :even_footer => 'ef',
32
+
33
+ :first_header => 'fh',
34
+ :first_footer => 'ff',
35
+
36
+ :different_first => true,
37
+ :different_odd_even => true
38
+ }
39
+ optioned = @p.workbook.add_worksheet(:name => 'optioned', :header_footer => header_footer).header_footer
40
+
41
+ assert_equal('oh', optioned.odd_header)
42
+ assert_equal('of', optioned.odd_footer)
43
+
44
+ assert_equal('eh', optioned.even_header)
45
+ assert_equal('ef', optioned.even_footer)
46
+
47
+ assert_equal('fh', optioned.first_header)
48
+ assert_equal('ff', optioned.first_footer)
49
+
50
+ assert_equal(true, optioned.different_first)
51
+ assert_equal(true, optioned.different_odd_even)
52
+ end
53
+
54
+ def test_string_attributes
55
+ %w(odd_header odd_footer even_header even_footer first_header first_footer).each do |attr|
56
+ assert_raise(ArgumentError, 'only strings allowed in string attributes') { @hf.send("#{attr}=", 1) }
57
+ assert_nothing_raised { @hf.send("#{attr}=", 'test_string') }
58
+ end
59
+ end
60
+
61
+ def test_boolean_attributes
62
+ %w(different_first different_odd_even).each do |attr|
63
+ assert_raise(ArgumentError, 'only booleanish allowed in string attributes') { @hf.send("#{attr}=", 'foo') }
64
+ assert_nothing_raised { @hf.send("#{attr}=", 1) }
65
+ end
66
+ end
67
+
68
+ def test_set_all_values
69
+ @hf.set(
70
+ :odd_header => 'oh',
71
+ :odd_footer => 'of',
72
+
73
+ :even_header => 'eh',
74
+ :even_footer => 'ef',
75
+
76
+ :first_header => 'fh',
77
+ :first_footer => 'ff',
78
+
79
+ :different_first => true,
80
+ :different_odd_even => true
81
+ )
82
+
83
+ assert_equal('oh', @hf.odd_header)
84
+ assert_equal('of', @hf.odd_footer)
85
+
86
+ assert_equal('eh', @hf.even_header)
87
+ assert_equal('ef', @hf.even_footer)
88
+
89
+ assert_equal('fh', @hf.first_header)
90
+ assert_equal('ff', @hf.first_footer)
91
+
92
+ assert_equal(true, @hf.different_first)
93
+ assert_equal(true, @hf.different_odd_even)
94
+ end
95
+
96
+ def test_to_xml_all_values
97
+ @hf.set(
98
+ :odd_header => 'oh',
99
+ :odd_footer => 'of',
100
+
101
+ :even_header => 'eh',
102
+ :even_footer => 'ef',
103
+
104
+ :first_header => 'fh',
105
+ :first_footer => 'ff',
106
+
107
+ :different_first => true,
108
+ :different_odd_even => true
109
+ )
110
+
111
+ doc = Nokogiri::XML.parse(@hf.to_xml_string)
112
+ assert_equal(1, doc.xpath(".//headerFooter[@differentFirst='true'][@differentOddEven='true']").size)
113
+
114
+ assert_equal(1, doc.xpath(".//headerFooter/oddHeader").size)
115
+ assert_equal('oh', doc.xpath(".//headerFooter/oddHeader").text)
116
+ assert_equal(1, doc.xpath(".//headerFooter/oddFooter").size)
117
+ assert_equal('of', doc.xpath(".//headerFooter/oddFooter").text)
118
+
119
+ assert_equal(1, doc.xpath(".//headerFooter/evenHeader").size)
120
+ assert_equal('eh', doc.xpath(".//headerFooter/evenHeader").text)
121
+ assert_equal(1, doc.xpath(".//headerFooter/evenFooter").size)
122
+ assert_equal('ef', doc.xpath(".//headerFooter/evenFooter").text)
123
+
124
+ assert_equal(1, doc.xpath(".//headerFooter/firstHeader").size)
125
+ assert_equal('fh', doc.xpath(".//headerFooter/firstHeader").text)
126
+ assert_equal(1, doc.xpath(".//headerFooter/firstFooter").size)
127
+ assert_equal('ff', doc.xpath(".//headerFooter/firstFooter").text)
128
+ end
129
+
130
+ def test_to_xml_some_values
131
+ @hf.set(
132
+ :odd_header => 'oh',
133
+ :different_odd_even => false
134
+ )
135
+
136
+ doc = Nokogiri::XML.parse(@hf.to_xml_string)
137
+ assert_equal(1, doc.xpath(".//headerFooter[@differentOddEven='false']").size)
138
+ assert_equal(0, doc.xpath(".//headerFooter[@differentFirst]").size)
139
+
140
+ assert_equal(1, doc.xpath(".//headerFooter/oddHeader").size)
141
+ assert_equal('oh', doc.xpath(".//headerFooter/oddHeader").text)
142
+ assert_equal(0, doc.xpath(".//headerFooter/oddFooter").size)
143
+
144
+ assert_equal(0, doc.xpath(".//headerFooter/evenHeader").size)
145
+ assert_equal(0, doc.xpath(".//headerFooter/evenFooter").size)
146
+
147
+ assert_equal(0, doc.xpath(".//headerFooter/firstHeader").size)
148
+ assert_equal(0, doc.xpath(".//headerFooter/firstFooter").size)
149
+ end
150
+ end
151
+
@@ -55,6 +55,17 @@ class TestWorksheet < Test::Unit::TestCase
55
55
  end
56
56
  end
57
57
 
58
+ def test_header_footer
59
+ assert(@ws.header_footer.is_a? Axlsx::HeaderFooter)
60
+ end
61
+
62
+ def test_header_footer_yield
63
+ @ws.header_footer do |hf|
64
+ assert(hf.is_a? Axlsx::HeaderFooter)
65
+ assert(@ws.header_footer == hf)
66
+ end
67
+ end
68
+
58
69
  def test_no_autowidth
59
70
  @ws.workbook.use_autowidth = false
60
71
  @ws.add_row [1,2,3,4]
@@ -65,7 +76,8 @@ class TestWorksheet < Test::Unit::TestCase
65
76
  page_margins = {:left => 2, :right => 2, :bottom => 2, :top => 2, :header => 2, :footer => 2}
66
77
  page_setup = {:fit_to_height => 1, :fit_to_width => 1, :orientation => :landscape, :paper_width => "210mm", :paper_height => "297mm", :scale => 80}
67
78
  print_options = {:grid_lines => true, :headings => true, :horizontal_centered => true, :vertical_centered => true}
68
- optioned = @ws.workbook.add_worksheet(:name => 'bob', :page_margins => page_margins, :page_setup => page_setup, :print_options => print_options, :selected => true, :show_gridlines => false)
79
+ header_footer = {:different_first => false, :different_odd_even => false, :odd_header => 'Header'}
80
+ optioned = @ws.workbook.add_worksheet(:name => 'bob', :page_margins => page_margins, :page_setup => page_setup, :print_options => print_options, :header_footer => header_footer, :selected => true, :show_gridlines => false)
69
81
  page_margins.keys.each do |key|
70
82
  assert_equal(page_margins[key], optioned.page_margins.send(key))
71
83
  end
@@ -75,6 +87,9 @@ class TestWorksheet < Test::Unit::TestCase
75
87
  print_options.keys.each do |key|
76
88
  assert_equal(print_options[key], optioned.print_options.send(key))
77
89
  end
90
+ header_footer.keys.each do |key|
91
+ assert_equal(header_footer[key], optioned.header_footer.send(key))
92
+ end
78
93
  assert_equal(optioned.name, 'bob')
79
94
  assert_equal(optioned.selected, true)
80
95
  assert_equal(optioned.show_gridlines, false)
@@ -293,6 +308,16 @@ class TestWorksheet < Test::Unit::TestCase
293
308
  assert_equal(doc.xpath('//xmlns:worksheet/xmlns:printOptions[@gridLines="true"][@horizontalCentered="true"]').size, 1)
294
309
  end
295
310
 
311
+ def test_to_xml_string_header_footer
312
+ @ws.header_footer do |hf|
313
+ hf.different_first = false
314
+ hf.different_odd_even = false
315
+ hf.odd_header = 'Test Header'
316
+ end
317
+ doc = Nokogiri::XML(@ws.to_xml_string)
318
+ assert_equal(doc.xpath('//xmlns:worksheet/xmlns:headerFooter[@differentFirst="false"][@differentOddEven="false"]').size, 1)
319
+ end
320
+
296
321
  def test_to_xml_string_drawing
297
322
  @ws.add_chart Axlsx::Pie3DChart
298
323
  doc = Nokogiri::XML(@ws.to_xml_string)
@@ -317,7 +342,7 @@ class TestWorksheet < Test::Unit::TestCase
317
342
  def test_styles
318
343
  assert(@ws.styles.is_a?(Axlsx::Styles), 'worksheet provides access to styles')
319
344
  end
320
-
345
+
321
346
  def test_to_xml_string_with_illegal_chars
322
347
  nasties = "\v\u2028\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u001f"
323
348
  @ws.add_row [nasties]
@@ -400,7 +425,7 @@ class TestWorksheet < Test::Unit::TestCase
400
425
  @ws.add_row [1, 2, 3]
401
426
  assert_nothing_raised {@ws.protect_range(@ws.rows.first.cells) }
402
427
  assert_equal('A1:C1', @ws.send(:protected_ranges).last.sqref)
403
-
428
+
404
429
  end
405
430
  def test_merge_cells
406
431
  @ws.add_row [1,2,3]
@@ -412,7 +437,7 @@ class TestWorksheet < Test::Unit::TestCase
412
437
  assert_equal(@ws.send(:merged_cells).size, 3)
413
438
  assert_equal(@ws.send(:merged_cells).last, "A3:B3")
414
439
  end
415
-
440
+
416
441
  def test_merge_cells_sorts_correctly_by_row_when_given_array
417
442
  10.times do |i|
418
443
  @ws.add_row [i]
@@ -420,7 +445,7 @@ class TestWorksheet < Test::Unit::TestCase
420
445
  @ws.merge_cells [@ws.rows[8].cells.first, @ws.rows[9].cells.first]
421
446
  assert_equal "A9:A10", @ws.send(:merged_cells).first
422
447
  end
423
-
448
+
424
449
  def test_auto_filter
425
450
  assert(@ws.auto_filter.range.nil?)
426
451
  assert_raise(ArgumentError) { @ws.auto_filter = 123 }
@@ -432,6 +457,6 @@ class TestWorksheet < Test::Unit::TestCase
432
457
  @ws.auto_filter.range = 'A1:D9'
433
458
  @ws.auto_filter.add_column 0, :filters, :filter_items => [1]
434
459
  doc = Nokogiri::XML(@ws.to_xml_string)
435
- assert(doc.xpath('//sheetPr[@filterMode="true"]'))
460
+ assert(doc.xpath('//sheetPr[@filterMode="true"]'))
436
461
  end
437
462
  end
@@ -5,7 +5,7 @@ class TestWorksheetHyperlink < Test::Unit::TestCase
5
5
  p = Axlsx::Package.new
6
6
  wb = p.workbook
7
7
  @ws = wb.add_worksheet
8
- @options = { :location => 'https://github.com/randym/axlsx', :tooltip => 'axlsx', :ref => 'A1', :display => 'AXSLX', :target => :internal }
8
+ @options = { :location => 'https://github.com/randym/axlsx?foo=1&bar=2', :tooltip => 'axlsx', :ref => 'A1', :display => 'AXSLX', :target => :internal }
9
9
  @a = @ws.add_hyperlink @options
10
10
  end
11
11
 
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.3
4
+ version: 1.3.4
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-11-08 00:00:00.000000000 Z
12
+ date: 2012-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -92,7 +92,7 @@ dependencies:
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  - !ruby/object:Gem::Dependency
95
- name: cover_me
95
+ name: simplecov
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
@@ -214,6 +214,7 @@ files:
214
214
  - lib/axlsx/workbook/worksheet/data_validations.rb
215
215
  - lib/axlsx/workbook/worksheet/date_time_converter.rb
216
216
  - lib/axlsx/workbook/worksheet/dimension.rb
217
+ - lib/axlsx/workbook/worksheet/header_footer.rb
217
218
  - lib/axlsx/workbook/worksheet/icon_set.rb
218
219
  - lib/axlsx/workbook/worksheet/merged_cells.rb
219
220
  - lib/axlsx/workbook/worksheet/page_margins.rb
@@ -284,57 +285,14 @@ files:
284
285
  - examples/conditional_formatting/scaled_colors.rb
285
286
  - examples/conditional_formatting/stop_and_go.rb
286
287
  - examples/data_validation.rb
287
- - examples/doc/_index.html
288
- - examples/doc/class_list.html
289
- - examples/doc/css/common.css
290
- - examples/doc/css/full_list.css
291
- - examples/doc/css/style.css
292
- - examples/doc/file_list.html
293
- - examples/doc/frames.html
294
- - examples/doc/index.html
295
- - examples/doc/js/app.js
296
- - examples/doc/js/full_list.js
297
- - examples/doc/js/jquery.js
298
- - examples/doc/method_list.html
299
- - examples/doc/top-level-namespace.html
300
288
  - examples/example.rb
301
- - examples/extractive.pdf
302
289
  - examples/extractive.rb
303
- - examples/finance.rb
304
- - examples/hyperlinks.rb
305
- - examples/image1.gif
306
- - examples/image1.jpeg
307
- - examples/image1.jpg
308
- - examples/image1.png
309
290
  - examples/page_setup.rb
310
- - examples/sample.png
311
- - examples/scraping_html.rb
312
291
  - examples/sheet_protection.rb
313
- - examples/sheet_view.rb
314
- - examples/skydrive/axlsx.csv
315
- - examples/skydrive/axlsx.xlsx
316
292
  - examples/skydrive/real_example.rb
317
- - examples/sprk2012/basics.rb
318
- - examples/sprk2012/basics.xlsx
319
- - examples/sprk2012/gravatar.jpeg
320
- - examples/sprk2012/hair_club.jpg
321
- - examples/sprk2012/images.rb
322
- - examples/sprk2012/images.xlsx
323
- - examples/sprk2012/line_chart.rb
324
- - examples/sprk2012/line_chart.xlsx
325
- - examples/sprk2012/Screen Shot 2012-09-11 at 10.42.06 PM.png
326
- - examples/sprk2012/Screen Shot 2012-09-11 at 11.07.48 PM.png
327
- - examples/sprk2012/Screen Shot 2012-09-11 at 8.31.50 PM.png
328
- - examples/sprk2012/Screen Shot 2012-09-11 at 9.23.27 PM.png
329
- - examples/sprk2012/Screen Shot 2012-09-11 at 9.32.06 PM.png
330
- - examples/sprk2012/Screen Shot 2012-09-11 at 9.33.35 PM.png
331
- - examples/sprk2012/Screen Shot 2012-09-11 at 9.46.44 PM.png
332
- - examples/sprk2012/Screen Shot 2012-09-12 at 5.07.23 PM.png
333
- - examples/sprk2012/sprk2012.key
334
- - examples/sprk2012/styles.rb
335
- - examples/sprk2012/styles.xlsx
336
293
  - examples/styles.rb
337
- - examples/two_cell_anchor_image.rb
294
+ - examples/wrap_text.rb
295
+ - examples/image1.jpeg
338
296
  - LICENSE
339
297
  - README.md
340
298
  - Rakefile
@@ -382,6 +340,7 @@ files:
382
340
  - test/drawing/tc_view_3D.rb
383
341
  - test/drawing/tc_vml_drawing.rb
384
342
  - test/drawing/tc_vml_shape.rb
343
+ - test/example.xlsx
385
344
  - test/profile.rb
386
345
  - test/rels/tc_relationship.rb
387
346
  - test/rels/tc_relationships.rb
@@ -424,6 +383,7 @@ files:
424
383
  - test/workbook/worksheet/tc_data_bar.rb
425
384
  - test/workbook/worksheet/tc_data_validation.rb
426
385
  - test/workbook/worksheet/tc_date_time_converter.rb
386
+ - test/workbook/worksheet/tc_header_footer.rb
427
387
  - test/workbook/worksheet/tc_icon_set.rb
428
388
  - test/workbook/worksheet/tc_page_margins.rb
429
389
  - test/workbook/worksheet/tc_page_set_up_pr.rb
@@ -461,7 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
461
421
  version: '0'
462
422
  segments:
463
423
  - 0
464
- hash: -1544206805148567481
424
+ hash: 3556182461904299335
465
425
  requirements: []
466
426
  rubyforge_project:
467
427
  rubygems_version: 1.8.24
@@ -511,6 +471,7 @@ test_files:
511
471
  - test/drawing/tc_view_3D.rb
512
472
  - test/drawing/tc_vml_drawing.rb
513
473
  - test/drawing/tc_vml_shape.rb
474
+ - test/example.xlsx
514
475
  - test/profile.rb
515
476
  - test/rels/tc_relationship.rb
516
477
  - test/rels/tc_relationships.rb
@@ -553,6 +514,7 @@ test_files:
553
514
  - test/workbook/worksheet/tc_data_bar.rb
554
515
  - test/workbook/worksheet/tc_data_validation.rb
555
516
  - test/workbook/worksheet/tc_date_time_converter.rb
517
+ - test/workbook/worksheet/tc_header_footer.rb
556
518
  - test/workbook/worksheet/tc_icon_set.rb
557
519
  - test/workbook/worksheet/tc_page_margins.rb
558
520
  - test/workbook/worksheet/tc_page_set_up_pr.rb