class Meetupinator::EventListFileReader

Reads a list of events from a CSV file.

Public Instance Methods

read(file_name) click to toggle source
# File lib/meetupinator/event_list_file_reader.rb, line 6
def read(file_name)
  File.open file_name do |body|
    csv = CSV.new(body,
                  headers: true,
                  header_converters: :symbol,
                  converters: :all)
    csv.to_a.map(&:to_hash).each { |event| parse_dates(event) }
  end
end

Private Instance Methods

parse_dates(event) click to toggle source
# File lib/meetupinator/event_list_file_reader.rb, line 18
def parse_dates(event)
  event[:start_time] = parse_time_on_date(event[:date], event[:start_time])
  event[:end_time] = parse_time_on_date(event[:date], event[:end_time])
  event[:date] = Time.strptime(event[:date], '%d/%m/%Y')
end
parse_time_on_date(date, time) click to toggle source
# File lib/meetupinator/event_list_file_reader.rb, line 24
def parse_time_on_date(date, time)
  time_format = '%d/%m/%Y %I:%M %p'
  time_with_date = date + ' ' + time
  Time.strptime(time_with_date, time_format)
end