workbook 0.4.11 → 0.4.12
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/lib/workbook/modules/cell.rb +5 -2
- data/lib/workbook/table.rb +14 -2
- data/lib/workbook/version.rb +1 -1
- data/lib/workbook/writers/html_writer.rb +4 -2
- data/test/artifacts/.~lock.complex_types.xls# +1 -0
- data/test/artifacts/complex_types.xls +0 -0
- data/test/test_modules_cell.rb +3 -1
- data/test/test_readers_xls_reader.rb +3 -2
- data/test/test_table.rb +0 -1
- data/test/test_writers_html_writer.rb +3 -3
- data/workbook.gemspec +0 -3
- metadata +5 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c05c947e639810533b5d77b7f66cca14bf2880b3
|
4
|
+
data.tar.gz: 623d1d9ca5e9bceac0cb0a18bec19d79a869a193
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e972dc3fbcc4d1c29860b5966c4c3d54407b6a24344450279410ee029f163555c00d8b1cec240d224c5d47ffc4d8b4f0a96e23f2b13d2cb0a5a575cb8631380e
|
7
|
+
data.tar.gz: 74538baa3d9d1ce6644a4a35e2aab5aed98b213abd4d6cc89392fcf29a34a77524f9dbdc75d9156377965a39056e06cfc36a5e3738b2320a8a796b4ad596e11e
|
data/.gitignore
CHANGED
@@ -153,9 +153,12 @@ module Workbook
|
|
153
153
|
return @to_sym if @to_sym
|
154
154
|
v = nil
|
155
155
|
if value
|
156
|
-
ends_with_exclamationmark = (value[-1] == '!')
|
157
|
-
ends_with_questionmark = (value[-1] == '?')
|
158
156
|
v = value.to_s.downcase
|
157
|
+
if v.to_i != 0
|
158
|
+
v = "num#{v}"
|
159
|
+
end
|
160
|
+
ends_with_exclamationmark = (v[-1] == '!')
|
161
|
+
ends_with_questionmark = (v[-1] == '?')
|
159
162
|
|
160
163
|
replacements = {
|
161
164
|
[/[\(\)\.\?\,\!\=\$\:]/,] => '',
|
data/lib/workbook/table.rb
CHANGED
@@ -52,8 +52,21 @@ module Workbook
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
# Set the header of this table (typically the first row, but can be a different row).
|
56
|
+
# The header row is also used for finding values in a aribrary row.
|
57
|
+
#
|
58
|
+
# @param [Workbook::Row, Integer]
|
59
|
+
# @return [Workbook::Row] The header
|
55
60
|
def header= h
|
56
|
-
|
61
|
+
if h.is_a? Numeric
|
62
|
+
@header = self[h]
|
63
|
+
else
|
64
|
+
@header = h
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def header_row_index(h=nil)
|
69
|
+
self.index(h ? h : self.header)
|
57
70
|
end
|
58
71
|
|
59
72
|
def define_columns_with_row(r)
|
@@ -139,7 +152,6 @@ module Workbook
|
|
139
152
|
def clone
|
140
153
|
t = self
|
141
154
|
c = super
|
142
|
-
header_row_index = t.index(t.header)
|
143
155
|
c.delete_all
|
144
156
|
t.each{|r| c << r.clone}
|
145
157
|
c.header = c[header_row_index] if header_row_index
|
data/lib/workbook/version.rb
CHANGED
@@ -55,7 +55,7 @@ module Workbook
|
|
55
55
|
if header
|
56
56
|
doc.tr do
|
57
57
|
header.each do |cell|
|
58
|
-
th_options = build_cell_options cell, options
|
58
|
+
th_options = build_cell_options cell, options.merge(classnames: [cell.to_sym])
|
59
59
|
unless cell.value.class == Workbook::NilValue
|
60
60
|
doc.th(th_options) do
|
61
61
|
doc.text cell.value
|
@@ -87,7 +87,9 @@ module Workbook
|
|
87
87
|
end
|
88
88
|
private
|
89
89
|
def build_cell_options cell, options={}
|
90
|
-
classnames = cell.format.all_names
|
90
|
+
classnames = cell.format.all_names
|
91
|
+
classnames = classnames + options[:classnames] if options[:classnames]
|
92
|
+
classnames = classnames.join(" ").strip
|
91
93
|
td_options = classnames != "" ? {:class=>classnames} : {}
|
92
94
|
td_options = td_options.merge({:style=>cell.format.to_css}) if options[:style_with_inline_css] and cell.format.to_css != ""
|
93
95
|
td_options = td_options.merge({:colspan=>cell.colspan}) if cell.colspan
|
@@ -0,0 +1 @@
|
|
1
|
+
,murb,murb-top.local,03.02.2016 16:38,file:///Users/murb/Library/Application%20Support/LibreOffice/4;
|
Binary file
|
data/test/test_modules_cell.rb
CHANGED
@@ -80,7 +80,9 @@ class TestModulesCell < Minitest::Test
|
|
80
80
|
"A - c (B123)!" => :a_c_b123!,
|
81
81
|
"A-B?" => :ab?,
|
82
82
|
"A-B!" => :ab!,
|
83
|
-
"éåšžÌ?" => :easzi
|
83
|
+
"éåšžÌ?" => :easzi?,
|
84
|
+
1 => :num1,
|
85
|
+
1.0 => :num10
|
84
86
|
}
|
85
87
|
examples.each do |k,v|
|
86
88
|
assert_equal(v, Workbook::Cell.new(k).to_sym)
|
@@ -20,8 +20,9 @@ module Readers
|
|
20
20
|
w.open File.join(File.dirname(__FILE__), 'artifacts/complex_types.xls')
|
21
21
|
assert_equal(Date.new(2011,11,15), w.sheet.table[2][3].value)
|
22
22
|
assert_equal("http://murb.nl", w.sheet.table[3][2].value)
|
23
|
-
assert_equal("sadfasdfsd", w.sheet.table[4][2].value)
|
24
|
-
assert_equal(1.2, w.sheet.table[
|
23
|
+
assert_equal("sadfasdfsd!", w.sheet.table[4][2].value)
|
24
|
+
assert_equal(1.2, w.sheet.table[2][1].value)
|
25
|
+
assert_equal(1, w.sheet.table[3][1].value)
|
25
26
|
end
|
26
27
|
|
27
28
|
def test_xls_excel_standardized_open
|
data/test/test_table.rb
CHANGED
@@ -183,7 +183,6 @@ class TestTable< Minitest::Test
|
|
183
183
|
last_line = table.count-1
|
184
184
|
first_few_lines = table[12][0].value - table[2][0].value
|
185
185
|
last_few_lines = table[last_line][0].value - table[last_line-10][0].value
|
186
|
-
# puts [first_few_lines,last_few_lines].join(" vs ")
|
187
186
|
assert_equal(true, first_few_lines*1.20 > last_few_lines) # 10% slower is acceptable
|
188
187
|
end
|
189
188
|
def test_columns
|
@@ -14,7 +14,7 @@ module Writers
|
|
14
14
|
assert_equal(false, match)
|
15
15
|
match = html.match(/<td>1<\/td>/) ? true : false
|
16
16
|
assert_equal(true, match)
|
17
|
-
match = html.match(/<th>a<\/th>/) ? true : false
|
17
|
+
match = html.match(/<th class=\"a\">a<\/th>/) ? true : false
|
18
18
|
assert_equal(true, match)
|
19
19
|
end
|
20
20
|
def test_to_html_format_names
|
@@ -24,7 +24,7 @@ module Writers
|
|
24
24
|
c = b[0][0][1][0]
|
25
25
|
c.format.name="testname"
|
26
26
|
html = b.to_html
|
27
|
-
match = html.match(/<th class=\"testname\">a<\/th>/) ? true : false
|
27
|
+
match = html.match(/<th class=\"testname a\">a<\/th>/) ? true : false
|
28
28
|
assert_equal(true, match)
|
29
29
|
match = html.match(/<td class=\"testname\">1<\/td>/) ? true : false
|
30
30
|
assert_equal(true, match)
|
@@ -36,7 +36,7 @@ module Writers
|
|
36
36
|
c = b[0][0][1][0]
|
37
37
|
c.format[:background]="#ff0"
|
38
38
|
html = b.to_html
|
39
|
-
match = html.match(/<th>a<\/th>/) ? true : false
|
39
|
+
match = html.match(/<th class=\"a\">a<\/th>/) ? true : false
|
40
40
|
match = html.match(/<td>1<\/td>/) ? true : false
|
41
41
|
assert_equal(true, match)
|
42
42
|
html = b.to_html({:style_with_inline_css=>true})
|
data/workbook.gemspec
CHANGED
@@ -15,15 +15,12 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.description = "Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files, and offers basic diffing and sorting capabilities."
|
16
16
|
s.authors = ["Maarten Brouwers"]
|
17
17
|
s.add_development_dependency 'ruby-prof', '~> 0.14'
|
18
|
-
s.add_dependency('rubyzip', '~>1')
|
19
18
|
s.add_dependency('spreadsheet', '~> 1.0')
|
20
19
|
s.add_development_dependency('minitest', '~> 5.4')
|
21
20
|
s.add_dependency('fastercsv') if RUBY_VERSION < "1.9"
|
22
21
|
s.add_dependency("rchardet", "~> 1.3")
|
23
22
|
s.add_dependency("rake", '~> 10.0')
|
24
23
|
s.add_dependency("json", '~> 1.8')
|
25
|
-
s.add_dependency("zip-zip", '~> 0.2') #actually a hack...
|
26
|
-
#s.add_dependency('rubyXL', '~> 3.3')
|
27
24
|
s.add_dependency('roo', '~> 1.13')
|
28
25
|
s.add_dependency('axlsx', '~> 2.0.1')
|
29
26
|
if RUBY_VERSION < "1.9"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workbook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maarten Brouwers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-prof
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.14'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rubyzip
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: spreadsheet
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +94,6 @@ dependencies:
|
|
108
94
|
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '1.8'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: zip-zip
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0.2'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0.2'
|
125
97
|
- !ruby/object:Gem::Dependency
|
126
98
|
name: roo
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -266,6 +238,7 @@ files:
|
|
266
238
|
- lib/workbook/writers/xls_writer.rb
|
267
239
|
- lib/workbook/writers/xlsx_writer.rb
|
268
240
|
- rbeautify.rb
|
241
|
+
- test/artifacts/.~lock.complex_types.xls#
|
269
242
|
- test/artifacts/bigtable.xls
|
270
243
|
- test/artifacts/bigtable.xlsx
|
271
244
|
- test/artifacts/book_with_colspans.ods
|
@@ -337,12 +310,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
337
310
|
version: '0'
|
338
311
|
requirements: []
|
339
312
|
rubyforge_project: workbook
|
340
|
-
rubygems_version: 2.
|
313
|
+
rubygems_version: 2.4.5
|
341
314
|
signing_key:
|
342
315
|
specification_version: 4
|
343
316
|
summary: Workbook is a datastructure to contain books of tables (an anlogy used in
|
344
317
|
e.g. Excel)
|
345
318
|
test_files:
|
319
|
+
- test/artifacts/.~lock.complex_types.xls#
|
346
320
|
- test/artifacts/bigtable.xls
|
347
321
|
- test/artifacts/bigtable.xlsx
|
348
322
|
- test/artifacts/book_with_colspans.ods
|
@@ -393,4 +367,3 @@ test_files:
|
|
393
367
|
- test/test_writers_json_writer.rb
|
394
368
|
- test/test_writers_xls_writer.rb
|
395
369
|
- test/test_writers_xlsx_writer.rb
|
396
|
-
has_rdoc:
|