Spreadsheet-HTML 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="