Class: Peddler::Handlers::TabDelimitedHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/peddler/handlers.rb

Class Method Summary collapse

Class Method Details

.decode_response(res) ⇒ Object

Decodes tab-delimited content into an array of OpenStruct objects. It assumes first line contains parameter names.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/peddler/handlers.rb', line 18

def self.decode_response(res)
  lines = res.split("\n")
  if lines.size > 1
    params = lines[0].split("\t").collect{ |value| value.gsub(/-/, '_') }
    params_size = params.size
    (1..(lines.size - 1)).collect do |line_key|
      values = lines[line_key].split("\t")
      data = (0..(params_size - 1)).inject({}) { |memo, key| memo.merge( { params[key] => values[key] } ) }
      OpenStruct.new(data)
    end
  else
    res
  end
end