Class: ExcelTable
- Inherits:
-
Object
- Object
- ExcelTable
- Defined in:
- lib/excel-data/excel_table.rb
Instance Attribute Summary collapse
-
#kind ⇒ Object
Returns the value of attribute kind.
Instance Method Summary collapse
- #generate_table(items) ⇒ Object
- #generate_tbody(array_of_arrays) ⇒ Object
-
#initialize(kind = "html") ⇒ ExcelTable
constructor
A new instance of ExcelTable.
- #tbody_from_array(array_of_arrays) ⇒ Object
- #tbody_from_hash(array_of_hashes) ⇒ Object
- #thead_from_array(array) ⇒ Object
- #thead_from_hash(hash) ⇒ Object
Constructor Details
#initialize(kind = "html") ⇒ ExcelTable
Returns a new instance of ExcelTable.
3 4 5 |
# File 'lib/excel-data/excel_table.rb', line 3 def initialize(kind="html") @kind = kind end |
Instance Attribute Details
#kind ⇒ Object
Returns the value of attribute kind.
2 3 4 |
# File 'lib/excel-data/excel_table.rb', line 2 def kind @kind end |
Instance Method Details
#generate_table(items) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/excel-data/excel_table.rb', line 7 def generate_table(items) begin if items.first.class == Hash table = {header:thead_from_hash(items.first), body: tbody_from_hash(items) } elsif items.first.class == Array table = { header:thead_from_array(items.first), body: tbody_from_array(items) } else raise 'wrong data format' end rescue puts 'Sorry, excel-data can only create tables from arrays of arrays or arrays of hashes atm' end return "<table>"+table[:header]+table[:body]+"</table>" end |
#generate_tbody(array_of_arrays) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/excel-data/excel_table.rb', line 41 def generate_tbody(array_of_arrays) table_body = array_of_arrays.collect { |row| "<tr>" + (row.collect{|cell| "<td>"+cell.to_s+"</td>" }).join("\n")+"</tr>" } "<tbody>\n"+table_body.join("\n")+"</tbody>" end |
#tbody_from_array(array_of_arrays) ⇒ Object
36 37 38 39 |
# File 'lib/excel-data/excel_table.rb', line 36 def tbody_from_array(array_of_arrays) array_of_arrays.delete_at(0) generate_tbody(array_of_arrays) end |
#tbody_from_hash(array_of_hashes) ⇒ Object
32 33 34 35 |
# File 'lib/excel-data/excel_table.rb', line 32 def tbody_from_hash(array_of_hashes) generate_tbody(array_of_hashes.collect {|k| k.values.flatten }) end |
#thead_from_array(array) ⇒ Object
51 52 53 |
# File 'lib/excel-data/excel_table.rb', line 51 def thead_from_array(array) "<thead>\n<tr>\n"+(array.collect {|k| "<th>"+k.to_s.titleize+"</th>" }.join("\n"))+"\n</tr>\n</thead>" end |
#thead_from_hash(hash) ⇒ Object
28 29 30 31 |
# File 'lib/excel-data/excel_table.rb', line 28 def thead_from_hash(hash) array = hash.keys.map {|k| k.to_s.titleize} thead_from_array(array) end |