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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a67a6f1e2ffba722e018f7b3ddee592e1276ef92
4
- data.tar.gz: d880bda077f4768e9fbf66fb0b33a33641f75aa7
3
+ metadata.gz: 909497deb0cfc2f1d80bceb59e60c0d1b2ce927c
4
+ data.tar.gz: 571876e57a241c92d48a4436551b62a2b652b78a
5
5
  SHA512:
6
- metadata.gz: 0ce3cb526df8ad3e0bb38a036a92ac3cd2e26badc46619d012de551984a8a312289084c31d68ebf35293b213c211c7fd040c6a852ff77c55e22556c51c12ab66
7
- data.tar.gz: c89f81f0f00415532556fcc83ec9219ecd1ffa1476665b2969c5d94b4b73c3cda408cf3963fd53f4eb1004f49924fb93a028b1e41402163ba640d3821badc333
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 (which requires htmlentities)
30
+ HTML-AutoTag
31
31
 
32
32
  == Methods
33
33
  With the exception of new, all methods return an HTML table as a string.
@@ -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', '~> 1.0', '>= 1.0.1'
25
+ spec.add_runtime_dependency 'HTML-AutoTag', '>= 1.0.5'
25
26
  end
@@ -132,13 +132,21 @@ module Spreadsheet
132
132
  end
133
133
 
134
134
  data = []
135
- empty = params.has_key?('empty') ? params['empty'] : '&nbsp'
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
- r.push( { 'tag' => tag, 'attr' => params[tag] || {}, 'cdata' => col.to_s } )
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['data'] = params['data'].clone
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
@@ -1,5 +1,5 @@
1
1
  module Spreadsheet
2
2
  class HTML
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
data/readme.md CHANGED
@@ -11,7 +11,7 @@ Synopsis
11
11
  ```ruby
12
12
  require 'Spreadsheet/HTML'
13
13
 
14
- data = Array[ [1,2,3], [4,5,6] ]
14
+ data = Array[ [1,2,3], [4,5,6], [7,8,9] ]
15
15
  generator = Spreadsheet::HTML.new()
16
16
  puts generator.generate( data )
17
17
  puts generator.generate( 'data' => data )
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 test_empty
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', 'bar2', '' ],
12
+ Array[ 'foo1', 'bar1' ],
13
+ Array[ 'foo2' ],
12
14
  ]
13
15
 
14
- gen = Spreadsheet::HTML.new( 'data' => data )
16
+ assert_equal(
17
+ '<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td>foo1</td><td>bar1</td><td>&nbsp;</td></tr><tr><td>foo2</td><td>&nbsp;</td><td>&nbsp;</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
- # assert_equal(
17
- # '<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td>foo1</td><td>bar1</td><td>&nbsp;</td></tr><tr><td>foo2</td><td>bar2</td><td>&nbsp;</td></tr></table>',
18
- # gen.generate(),
19
- # "empty values are padded with default"
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>&nbsp;</td><td>baz1</td></tr><tr><td>&nbsp;</td><td>bar2</td><td>&nbsp;</td></tr></table>',
17
+ gen.generate(),
18
+ "empty values are defaulted to &nbsp;"
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>&lt;foo1&gt;</td><td>&amp;bar1</td><td>&quot;baz1</td></tr><tr><td>&lt;foo2&gt;</td><td>&amp;bar2</td><td>&quot;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>&amp;bar1</td><td>"baz1</td></tr><tr><td><foo2></td><td>&amp;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>he&#97;der1</th><th>he&#97;der2</th><th>he&#97;der3</th></tr><tr><td><foo1></td><td>&amp;b&#97;r1</td><td>&quot;b&#97;z1</td></tr><tr><td><foo2></td><td>&amp;b&#97;r2</td><td>&quot;b&#97;z2</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.5
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-10-28 00:00:00.000000000 Z
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.1
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.1
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: '0'
98
+ version: 1.9.2
103
99
  required_rubygems_version: !ruby/object:Gem::Requirement
104
100
  requirements:
105
101
  - - ">="