fruit_to_lime 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/fruit_to_lime.rb CHANGED
@@ -8,4 +8,5 @@ module FruitToLime
8
8
  FruitToLime::require_all_in 'fruit_to_lime/model/*.rb'
9
9
  require 'fruit_to_lime/csv_helper'
10
10
  require 'fruit_to_lime/column'
11
+ require 'fruit_to_lime/roo_helper'
11
12
  end
@@ -0,0 +1,52 @@
1
+ require "csv"
2
+ module FruitToLime
3
+ class RooHelper
4
+ def initialize(data)
5
+ @data = data
6
+ @sheet = data.sheets.first
7
+ @map = {}
8
+ 1.upto(data.last_column(@sheet)) do |col|
9
+ @map[col] = @data.cell(1, col, @sheet).encode('UTF-8')
10
+ end
11
+ end
12
+
13
+ def rows
14
+ rs = []
15
+ 2.upto(@data.last_row(@sheet)) do |row|
16
+ r={}
17
+ 1.upto(@data.last_column(@sheet)) do |col|
18
+ val = cell_to_csv(row, col, @sheet)
19
+ r[@map[col]] = val
20
+ end
21
+ rs.push(r)
22
+ end
23
+ return rs
24
+ end
25
+
26
+ def cell_to_csv(row, col, sheet)
27
+ if @data.empty?(row,col,sheet)
28
+ ''
29
+ else
30
+ onecell = @data.cell(row,col,sheet)
31
+ case @data.celltype(row,col,sheet)
32
+ when :string
33
+ unless onecell.empty?
34
+ onecell.encode('UTF-8')
35
+ end
36
+ when :float, :percentage
37
+ if onecell == onecell.to_i
38
+ onecell.to_i.to_s
39
+ else
40
+ onecell.to_s
41
+ end
42
+ when :date, :datetime
43
+ onecell.to_s
44
+ when :time
45
+ Roo::Base.integer_to_timestring(onecell)
46
+ else
47
+ raise "unhandled celltype #{@data.celltype(row,col,sheet)}"
48
+ end || ""
49
+ end
50
+ end
51
+ end
52
+ end
@@ -1,7 +1,7 @@
1
1
  module FruitToLime
2
2
  module SerializeHelper
3
3
 
4
- def fill_using(entity_columns, row)
4
+ def fill_using(entity_columns, row)# TODO: Move to InCSV
5
5
  entity_columns.select do |ecol|
6
6
  ecol.selected!=nil && ecol.selected.length >0 && ecol.column!=nil && ecol.column.length > 0
7
7
  end.each do |ecol|
@@ -57,7 +57,7 @@ module SerializeHelper
57
57
  end
58
58
  end
59
59
 
60
- def set_attribute(selected, value)
60
+ def set_attribute(selected, value)# TODO: Move to InCSV
61
61
  if selected.is_a? String
62
62
  selected = [selected]
63
63
  end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'fruit_to_lime'
3
+ require 'roo'
4
+ describe FruitToLime::RooHelper do
5
+ it "should handle sv chars" do
6
+ samplefile = File.join(File.dirname(__FILE__), '..', 'sample_data', 'excel.xlsx')
7
+ rows = FruitToLime::RooHelper.new(Roo::Excelx.new(samplefile)).rows
8
+ rows.should include({"Alpha"=>"L\u00E5s","Beta"=>"m\u00E4sk","\u00D6rjan"=>"l\u00E4sk","\u00C4skil"=>""})
9
+ end
10
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fruit_to_lime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-10-01 00:00:00.000000000 Z
13
+ date: 2013-10-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: iso_country_codes
@@ -81,11 +81,13 @@ files:
81
81
  - lib/fruit_to_lime/model/rootmodel.rb
82
82
  - lib/fruit_to_lime/model/sourceref.rb
83
83
  - lib/fruit_to_lime/model/tag.rb
84
+ - lib/fruit_to_lime/roo_helper.rb
84
85
  - lib/fruit_to_lime/serialize_helper.rb
85
86
  - lib/fruit_to_lime.rb
86
87
  - spec/gosourceref_spec.rb
87
88
  - spec/helpers/address_helper_spec.rb
88
89
  - spec/helpers/csv_helper_spec.rb
90
+ - spec/helpers/roo_helper_spec.rb
89
91
  - spec/helpers/serialize_helper_spec.rb
90
92
  - spec/person_spec.rb
91
93
  - spec/spec_helper.rb
@@ -117,6 +119,7 @@ test_files:
117
119
  - spec/gosourceref_spec.rb
118
120
  - spec/helpers/address_helper_spec.rb
119
121
  - spec/helpers/csv_helper_spec.rb
122
+ - spec/helpers/roo_helper_spec.rb
120
123
  - spec/helpers/serialize_helper_spec.rb
121
124
  - spec/person_spec.rb
122
125
  - spec/spec_helper.rb