Module: BBMB::Util::TransferDat

Defined in:
lib/bbmb/util/transfer_dat.rb

Class Method Summary collapse

Class Method Details

.parse(io) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/bbmb/util/transfer_dat.rb', line 9

def TransferDat.parse(io)
  begin
    io.rewind
    data = io.read
    lines = data.split(/[\r\n]+/)
  rescue ArgumentError => error
    raise error unless io.is_a?(File)
    lines = File.open(io, external_encoding: Encoding::ISO_8859_1).read.split(/[\r\n]+/)
  end
  lines.collect { |line|
    if(parsed = parse_line(line))
      yield parsed
    end
  }
end

.parse_line(line) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/bbmb/util/transfer_dat.rb', line 24

def TransferDat.parse_line(line)
  begin
    result = Model::Order::Info.new
    result.pcode  = line[13,7].to_i.to_s
    result.description = line[20,50].strip
    result.ean13 = line[74,13]
    result.quantity = line[70,4].to_i
    result
  rescue Exception => e
    SBSM.info('transfer') {
      [e.class, e.message, e.backtrace].pretty_inspect
    }
  end
end