Spreadsheet-HTML 0.0.5 → 0.0.6
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/Changes +5 -0
- data/README +2 -2
- data/Spreadsheet-HTML.gemspec +2 -1
- data/lib/Spreadsheet/HTML.rb +14 -4
- data/lib/Spreadsheet/HTML/version.rb +1 -1
- data/readme.md +1 -1
- data/t/09-padding.rb +21 -9
- data/t/11-empty.rb +29 -0
- data/t/12-encodes.rb +42 -0
- metadata +8 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 909497deb0cfc2f1d80bceb59e60c0d1b2ce927c
|
4
|
+
data.tar.gz: 571876e57a241c92d48a4436551b62a2b652b78a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 145896da253dccf1fe866382349fde9c822307376c31ee2fb02139c34e8b8e81044d6588b3ac8db4f83885dae8fd779ff5f70f82a91215fcd06ad2eb1f33c6ef
|
7
|
+
data.tar.gz: e4acd9bd46a749ae6106f8d55fdcad930779534211d85ca00d737a7513ffbc743eb35b2a815431d2555ab36d7e81ded84f2aa5d74ef637a5ace78686f29a0d28
|
data/Changes
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
Revision history for html-autotag-ruby
|
2
2
|
|
3
|
+
0.0.6
|
4
|
+
- implemented empty param
|
5
|
+
- implemented encodes param
|
6
|
+
- implemented row padding and truncation
|
7
|
+
|
3
8
|
0.0.5
|
4
9
|
- moved docs to README (trying to render for rubydoc.info site)
|
5
10
|
- just a note -- having a very hard time learning how to document ruby
|
data/README
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
== Synopsis
|
11
11
|
require 'Spreadsheet/HTML'
|
12
12
|
|
13
|
-
data = Array[ [1,2,3], [4,5,6] ]
|
13
|
+
data = Array[ [1,2,3], [4,5,6], [7,8,9] ]
|
14
14
|
generator = Spreadsheet::HTML.new()
|
15
15
|
puts generator.generate( data )
|
16
16
|
puts generator.generate( 'data' => data )
|
@@ -27,7 +27,7 @@
|
|
27
27
|
# See t/ directory for more examples
|
28
28
|
|
29
29
|
== Dependencies
|
30
|
-
HTML-AutoTag
|
30
|
+
HTML-AutoTag
|
31
31
|
|
32
32
|
== Methods
|
33
33
|
With the exception of new, all methods return an HTML table as a string.
|
data/Spreadsheet-HTML.gemspec
CHANGED
@@ -18,8 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
spec.extra_rdoc_files = ["README"]
|
21
|
+
spec.required_ruby_version = '~> 1.9.2'
|
21
22
|
|
22
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
23
24
|
spec.add_development_dependency 'rake'
|
24
|
-
spec.add_runtime_dependency 'HTML-AutoTag', '
|
25
|
+
spec.add_runtime_dependency 'HTML-AutoTag', '>= 1.0.5'
|
25
26
|
end
|
data/lib/Spreadsheet/HTML.rb
CHANGED
@@ -132,13 +132,21 @@ module Spreadsheet
|
|
132
132
|
end
|
133
133
|
|
134
134
|
data = []
|
135
|
-
empty = params.has_key?('empty') ? params['empty'] : ' '
|
135
|
+
empty = params.has_key?('empty') ? params['empty'] : ' '
|
136
136
|
tag = ( params['matrix'] or params['headless'] ) ? 'td' : 'th'
|
137
137
|
|
138
138
|
params['data'].each do |row|
|
139
|
+
|
140
|
+
unless params['_layout']
|
141
|
+
(params['_max_cols'] - row.size).times { row.push( nil ) } # pad
|
142
|
+
(row.size - params['_max_cols']).times { row.pop } # truncate
|
143
|
+
end
|
144
|
+
|
139
145
|
r = []
|
140
146
|
row.each do |col|
|
141
|
-
|
147
|
+
col = col.to_s
|
148
|
+
col = col.gsub( /^\s*$/, empty )
|
149
|
+
r.push( { 'tag' => tag, 'attr' => params[tag] || {}, 'cdata' => col } )
|
142
150
|
end
|
143
151
|
data.push( r )
|
144
152
|
tag = 'td'
|
@@ -183,7 +191,7 @@ module Spreadsheet
|
|
183
191
|
end
|
184
192
|
|
185
193
|
params['auto'] = Auto::Tag.new(
|
186
|
-
'encodes' => params['encodes'],
|
194
|
+
'encodes' => params.has_key?('encodes') ? params['encodes'] : '',
|
187
195
|
'indent' => params['indent'],
|
188
196
|
'level' => params['level'],
|
189
197
|
'sorted' => params['attr_sort'],
|
@@ -194,7 +202,9 @@ module Spreadsheet
|
|
194
202
|
params['data'] = data[0]
|
195
203
|
end
|
196
204
|
|
197
|
-
params['
|
205
|
+
params['_max_rows'] = params['data'].size
|
206
|
+
params['_max_cols'] = params['data'][0].size
|
207
|
+
params['data'] = params['data'].clone
|
198
208
|
|
199
209
|
return params
|
200
210
|
end
|
data/readme.md
CHANGED
data/t/09-padding.rb
CHANGED
@@ -3,21 +3,33 @@ require "Spreadsheet/HTML"
|
|
3
3
|
|
4
4
|
class Test_Padding < Test::Unit::TestCase
|
5
5
|
|
6
|
-
def
|
6
|
+
def test_padding
|
7
|
+
|
8
|
+
gen = Spreadsheet::HTML.new
|
7
9
|
|
8
10
|
data = Array[
|
9
11
|
%w(header1 header2 header3),
|
10
|
-
Array[ 'foo1', 'bar1'
|
11
|
-
Array[ 'foo2'
|
12
|
+
Array[ 'foo1', 'bar1' ],
|
13
|
+
Array[ 'foo2' ],
|
12
14
|
]
|
13
15
|
|
14
|
-
|
16
|
+
assert_equal(
|
17
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td>foo1</td><td>bar1</td><td> </td></tr><tr><td>foo2</td><td> </td><td> </td></tr></table>',
|
18
|
+
gen.generate( 'data' => data ),
|
19
|
+
"empty values are padded with default"
|
20
|
+
)
|
21
|
+
|
22
|
+
data = Array[
|
23
|
+
%w(header1 header2),
|
24
|
+
Array[ 'foo1', 'bar1', 'baz1' ],
|
25
|
+
Array[ 'foo2', 'bar2', 'baz2', 'qux2' ],
|
26
|
+
]
|
15
27
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
28
|
+
assert_equal(
|
29
|
+
'<table><tr><th>header1</th><th>header2</th></tr><tr><td>foo1</td><td>bar1</td></tr><tr><td>foo2</td><td>bar2</td></tr></table>',
|
30
|
+
gen.generate( 'data' => data ),
|
31
|
+
"extra values are truncated"
|
32
|
+
)
|
21
33
|
|
22
34
|
end
|
23
35
|
|
data/t/11-empty.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require "Spreadsheet/HTML"
|
3
|
+
|
4
|
+
class Test_Empty < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_empty
|
7
|
+
|
8
|
+
data = Array[
|
9
|
+
%w(header1 header2 header3),
|
10
|
+
Array[ 'foo1', '', 'baz1' ],
|
11
|
+
Array[ '', 'bar2', '' ],
|
12
|
+
]
|
13
|
+
|
14
|
+
gen = Spreadsheet::HTML.new( 'data' => data )
|
15
|
+
assert_equal(
|
16
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td>foo1</td><td> </td><td>baz1</td></tr><tr><td> </td><td>bar2</td><td> </td></tr></table>',
|
17
|
+
gen.generate(),
|
18
|
+
"empty values are defaulted to "
|
19
|
+
)
|
20
|
+
|
21
|
+
assert_equal(
|
22
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td>foo1</td><td> </td><td>baz1</td></tr><tr><td> </td><td>bar2</td><td> </td></tr></table>',
|
23
|
+
gen.generate( 'empty' => ' ' ),
|
24
|
+
"empty values are overriden"
|
25
|
+
)
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/t/12-encodes.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require "Spreadsheet/HTML"
|
3
|
+
|
4
|
+
class Test_Encodes < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_encodes
|
7
|
+
|
8
|
+
data = Array[
|
9
|
+
%w(header1 header2 header3),
|
10
|
+
Array[ '<foo1>', '&bar1', '"baz1' ],
|
11
|
+
Array[ '<foo2>', '&bar2', '"baz2' ],
|
12
|
+
]
|
13
|
+
|
14
|
+
gen = Spreadsheet::HTML.new( 'data' => data )
|
15
|
+
|
16
|
+
assert_equal(
|
17
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td><foo1></td><td>&bar1</td><td>"baz1</td></tr><tr><td><foo2></td><td>&bar2</td><td>"baz2</td></tr></table>',
|
18
|
+
gen.generate(),
|
19
|
+
"nothing encoded by default"
|
20
|
+
)
|
21
|
+
|
22
|
+
assert_equal(
|
23
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td><foo1></td><td>&bar1</td><td>"baz1</td></tr><tr><td><foo2></td><td>&bar2</td><td>"baz2</td></tr></table>',
|
24
|
+
gen.generate( 'encodes' => nil ),
|
25
|
+
"default encoding works"
|
26
|
+
)
|
27
|
+
|
28
|
+
assert_equal(
|
29
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td><foo1></td><td>&bar1</td><td>"baz1</td></tr><tr><td><foo2></td><td>&bar2</td><td>"baz2</td></tr></table>',
|
30
|
+
gen.generate( 'encodes' => '&' ),
|
31
|
+
"only requested char is encoded"
|
32
|
+
)
|
33
|
+
|
34
|
+
assert_equal(
|
35
|
+
'<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td><foo1></td><td>&bar1</td><td>"baz1</td></tr><tr><td><foo2></td><td>&bar2</td><td>"baz2</td></tr></table>',
|
36
|
+
gen.generate( 'encodes' => 'a&"' ),
|
37
|
+
"requested chars are encoded"
|
38
|
+
)
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Spreadsheet-HTML
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jeffa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,22 +42,16 @@ dependencies:
|
|
42
42
|
name: HTML-AutoTag
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1.0'
|
48
45
|
- - ">="
|
49
46
|
- !ruby/object:Gem::Version
|
50
|
-
version: 1.0.
|
47
|
+
version: 1.0.5
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
|
-
- - "~>"
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '1.0'
|
58
52
|
- - ">="
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: 1.0.
|
54
|
+
version: 1.0.5
|
61
55
|
description: Just another HTML table generator
|
62
56
|
email:
|
63
57
|
- jeffa@cpan.org
|
@@ -87,6 +81,8 @@ files:
|
|
87
81
|
- t/08-tgroups.rb
|
88
82
|
- t/09-padding.rb
|
89
83
|
- t/10-indent.rb
|
84
|
+
- t/11-empty.rb
|
85
|
+
- t/12-encodes.rb
|
90
86
|
homepage: https://github.com/jeffa/spreadsheet-html-ruby
|
91
87
|
licenses:
|
92
88
|
- MIT
|
@@ -97,9 +93,9 @@ require_paths:
|
|
97
93
|
- lib
|
98
94
|
required_ruby_version: !ruby/object:Gem::Requirement
|
99
95
|
requirements:
|
100
|
-
- - "
|
96
|
+
- - "~>"
|
101
97
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
98
|
+
version: 1.9.2
|
103
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
100
|
requirements:
|
105
101
|
- - ">="
|