Class: Chaskiq::List

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/chaskiq/list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#upload_fileObject

Returns the value of attribute upload_file.



9
10
11
# File 'app/models/chaskiq/list.rb', line 9

def upload_file
  @upload_file
end

Instance Method Details

#create_subscriber(subscriber) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'app/models/chaskiq/list.rb', line 24

def create_subscriber(subscriber)
  sub = self.subscribers.find_or_initialize_by(email: subscriber[:email])
  sub.name = subscriber[:name]
  sub.last_name = subscriber[:last_name]
  s = self.subscriptions.find_or_initialize_by(id: sub.id)
  s.subscriber = sub
  s.save
  s.subscriber
end

#csv_importerObject



44
45
46
# File 'app/models/chaskiq/list.rb', line 44

def csv_importer
  @importer ||= Chaskiq::CsvImporter.new
end

#import_csv(file) ⇒ Object



16
17
18
19
20
21
22
# File 'app/models/chaskiq/list.rb', line 16

def import_csv(file)
  csv_importer.import(file).each do |row|
    puts "Importing row #{row}"
    sub = {email: row[0], name: row[1], last_name: row[2]}
    create_subscriber(sub)
  end
end

#subscribe(subscriber) ⇒ Object



39
40
41
42
# File 'app/models/chaskiq/list.rb', line 39

def subscribe(subscriber)
  s = subscriptions.find_by(subscriber: subscriber)
  s.subscribe!
end

#subscription_progressObject



11
12
13
14
# File 'app/models/chaskiq/list.rb', line 11

def subscription_progress
  return 0 if subscribers.where(state: "subscribed").size.zero?
  (subscribers.where(state: "subscribed").size.to_f / subscribers.size.to_f  * 100.0).to_i
end

#unsubscribe(subscriber) ⇒ Object



34
35
36
37
# File 'app/models/chaskiq/list.rb', line 34

def unsubscribe(subscriber)
  s = subscriptions.find_by(subscriber: subscriber)
  s.unsubscribe!
end