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