class EventDb::EventReader::CsvParser

Public Class Methods

new( text ) click to toggle source
# File lib/eventdb/reader.rb, line 70
def initialize( text )
  @text = text
end
parse( text ) click to toggle source
# File lib/eventdb/reader.rb, line 65
def self.parse( text )  new( text ).parse; end

Public Instance Methods

parse() click to toggle source
# File lib/eventdb/reader.rb, line 74
def parse
  events = []
  recs = CsvHash.parse( @text, :header_converters => :symbol )

  ## note:
  ##   support python's conferences.csv
  ##   subject     =>  name / title
  ##   website_url =>  url / link

  recs.each do |rec|
    title      = rec[:name]     || rec[:title] || rec[:subject]
    link       = rec[:url]      || rec[:link]  || rec[:website_url]
    place      = rec[:location] || rec[:place]

    start_date = Date.strptime( rec[:start] || rec[:start_date], '%Y-%m-%d' )
    end_date   = Date.strptime( rec[:end]   || rec[:end_date],   '%Y-%m-%d' )

    event = Event.new( title, link,
                       place,
                       start_date, end_date )
    ## pp event

    events << event
  end

  events
end