tbpgr_utils 0.0.90 → 0.0.91

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -25,6 +25,7 @@ Or install it yourself as:
25
25
  | class/module/method | mean |
26
26
  |:----------- |:------------ |
27
27
  |[TbpgrUtils Array#to_table](#arrayto_table) |Array(Array, Array...) to table format. |
28
+ |[TbpgrUtils Array#to_html_table](#arrayto_html_table) |Array(Array, Array...) to html table format. |
28
29
  |[TbpgrUtils Array#together](#arraytogether) |loop all arrays by block |
29
30
  |[TbpgrUtils Array#together_at](#arraytogether_at) |together version of Array#at. together_at has alias :tat |
30
31
  |[TbpgrUtils Array#together_clear](#arraytogether_clear) |together version of Array#clear. together_clear has alias :tclear |
@@ -142,6 +143,51 @@ result
142
143
  |line1_1|line1_2|line1_3|
143
144
  ~~~
144
145
 
146
+ [back to list](#list)
147
+
148
+ ### Array#to_html_table
149
+ ~~~ruby
150
+ [['header1', 'header2', 'header3'],['line1_1', 'line1_2', 'line1_3']].to_html_table
151
+ ~~~
152
+
153
+ result
154
+ ~~~
155
+ <table>
156
+ <tr>
157
+ <th>header1</th>
158
+ <th>header2</th>
159
+ <th>header3</th>
160
+ </tr>
161
+ <tr>
162
+ <td>line1_1</td>
163
+ <td>line1_2</td>
164
+ <td>line1_3</td>
165
+ </tr>
166
+ </table>
167
+ ~~~
168
+
169
+ no header case
170
+ ~~~ruby
171
+ [['not_header1', 'not_header2', 'not_header3'],['line1_1', 'line1_2', 'line1_3']].to_html_table({no_header: true})
172
+ ~~~
173
+
174
+ result
175
+ ~~~
176
+ <table>
177
+ <tr>
178
+ <td>not_header1</td>
179
+ <td>not_header2</td>
180
+ <td>not_header3</td>
181
+ </tr>
182
+ <tr>
183
+ <td>line1_1</td>
184
+ <td>line1_2</td>
185
+ <td>line1_3</td>
186
+ </tr>
187
+ </table>
188
+ ~~~
189
+
190
+
145
191
  [back to list](#list)
146
192
 
147
193
  ### Array#together
@@ -2974,6 +3020,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
2974
3020
  https://github.com/tbpgr/tbpgr_utils_snippets
2975
3021
 
2976
3022
  ## History
3023
+ * version 0.0.91 : add Array#to_html_table
2977
3024
  * version 0.0.90 : add Kernel#hash_to_attributes
2978
3025
  * version 0.0.89 : add String#escape_quote
2979
3026
  * version 0.0.88 : add String#escape_double_quote
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ require 'open_classes/array/to_html_table'
2
3
  require 'open_classes/array/to_table'
3
4
  require 'open_classes/array/together'
4
5
  require 'open_classes/array/together_at'
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ require 'open_classes/string/justify_table'
3
+
4
+ # Array
5
+ class Array
6
+ # Array(Array, Array...) to html table format.
7
+ #
8
+ # === Example
9
+ #
10
+ # [['header1', 'header2', 'header3'],['line1_1', 'line1_2', 'line1_3']].to_html_table
11
+ #
12
+ # result
13
+ # <table>
14
+ # <tr>
15
+ # <th>header1</th>
16
+ # <th>header2</th>
17
+ # <th>header3</th>
18
+ # </tr>
19
+ # <tr>
20
+ # <td>line1_1</td>
21
+ # <td>line1_2</td>
22
+ # <td>line1_3</td>
23
+ # </tr>
24
+ # </table>
25
+ #
26
+ def to_html_table(options = { no_header: false })
27
+ options[:no_header] = false if options[:no_header].nil?
28
+ cnt = options[:no_header] ? 1 : 0
29
+ ret = reduce(['<table>']) do |rets, lines|
30
+ ret = lines.reduce([]) do |ret, column|
31
+ tag = (cnt == 0) ? 'th' : 'td'
32
+ ret << " <#{tag}>#{column}</#{tag}>"
33
+ ret
34
+ end
35
+ cnt += 1
36
+ inner_tr = ret.join("\n")
37
+ rets << " <tr>\n#{inner_tr}\n </tr>"
38
+ end.join("\n") + "\n</table>\n"
39
+ end
40
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.90'
5
+ VERSION = '0.0.91'
6
6
  end
@@ -11,7 +11,7 @@ describe Familyable::Family do
11
11
  persons: [
12
12
  a = Familyable::Person.new(id: 1, parent_ids: [2, 3]),
13
13
  b = Familyable::Person.new(id: 2, parent_ids: []),
14
- c = Familyable::Person.new(id: 3, parent_ids: [4],),
14
+ c = Familyable::Person.new(id: 3, parent_ids: [4], ),
15
15
  d = Familyable::Person.new(id: 4, parent_ids: []),
16
16
  e = Familyable::Person.new(id: 5, parent_ids: [2]),
17
17
  ],
@@ -59,7 +59,7 @@ describe Familyable::Family do
59
59
  persons: [
60
60
  a = Familyable::Person.new(id: 1, parent_ids: [2, 3]),
61
61
  b = Familyable::Person.new(id: 2, parent_ids: []),
62
- c = Familyable::Person.new(id: 3, parent_ids: [4],),
62
+ c = Familyable::Person.new(id: 3, parent_ids: [4], ),
63
63
  d = Familyable::Person.new(id: 4, parent_ids: []),
64
64
  e = Familyable::Person.new(id: 5, parent_ids: [2]),
65
65
  ],
@@ -107,7 +107,7 @@ describe Familyable::Family do
107
107
  persons: [
108
108
  a = Familyable::Person.new(id: 1, parent_ids: [2, 3]),
109
109
  b = Familyable::Person.new(id: 2, parent_ids: []),
110
- c = Familyable::Person.new(id: 3, parent_ids: [4],),
110
+ c = Familyable::Person.new(id: 3, parent_ids: [4], ),
111
111
  d = Familyable::Person.new(id: 4, parent_ids: [3]),
112
112
  e = Familyable::Person.new(id: 5, parent_ids: [2]),
113
113
  ],
@@ -0,0 +1,81 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :to_table do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [
12
+ ['header1', 'header2', 'header3'],
13
+ ['line1_1', 'line1_2', 'line1_3'],
14
+ ],
15
+ expected: <<-EOS
16
+ <table>
17
+ <tr>
18
+ <th>header1</th>
19
+ <th>header2</th>
20
+ <th>header3</th>
21
+ </tr>
22
+ <tr>
23
+ <td>line1_1</td>
24
+ <td>line1_2</td>
25
+ <td>line1_3</td>
26
+ </tr>
27
+ </table>
28
+ EOS
29
+ },
30
+ {
31
+ case_no: 2,
32
+ case_title: 'no header option case',
33
+ inputs: [
34
+ ['not_header1', 'not_header2', 'not_header3'],
35
+ ['line1_1', 'line1_2', 'line1_3'],
36
+ ],
37
+ options: { no_header: true },
38
+ expected: <<-EOS
39
+ <table>
40
+ <tr>
41
+ <td>not_header1</td>
42
+ <td>not_header2</td>
43
+ <td>not_header3</td>
44
+ </tr>
45
+ <tr>
46
+ <td>line1_1</td>
47
+ <td>line1_2</td>
48
+ <td>line1_3</td>
49
+ </tr>
50
+ </table>
51
+ EOS
52
+ },
53
+ ]
54
+
55
+ cases.each do |c|
56
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
57
+ begin
58
+ case_before c
59
+
60
+ # -- given --
61
+ # nothing
62
+
63
+ # -- when/then --
64
+ actual = c[:options] ? c[:inputs].to_html_table(c[:options]) : c[:inputs].to_html_table
65
+
66
+ expect(actual).to eq(c[:expected])
67
+ ensure
68
+ case_after c
69
+ end
70
+ end
71
+
72
+ def case_before(c)
73
+ # implement each case before
74
+ end
75
+
76
+ def case_after(c)
77
+ # implement each case after
78
+ end
79
+ end
80
+ end
81
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbpgr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.90
4
+ version: 0.0.91
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-07 00:00:00.000000000 Z
12
+ date: 2014-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &27072132 !ruby/object:Gem::Requirement
16
+ requirement: &27952860 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 4.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *27072132
24
+ version_requirements: *27952860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &27071844 !ruby/object:Gem::Requirement
27
+ requirement: &27952572 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *27071844
35
+ version_requirements: *27952572
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &27071616 !ruby/object:Gem::Requirement
38
+ requirement: &27952344 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *27071616
46
+ version_requirements: *27952344
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &27071292 !ruby/object:Gem::Requirement
49
+ requirement: &27952020 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.14.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *27071292
57
+ version_requirements: *27952020
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &27070992 !ruby/object:Gem::Requirement
60
+ requirement: &27951720 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *27070992
68
+ version_requirements: *27951720
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp
@@ -110,6 +110,7 @@ files:
110
110
  - lib/ghostable.rb
111
111
  - lib/metasyntactic_variable.rb
112
112
  - lib/open_classes/array.rb
113
+ - lib/open_classes/array/to_html_table.rb
113
114
  - lib/open_classes/array/to_table.rb
114
115
  - lib/open_classes/array/together.rb
115
116
  - lib/open_classes/array/together_at.rb
@@ -217,6 +218,7 @@ files:
217
218
  - spec/familyable/familyable_spec.rb
218
219
  - spec/ghostable_spec.rb
219
220
  - spec/metasyntactic_variable_spec.rb
221
+ - spec/open_classes/array/to_html_table_spec.rb
220
222
  - spec/open_classes/array/to_table_spec.rb
221
223
  - spec/open_classes/array/together_at_spec.rb
222
224
  - spec/open_classes/array/together_clear_spec.rb
@@ -342,6 +344,7 @@ test_files:
342
344
  - spec/familyable/familyable_spec.rb
343
345
  - spec/ghostable_spec.rb
344
346
  - spec/metasyntactic_variable_spec.rb
347
+ - spec/open_classes/array/to_html_table_spec.rb
345
348
  - spec/open_classes/array/to_table_spec.rb
346
349
  - spec/open_classes/array/together_at_spec.rb
347
350
  - spec/open_classes/array/together_clear_spec.rb