class DataValidation::List
Attributes
slug[R]
Public Class Methods
create(api, members)
click to toggle source
# File lib/data_validation/list.rb, line 10 def self.create(api, members) list = DataValidation::List.new(api) list.create(members) list end
get(api, slug)
click to toggle source
# File lib/data_validation/list.rb, line 16 def self.get(api, slug) list = DataValidation::List.new(api) list.get(slug) list end
new(api)
click to toggle source
# File lib/data_validation/list.rb, line 54 def initialize(api) @api = api @slug = nil end
Public Instance Methods
create(members)
click to toggle source
# File lib/data_validation/list.rb, line 59 def create(members) data = members.map{|m| m + ",\n"}.join() response = @api.post("list/?header=false&email=0&metadata=false", data, { 'Content-Type' => 'text/csv' }) if @api.valid_response?(response) raw = JSON.parse(response.body) raw_list = raw["list"][0] @slug = raw_list["slug"] else raise DataValidation::Error, "could not create list" end end
create_job()
click to toggle source
# File lib/data_validation/list.rb, line 22 def create_job DataValidation::Job.create(@api, self) end
get(slug)
click to toggle source
# File lib/data_validation/list.rb, line 71 def get(slug) @slug = slug end
get_job(slug)
click to toggle source
# File lib/data_validation/list.rb, line 26 def get_job(slug) DataValidation::Job.get(@api, self, slug) end
members()
click to toggle source
# File lib/data_validation/list.rb, line 30 def members data = [] response = @api.get("list/#{@slug}/export.csv") if @api.valid_response?(response) body = response.body CSV.parse(body) do |row| address = row[1] analysis = {} analysis['grade'] = row[2] analysis['click'] = row[3] analysis['open'] = row[4] analysis['hard'] = row[5] analysis['optout'] = row[6] analysis['complain'] = row[7] analysis['trap'] = row[8] analysis['deceased'] = row[9] data << DataValidation::Member.new(address, analysis) end else raise DataValidation::Error, "could not get members for list #{@slug}" end data end