class HorizonEvent::Delimited

Public Class Methods

new(options = {}) click to toggle source
# File lib/horizon_event/delimited.rb, line 5
def initialize(options = {})
  options = {
    delimiter: ",",
    request_class: HorizonEvent::Request,
    key_value_pairing_class: HorizonEvent::KeyValuePairing
  }.merge(options)
  # sets instance variables from key value pairs,
  # will fail if any keys given before options aren't in options
  load_options(:state, :city, :delimiter, options)
end

Public Instance Methods

call() click to toggle source
# File lib/horizon_event/delimited.rb, line 16
def call
  return result(true, csv)
end
csv() click to toggle source
# File lib/horizon_event/delimited.rb, line 20
def csv
  csv_string = CSV.generate(col_sep: @delimiter) do |csv|
    csv << [ "day" , "sunrise" , "sunset", "cap"]
    i=0

    hash = @key_value_pairing_class.new(city: @city, state: @state, request_class: @request_class).call.data
    hash.each do |k,v|
      v.each do |monthday, events|
        i+=1
        if !!events[:sunrise] || !!events[:sunset]
          csv << [i, events[:sunrise].to_i, events[:sunset].to_i, "2400"]
        end
      end
    end
  end
end