class ErrandBoy::CSV::Base

Public Class Methods

new(request) click to toggle source
# File lib/errand_boy/csv/base.rb, line 6
def initialize(request)
  @request = request
end

Public Instance Methods

filename() click to toggle source
# File lib/errand_boy/csv/base.rb, line 25
def filename
  "#{@request.provider}_#{@request.action}.csv"
end
headers() click to toggle source
# File lib/errand_boy/csv/base.rb, line 29
def headers
  raise NotImplementedError, 'Subclass must implement this method!'
end
include?(key, value) click to toggle source
# File lib/errand_boy/csv/base.rb, line 17
def include?(key, value)
  ::CSV.table(path).by_col[key].include?(value)
end
path() click to toggle source
# File lib/errand_boy/csv/base.rb, line 21
def path
  File.join CSV.dir, filename
end
push() click to toggle source
# File lib/errand_boy/csv/base.rb, line 10
def push
  write_header unless File.exist?(path)
  File.open path, 'a' do |f|
    f.puts values
  end
end
values() click to toggle source
# File lib/errand_boy/csv/base.rb, line 33
def values
  raise NotImplementedError, 'Subclass must implement this method!'
end

Private Instance Methods

write_header() click to toggle source
# File lib/errand_boy/csv/base.rb, line 39
def write_header
  File.write path, headers
rescue Errno::ENOENT
  Dir.mkdir CSV.dir
  retry
end