Class: Chaskiq::List
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Chaskiq::List
- Defined in:
- app/models/chaskiq/list.rb
Instance Attribute Summary collapse
-
#upload_file ⇒ Object
Returns the value of attribute upload_file.
Instance Method Summary collapse
- #create_subscriber(subscriber) ⇒ Object
- #csv_importer ⇒ Object
- #import_csv(file) ⇒ Object
- #subscribe(subscriber) ⇒ Object
- #subscription_progress ⇒ Object
- #unsubscribe(subscriber) ⇒ Object
Instance Attribute Details
#upload_file ⇒ Object
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_importer ⇒ Object
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_progress ⇒ Object
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 |