Class: Eco::CSV

Inherits:
CSV
  • Object
show all
Defined in:
lib/eco/csv.rb,
lib/eco/csv/table.rb

Defined Under Namespace

Classes: Table

Class Method Summary collapse

Class Method Details

.parse(data, **kargs, &block) ⇒ Eco::CSV::Table

Returns:



9
10
11
12
13
14
15
16
# File 'lib/eco/csv.rb', line 9

def parse(data, **kargs, &block)
  kargs = {headers: true, skip_blanks: true}.merge(kargs)
  out = super(data, **kargs, &block).reject do |row|
    values = row.to_hash.values
    values.all?(&:nil?) || values.map(&:to_s).all?(&:empty?)
  end
  Eco::CSV::Table.new(out)
end

.read(file, **kargs) ⇒ Eco::CSV::Table

Returns:



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/eco/csv.rb', line 19

def read(file, **kargs)
  kargs = {headers: true,  skip_blanks: true}.merge(kargs)

  args = [file].tap do |arg|
    encoding = Eco::API::Common::Session::FileManager.encoding(file)
    #encoding = (encoding != "utf-8")? "#{encoding}|utf-8": encoding
    #arg.push(encoding)
    arg.push("rb:bom|utf-8") if encoding == "bom"
  end

  out = super(*args, **kargs).reject do |row|
    values = row.to_hash.values
    values.all?(&:nil?) || values.map(&:to_s).all?(&:empty?)
  end
  Eco::CSV::Table.new(out)
end