kmadej_fast_excel_fork 0.2.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 (119) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +28 -0
  4. data/CHANGELOG.md +13 -0
  5. data/Gemfile +17 -0
  6. data/Gemfile.lock +70 -0
  7. data/Makefile +14 -0
  8. data/README.md +95 -0
  9. data/Rakefile +24 -0
  10. data/appveyor.yml +25 -0
  11. data/benchmarks/1k_rows.rb +59 -0
  12. data/benchmarks/20k_rows.rb +26 -0
  13. data/benchmarks/init.rb +59 -0
  14. data/benchmarks/memory.rb +49 -0
  15. data/examples/example.rb +42 -0
  16. data/examples/example_align.rb +23 -0
  17. data/examples/example_chart.rb +21 -0
  18. data/examples/example_colors.rb +37 -0
  19. data/examples/example_formula.rb +18 -0
  20. data/examples/example_image.rb +13 -0
  21. data/examples/example_styles.rb +27 -0
  22. data/examples/logo.png +0 -0
  23. data/extconf.rb +0 -0
  24. data/fast_excel.gemspec +20 -0
  25. data/lib/fast_excel.rb +600 -0
  26. data/lib/fast_excel/binding.rb +2819 -0
  27. data/lib/fast_excel/binding/chart.rb +2666 -0
  28. data/lib/fast_excel/binding/format.rb +1177 -0
  29. data/lib/fast_excel/binding/workbook.rb +338 -0
  30. data/lib/fast_excel/binding/worksheet.rb +1555 -0
  31. data/libxlsxwriter/.gitignore +49 -0
  32. data/libxlsxwriter/.indent.pro +125 -0
  33. data/libxlsxwriter/.travis.yml +25 -0
  34. data/libxlsxwriter/CONTRIBUTING.md +226 -0
  35. data/libxlsxwriter/Changes.txt +557 -0
  36. data/libxlsxwriter/LICENSE.txt +89 -0
  37. data/libxlsxwriter/Makefile +156 -0
  38. data/libxlsxwriter/Readme.md +78 -0
  39. data/libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h +30 -0
  40. data/libxlsxwriter/cocoapods/libxlsxwriter.modulemap +7 -0
  41. data/libxlsxwriter/include/xlsxwriter.h +23 -0
  42. data/libxlsxwriter/include/xlsxwriter/app.h +79 -0
  43. data/libxlsxwriter/include/xlsxwriter/chart.h +3476 -0
  44. data/libxlsxwriter/include/xlsxwriter/common.h +372 -0
  45. data/libxlsxwriter/include/xlsxwriter/content_types.h +74 -0
  46. data/libxlsxwriter/include/xlsxwriter/core.h +51 -0
  47. data/libxlsxwriter/include/xlsxwriter/custom.h +52 -0
  48. data/libxlsxwriter/include/xlsxwriter/drawing.h +111 -0
  49. data/libxlsxwriter/include/xlsxwriter/format.h +1214 -0
  50. data/libxlsxwriter/include/xlsxwriter/hash_table.h +76 -0
  51. data/libxlsxwriter/include/xlsxwriter/packager.h +80 -0
  52. data/libxlsxwriter/include/xlsxwriter/relationships.h +77 -0
  53. data/libxlsxwriter/include/xlsxwriter/shared_strings.h +83 -0
  54. data/libxlsxwriter/include/xlsxwriter/styles.h +77 -0
  55. data/libxlsxwriter/include/xlsxwriter/theme.h +47 -0
  56. data/libxlsxwriter/include/xlsxwriter/third_party/ioapi.h +214 -0
  57. data/libxlsxwriter/include/xlsxwriter/third_party/queue.h +694 -0
  58. data/libxlsxwriter/include/xlsxwriter/third_party/tmpfileplus.h +53 -0
  59. data/libxlsxwriter/include/xlsxwriter/third_party/tree.h +801 -0
  60. data/libxlsxwriter/include/xlsxwriter/third_party/zip.h +375 -0
  61. data/libxlsxwriter/include/xlsxwriter/utility.h +166 -0
  62. data/libxlsxwriter/include/xlsxwriter/workbook.h +757 -0
  63. data/libxlsxwriter/include/xlsxwriter/worksheet.h +2641 -0
  64. data/libxlsxwriter/include/xlsxwriter/xmlwriter.h +178 -0
  65. data/libxlsxwriter/lib/.gitignore +0 -0
  66. data/libxlsxwriter/libxlsxwriter.podspec +47 -0
  67. data/libxlsxwriter/src/Makefile +130 -0
  68. data/libxlsxwriter/src/app.c +443 -0
  69. data/libxlsxwriter/src/chart.c +6346 -0
  70. data/libxlsxwriter/src/content_types.c +345 -0
  71. data/libxlsxwriter/src/core.c +293 -0
  72. data/libxlsxwriter/src/custom.c +224 -0
  73. data/libxlsxwriter/src/drawing.c +746 -0
  74. data/libxlsxwriter/src/format.c +729 -0
  75. data/libxlsxwriter/src/hash_table.c +223 -0
  76. data/libxlsxwriter/src/packager.c +948 -0
  77. data/libxlsxwriter/src/relationships.c +245 -0
  78. data/libxlsxwriter/src/shared_strings.c +266 -0
  79. data/libxlsxwriter/src/styles.c +1088 -0
  80. data/libxlsxwriter/src/theme.c +348 -0
  81. data/libxlsxwriter/src/utility.c +515 -0
  82. data/libxlsxwriter/src/workbook.c +1930 -0
  83. data/libxlsxwriter/src/worksheet.c +5022 -0
  84. data/libxlsxwriter/src/xmlwriter.c +355 -0
  85. data/libxlsxwriter/third_party/minizip/Makefile +44 -0
  86. data/libxlsxwriter/third_party/minizip/Makefile.am +45 -0
  87. data/libxlsxwriter/third_party/minizip/Makefile.orig +25 -0
  88. data/libxlsxwriter/third_party/minizip/MiniZip64_Changes.txt +6 -0
  89. data/libxlsxwriter/third_party/minizip/MiniZip64_info.txt +74 -0
  90. data/libxlsxwriter/third_party/minizip/README.txt +5 -0
  91. data/libxlsxwriter/third_party/minizip/configure.ac +32 -0
  92. data/libxlsxwriter/third_party/minizip/crypt.h +131 -0
  93. data/libxlsxwriter/third_party/minizip/ioapi.c +247 -0
  94. data/libxlsxwriter/third_party/minizip/ioapi.h +208 -0
  95. data/libxlsxwriter/third_party/minizip/iowin32.c +456 -0
  96. data/libxlsxwriter/third_party/minizip/iowin32.h +28 -0
  97. data/libxlsxwriter/third_party/minizip/make_vms.com +25 -0
  98. data/libxlsxwriter/third_party/minizip/miniunz.c +660 -0
  99. data/libxlsxwriter/third_party/minizip/miniunzip.1 +63 -0
  100. data/libxlsxwriter/third_party/minizip/minizip.1 +46 -0
  101. data/libxlsxwriter/third_party/minizip/minizip.c +520 -0
  102. data/libxlsxwriter/third_party/minizip/minizip.pc.in +12 -0
  103. data/libxlsxwriter/third_party/minizip/mztools.c +291 -0
  104. data/libxlsxwriter/third_party/minizip/mztools.h +37 -0
  105. data/libxlsxwriter/third_party/minizip/unzip.c +2125 -0
  106. data/libxlsxwriter/third_party/minizip/unzip.h +437 -0
  107. data/libxlsxwriter/third_party/minizip/zip.c +2007 -0
  108. data/libxlsxwriter/third_party/minizip/zip.h +367 -0
  109. data/libxlsxwriter/third_party/tmpfileplus/Makefile +42 -0
  110. data/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c +342 -0
  111. data/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.h +53 -0
  112. data/libxlsxwriter/version.txt +1 -0
  113. data/test/date_test.rb +22 -0
  114. data/test/default_format_test.rb +19 -0
  115. data/test/format_test.rb +171 -0
  116. data/test/test_helper.rb +52 -0
  117. data/test/tmpfile_test.rb +23 -0
  118. data/test/worksheet_test.rb +86 -0
  119. metadata +182 -0
@@ -0,0 +1,53 @@
1
+ /* $Id: tmpfileplus.h $ */
2
+ /*
3
+ * $Date: 2016-06-01 03:31Z $
4
+ * $Revision: 2.0.0 $
5
+ * $Author: dai $
6
+ */
7
+
8
+ /*
9
+ * This Source Code Form is subject to the terms of the Mozilla Public
10
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
11
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
+ *
13
+ * Copyright (c) 2012-16 David Ireland, DI Management Services Pty Ltd
14
+ * <http://www.di-mgt.com.au/contact/>.
15
+ */
16
+
17
+ #if _MSC_VER > 1000
18
+ #pragma once
19
+ #endif
20
+
21
+ #ifndef TMPFILEPLUS_H_
22
+ #define TMPFILEPLUS_H_
23
+
24
+ #include <stdio.h>
25
+
26
+ /** Create a unique temporary file.
27
+ @param dir (optional) directory to create file. If NULL use default TMP directory.
28
+ @param prefix (optional) prefix for file name. If NULL use "tmp.".
29
+ @param pathname (optional) pointer to a buffer to receive the temp filename.
30
+ Allocated using `malloc()`; user to free. Ignored if NULL.
31
+ @param keep If `keep` is nonzero and `pathname` is not NULL, then keep the file after closing.
32
+ Otherwise file is automatically deleted when closed.
33
+ @return Pointer to stream opened in binary read/write (w+b) mode, or a null pointer on error.
34
+ @exception ENOMEM Not enough memory to allocate filename.
35
+ */
36
+ FILE *tmpfileplus(const char *dir, const char *prefix, char **pathname, int keep);
37
+
38
+
39
+ /** Create a unique temporary file with filename stored in a fixed-length buffer.
40
+ @param dir (optional) directory to create file. If NULL use default directory.
41
+ @param prefix (optional) prefix for file name. If NULL use "tmp.".
42
+ @param pathnamebuf (optional) buffer to receive full pathname of temporary file. Ignored if NULL.
43
+ @param pathsize Size of buffer to receive filename and its terminating null character.
44
+ @param keep If `keep` is nonzero and `pathname` is not NULL, then keep the file after closing.
45
+ Otherwise file is automatically deleted when closed.
46
+ @return Pointer to stream opened in binary read/write (w+b) mode, or a null pointer on error.
47
+ @exception E2BIG Resulting filename is too big for the buffer `pathnamebuf`.
48
+ */
49
+ FILE *tmpfileplus_f(const char *dir, const char *prefix, char *pathnamebuf, size_t pathsize, int keep);
50
+
51
+ #define TMPFILE_KEEP 1
52
+
53
+ #endif /* end TMPFILEPLUS_H_ */
@@ -0,0 +1 @@
1
+ 2017-02-28 20:35:27 +0800 c8064ee
data/test/date_test.rb ADDED
@@ -0,0 +1,22 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe "FastExcel.date_num" do
4
+
5
+ it "should save correct date" do
6
+ workbook = FastExcel.open("test.xlsx", constant_memory: true)
7
+ worksheet = workbook.add_worksheet("Payments Report")
8
+
9
+ date_format = workbook.number_format("[$-409]m/d/yy h:mm AM/PM;@")
10
+ worksheet.set_column(0, 0, 20, date_format)
11
+
12
+ date = DateTime.parse('2017-03-01 15:15:15 +0000').to_time
13
+
14
+ worksheet.write_number(0, 0, FastExcel.date_num(date), nil)
15
+ workbook.close
16
+
17
+ data = parse_xlsx_as_matrix("test.xlsx")
18
+
19
+ assert_equal(data[0][0].to_time, date)
20
+ end
21
+
22
+ end
@@ -0,0 +1,19 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe "FastExcel default_format" do
4
+
5
+ it "should set default format values on init" do
6
+ workbook = FastExcel.open(default_format: {
7
+ font_size: 17,
8
+ font_family: "ArialFoo",
9
+ bold: true
10
+ })
11
+
12
+ #FastExcel.print_ffi_obj(workbook.default_format)
13
+
14
+ assert_equal("ArialFoo", workbook.default_format.font_family)
15
+ assert_equal(17, workbook.default_format.font_size)
16
+ assert_equal(1, workbook.default_format.bold)
17
+ end
18
+
19
+ end
@@ -0,0 +1,171 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe "FastExcel::FormatExt align" do
4
+
5
+ before do
6
+ @workbook = FastExcel.open(constant_memory: true)
7
+ @format = @workbook.add_format
8
+ end
9
+
10
+ it "should give default aligns" do
11
+ assert_equal({horizontal: :align_none, vertical: :align_none}, @format.align)
12
+ end
13
+
14
+ it "should set align by full name" do
15
+ @format.align = :align_center
16
+ assert_equal({horizontal: :align_center, vertical: :align_none}, @format.align)
17
+ end
18
+
19
+ it "should set by string" do
20
+ @format.align = "align_center"
21
+ assert_equal({horizontal: :align_center, vertical: :align_none}, @format.align)
22
+ end
23
+
24
+ it "should set by short name" do
25
+ @format.align = :center
26
+ assert_equal({horizontal: :align_center, vertical: :align_none}, @format.align)
27
+ end
28
+
29
+ it "should set by hash" do
30
+ @format.align = {v: "center", h: "center"}
31
+ assert_equal({horizontal: :align_center, vertical: :align_vertical_center}, @format.align)
32
+ end
33
+
34
+ it "should raise exception for unknown value" do
35
+ error = assert_raises(ArgumentError) do
36
+ @format.align = :aaa
37
+ end
38
+
39
+ assert_equal(error.message, "Can not set align = :aaa, possible values are: [:align_none, :align_left, "\
40
+ ":align_center, :align_right, :align_fill, :align_justify, :align_center_across, :align_distributed, "\
41
+ ":align_vertical_top, :align_vertical_bottom, :align_vertical_center, :align_vertical_justify, :align_vertical_distributed]")
42
+ end
43
+
44
+ it "should raise exception for unknown hash key" do
45
+ error = assert_raises(ArgumentError) do
46
+ @format.align = {aaa: 1}
47
+ end
48
+
49
+ assert_equal(error.message, "Not allowed keys for align: [:aaa], possible keys: [:horizontal, :h, :vertical, :v]")
50
+ end
51
+
52
+ it "should get and set" do
53
+ @format.align = {h: :center, v: :center}
54
+ format2 = @workbook.add_format(align: @format.align)
55
+
56
+ assert_equal({horizontal: :align_center, vertical: :align_vertical_center}, format2.align)
57
+ end
58
+
59
+ end
60
+
61
+
62
+ describe "FastExcel::FormatExt colors" do
63
+
64
+ before do
65
+ workbook = FastExcel.open(constant_memory: true)
66
+ @format = workbook.add_format
67
+ end
68
+
69
+ it "should set font color as hex num" do
70
+ @format.font_color = 0xFF0000
71
+ assert_equal(0xFF0000, @format.font_color)
72
+ end
73
+
74
+ it "should set font color as hex string" do
75
+ @format.font_color = '0xFF0000'
76
+ assert_equal(0xFF0000, @format.font_color)
77
+ end
78
+
79
+ it "should set font color as css hex string" do
80
+ @format.font_color = '#FF0000'
81
+ assert_equal(0xFF0000, @format.font_color)
82
+ end
83
+
84
+ it "should set font color as short hex string" do
85
+ @format.font_color = 'FF0000'
86
+ assert_equal(0xFF0000, @format.font_color)
87
+ end
88
+
89
+ it "should set font color as name" do
90
+ @format.font_color = 'red'
91
+ assert_equal(0xFF0000, @format.font_color)
92
+ end
93
+
94
+ it "should set font css color" do
95
+ @format.font_color = 'alice_blue'
96
+ assert_equal(0xF0F8FF, @format.font_color)
97
+ end
98
+
99
+ it "should allow to use symbol" do
100
+ @format.font_color = :alice_blue
101
+ assert_equal(0xF0F8FF, @format.font_color)
102
+ end
103
+
104
+ it "should have long method for border colors" do
105
+ @format.border_bottom_color = :alice_blue
106
+ assert_equal(0xF0F8FF, @format.border_bottom_color)
107
+ assert_equal(0xF0F8FF, @format.bottom_color)
108
+ end
109
+
110
+ it "should raise for unexpected type" do
111
+ error = assert_raises(ArgumentError) do
112
+ @format.font_color = {aaa: 1}
113
+ end
114
+
115
+ assert_equal(error.message, "Can not use Hash ({:aaa=>1}) for color value, expected String or Hex Number")
116
+ end
117
+
118
+ it "should raise for unexpected color" do
119
+ error = assert_raises(ArgumentError) do
120
+ @format.font_color = :aaa
121
+ end
122
+
123
+ assert_equal(error.message, "Unknown color value :aaa, expected hex string or color name")
124
+ end
125
+
126
+ end
127
+
128
+
129
+ describe "FastExcel::FormatExt border" do
130
+
131
+ before do
132
+ workbook = FastExcel.open(constant_memory: true)
133
+ @format = workbook.add_format
134
+ end
135
+
136
+ it "should set border as symbol" do
137
+ @format.bottom = :border_thin
138
+ assert_equal(:border_thin, @format.bottom)
139
+ end
140
+
141
+ it "should set border as short symbol" do
142
+ @format.bottom = :thin
143
+ assert_equal(:border_thin, @format.bottom)
144
+ end
145
+
146
+ it "should set border as string" do
147
+ @format.bottom = "thin"
148
+ assert_equal(:border_thin, @format.bottom)
149
+ end
150
+
151
+ it "should set border as number" do
152
+ @format.bottom = 1
153
+ assert_equal(:border_thin, @format.bottom)
154
+ end
155
+
156
+ it "should set border with long prop name" do
157
+ error = assert_raises(ArgumentError) do
158
+ @format.border_bottom = :aaa
159
+ end
160
+
161
+ assert_equal(error.message, "Unknown value :aaa for border. Possible values: "\
162
+ "[:none, :thin, :medium, :dashed, :dotted, :thick, :double, :hair, :medium_dashed, "\
163
+ ":dash_dot, :medium_dash_dot, :dash_dot_dot, :medium_dash_dot_dot, :slant_dash_dot]")
164
+ end
165
+
166
+ it "should get value with long name" do
167
+ @format.bottom = "thin"
168
+ assert_equal(:border_thin, @format.border_bottom)
169
+ end
170
+
171
+ end
@@ -0,0 +1,52 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require "minitest/reporters"
4
+
5
+ ##Encoding.default_external = Encoding::UTF_8
6
+ ##Encoding.default_internal = Encoding::UTF_8
7
+
8
+ require 'date'
9
+
10
+ Minitest::Reporters.use!(
11
+ Minitest::Reporters::DefaultReporter.new(color: true)
12
+ )
13
+
14
+ require_relative '../lib/fast_excel'
15
+
16
+ def parse_xlsx(file_path)
17
+ require 'roo'
18
+ Roo::Excelx.new(file_path)
19
+ ensure
20
+ File.delete(file_path)
21
+ end
22
+
23
+ def get_arrays(workbook)
24
+ workbook.close
25
+ parse_xlsx_as_matrix(workbook.filename)
26
+ end
27
+
28
+ def parse_xlsx_as_array(file_path)
29
+ data = parse_xlsx_as_matrix(file_path)
30
+ headers = data.shift
31
+
32
+ data.map do |row|
33
+ Hash[ [headers, row].transpose ]
34
+ end
35
+ end
36
+
37
+ def parse_xlsx_as_matrix(file_path)
38
+ excel = parse_xlsx(file_path)
39
+
40
+ sheet = excel.sheet(0)
41
+
42
+ rows = []
43
+ 1.upto(sheet.last_row) do |row_number|
44
+ row = 1.upto(sheet.last_column).map do |col|
45
+ sheet.cell(row_number, col)
46
+ end
47
+
48
+ rows << row
49
+ end
50
+
51
+ return rows
52
+ end
@@ -0,0 +1,23 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe "FastExcel" do
4
+
5
+ it "should create temporary file if filename is nil" do
6
+ workbook = FastExcel.open(constant_memory: true)
7
+
8
+ assert(workbook.tmp_file)
9
+ assert_match(/fast_excel.xlsx$/, workbook.filename)
10
+
11
+ result = workbook.read_string
12
+ assert(result.size > 1000)
13
+ end
14
+
15
+ it "should close workbook and delete tmp file when read_string" do
16
+ workbook = FastExcel.open
17
+ workbook.read_string
18
+
19
+ refute(File.exist?(workbook.filename))
20
+ refute(workbook.is_open)
21
+ end
22
+
23
+ end
@@ -0,0 +1,86 @@
1
+ require_relative 'test_helper'
2
+
3
+ describe "FastExcel::WorksheetExt append_row" do
4
+
5
+ before do
6
+ @workbook = FastExcel.open(constant_memory: false)
7
+ @worksheet = @workbook.add_worksheet
8
+ end
9
+
10
+ it "should have last_row_number = -1" do
11
+ assert_equal(-1, @worksheet.last_row_number)
12
+ end
13
+
14
+ it "should write_value and update last_row_number" do
15
+ @worksheet.write_value(0, 2, "aaa")
16
+ assert_equal(0, @worksheet.last_row_number)
17
+ assert_equal([[nil, nil, "aaa"]], get_arrays(@workbook))
18
+ end
19
+
20
+ it "should append row and update last_row_number" do
21
+ @worksheet.append_row(["aaa", "bbb", "ccc"])
22
+ @worksheet.append_row(["ddd", "eee", "fff"])
23
+
24
+ assert_equal(1, @worksheet.last_row_number)
25
+ assert_equal([["aaa", "bbb", "ccc"], ["ddd", "eee", "fff"]], get_arrays(@workbook))
26
+ end
27
+
28
+ it "should write_row then append and update last_row_number" do
29
+ @worksheet.write_row(3, ["aaa", "bbb", "ccc"])
30
+ @worksheet.append_row(["ddd", "eee", "fff"])
31
+
32
+ assert_equal(4, @worksheet.last_row_number)
33
+ assert_equal(
34
+ [
35
+ [nil, nil, nil],
36
+ [nil, nil, nil],
37
+ [nil, nil, nil],
38
+ ["aaa", "bbb", "ccc"],
39
+ ["ddd", "eee", "fff"]
40
+ ],
41
+ get_arrays(@workbook)
42
+ )
43
+ end
44
+
45
+ it "should not reduce last_row_number" do
46
+ @worksheet.append_row(["aaa", "bbb", "ccc"])
47
+ @worksheet.append_row(["ddd", "eee", "fff"])
48
+ @worksheet.write_value(0, 4, "foo")
49
+ @worksheet.append_row(["111", "222", "333"])
50
+
51
+ assert_equal(2, @worksheet.last_row_number)
52
+ assert_equal(
53
+ [
54
+ ["aaa", "bbb", "ccc", nil, "foo"],
55
+ ["ddd", "eee", "fff", nil, nil],
56
+ ["111", "222", "333", nil, nil]
57
+ ],
58
+ get_arrays(@workbook)
59
+ )
60
+ end
61
+
62
+ it "should not allow to write rows that already saved" do
63
+ @workbook = FastExcel.open(constant_memory: true)
64
+ @worksheet = @workbook.add_worksheet
65
+
66
+ @worksheet.append_row(["aaa", "bbb", "ccc"])
67
+ @worksheet.append_row(["ddd", "eee", "fff"])
68
+
69
+ error = assert_raises(ArgumentError) do
70
+ @worksheet.write_value(0, 4, "foo")
71
+ end
72
+
73
+ assert_equal("Can not write to saved row in constant_memory mode (attempted row: 0, last saved row: 1)", error.message)
74
+ end
75
+
76
+ it "should write bigdecimal as a number" do
77
+ require 'bigdecimal'
78
+
79
+ @workbook = FastExcel.open(constant_memory: true)
80
+ @worksheet = @workbook.add_worksheet
81
+
82
+ @worksheet.append_row([BigDecimal.new("0.1234")])
83
+
84
+ assert_equal([[0.1234]], get_arrays(@workbook))
85
+ end
86
+ end
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kmadej_fast_excel_fork
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Pavel Evstigneev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-09-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.9'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.9'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ description: Wrapper for libxlsxwriter using ffi
34
+ email:
35
+ - pavel.evst@gmail.com
36
+ executables: []
37
+ extensions:
38
+ - extconf.rb
39
+ extra_rdoc_files: []
40
+ files:
41
+ - ".gitignore"
42
+ - ".travis.yml"
43
+ - CHANGELOG.md
44
+ - Gemfile
45
+ - Gemfile.lock
46
+ - Makefile
47
+ - README.md
48
+ - Rakefile
49
+ - appveyor.yml
50
+ - benchmarks/1k_rows.rb
51
+ - benchmarks/20k_rows.rb
52
+ - benchmarks/init.rb
53
+ - benchmarks/memory.rb
54
+ - examples/example.rb
55
+ - examples/example_align.rb
56
+ - examples/example_chart.rb
57
+ - examples/example_colors.rb
58
+ - examples/example_formula.rb
59
+ - examples/example_image.rb
60
+ - examples/example_styles.rb
61
+ - examples/logo.png
62
+ - extconf.rb
63
+ - fast_excel.gemspec
64
+ - lib/fast_excel.rb
65
+ - lib/fast_excel/binding.rb
66
+ - lib/fast_excel/binding/chart.rb
67
+ - lib/fast_excel/binding/format.rb
68
+ - lib/fast_excel/binding/workbook.rb
69
+ - lib/fast_excel/binding/worksheet.rb
70
+ - libxlsxwriter/.gitignore
71
+ - libxlsxwriter/.indent.pro
72
+ - libxlsxwriter/.travis.yml
73
+ - libxlsxwriter/CONTRIBUTING.md
74
+ - libxlsxwriter/Changes.txt
75
+ - libxlsxwriter/LICENSE.txt
76
+ - libxlsxwriter/Makefile
77
+ - libxlsxwriter/Readme.md
78
+ - libxlsxwriter/cocoapods/libxlsxwriter-umbrella.h
79
+ - libxlsxwriter/cocoapods/libxlsxwriter.modulemap
80
+ - libxlsxwriter/include/xlsxwriter.h
81
+ - libxlsxwriter/include/xlsxwriter/app.h
82
+ - libxlsxwriter/include/xlsxwriter/chart.h
83
+ - libxlsxwriter/include/xlsxwriter/common.h
84
+ - libxlsxwriter/include/xlsxwriter/content_types.h
85
+ - libxlsxwriter/include/xlsxwriter/core.h
86
+ - libxlsxwriter/include/xlsxwriter/custom.h
87
+ - libxlsxwriter/include/xlsxwriter/drawing.h
88
+ - libxlsxwriter/include/xlsxwriter/format.h
89
+ - libxlsxwriter/include/xlsxwriter/hash_table.h
90
+ - libxlsxwriter/include/xlsxwriter/packager.h
91
+ - libxlsxwriter/include/xlsxwriter/relationships.h
92
+ - libxlsxwriter/include/xlsxwriter/shared_strings.h
93
+ - libxlsxwriter/include/xlsxwriter/styles.h
94
+ - libxlsxwriter/include/xlsxwriter/theme.h
95
+ - libxlsxwriter/include/xlsxwriter/third_party/ioapi.h
96
+ - libxlsxwriter/include/xlsxwriter/third_party/queue.h
97
+ - libxlsxwriter/include/xlsxwriter/third_party/tmpfileplus.h
98
+ - libxlsxwriter/include/xlsxwriter/third_party/tree.h
99
+ - libxlsxwriter/include/xlsxwriter/third_party/zip.h
100
+ - libxlsxwriter/include/xlsxwriter/utility.h
101
+ - libxlsxwriter/include/xlsxwriter/workbook.h
102
+ - libxlsxwriter/include/xlsxwriter/worksheet.h
103
+ - libxlsxwriter/include/xlsxwriter/xmlwriter.h
104
+ - libxlsxwriter/lib/.gitignore
105
+ - libxlsxwriter/libxlsxwriter.podspec
106
+ - libxlsxwriter/src/Makefile
107
+ - libxlsxwriter/src/app.c
108
+ - libxlsxwriter/src/chart.c
109
+ - libxlsxwriter/src/content_types.c
110
+ - libxlsxwriter/src/core.c
111
+ - libxlsxwriter/src/custom.c
112
+ - libxlsxwriter/src/drawing.c
113
+ - libxlsxwriter/src/format.c
114
+ - libxlsxwriter/src/hash_table.c
115
+ - libxlsxwriter/src/packager.c
116
+ - libxlsxwriter/src/relationships.c
117
+ - libxlsxwriter/src/shared_strings.c
118
+ - libxlsxwriter/src/styles.c
119
+ - libxlsxwriter/src/theme.c
120
+ - libxlsxwriter/src/utility.c
121
+ - libxlsxwriter/src/workbook.c
122
+ - libxlsxwriter/src/worksheet.c
123
+ - libxlsxwriter/src/xmlwriter.c
124
+ - libxlsxwriter/third_party/minizip/Makefile
125
+ - libxlsxwriter/third_party/minizip/Makefile.am
126
+ - libxlsxwriter/third_party/minizip/Makefile.orig
127
+ - libxlsxwriter/third_party/minizip/MiniZip64_Changes.txt
128
+ - libxlsxwriter/third_party/minizip/MiniZip64_info.txt
129
+ - libxlsxwriter/third_party/minizip/README.txt
130
+ - libxlsxwriter/third_party/minizip/configure.ac
131
+ - libxlsxwriter/third_party/minizip/crypt.h
132
+ - libxlsxwriter/third_party/minizip/ioapi.c
133
+ - libxlsxwriter/third_party/minizip/ioapi.h
134
+ - libxlsxwriter/third_party/minizip/iowin32.c
135
+ - libxlsxwriter/third_party/minizip/iowin32.h
136
+ - libxlsxwriter/third_party/minizip/make_vms.com
137
+ - libxlsxwriter/third_party/minizip/miniunz.c
138
+ - libxlsxwriter/third_party/minizip/miniunzip.1
139
+ - libxlsxwriter/third_party/minizip/minizip.1
140
+ - libxlsxwriter/third_party/minizip/minizip.c
141
+ - libxlsxwriter/third_party/minizip/minizip.pc.in
142
+ - libxlsxwriter/third_party/minizip/mztools.c
143
+ - libxlsxwriter/third_party/minizip/mztools.h
144
+ - libxlsxwriter/third_party/minizip/unzip.c
145
+ - libxlsxwriter/third_party/minizip/unzip.h
146
+ - libxlsxwriter/third_party/minizip/zip.c
147
+ - libxlsxwriter/third_party/minizip/zip.h
148
+ - libxlsxwriter/third_party/tmpfileplus/Makefile
149
+ - libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c
150
+ - libxlsxwriter/third_party/tmpfileplus/tmpfileplus.h
151
+ - libxlsxwriter/version.txt
152
+ - test/date_test.rb
153
+ - test/default_format_test.rb
154
+ - test/format_test.rb
155
+ - test/test_helper.rb
156
+ - test/tmpfile_test.rb
157
+ - test/worksheet_test.rb
158
+ homepage: https://github.com/paxa/fast_excel
159
+ licenses:
160
+ - MIT
161
+ metadata: {}
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '2.0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ requirements: []
177
+ rubyforge_project:
178
+ rubygems_version: 2.5.1
179
+ signing_key:
180
+ specification_version: 4
181
+ summary: Ultra Fast Excel Writter
182
+ test_files: []