Class: MailchimpNewsletterSubscriber
- Inherits:
-
NewsletterSubscriber
- Object
- NewsletterSubscriber
- MailchimpNewsletterSubscriber
- Defined in:
- app/models/mailchimp_newsletter_subscriber.rb
Instance Attribute Summary collapse
-
#email ⇒ Object
Returns the value of attribute email.
-
#euid ⇒ Object
Returns the value of attribute euid.
-
#grouping_id ⇒ Object
Returns the value of attribute grouping_id.
-
#groups ⇒ Object
Returns the value of attribute groups.
-
#member_info_data ⇒ Object
Returns the value of attribute member_info_data.
-
#subscribed ⇒ Object
Returns the value of attribute subscribed.
Class Method Summary collapse
-
.new_from_mailchimp(attributes = {}) ⇒ Object
Instantiate a new subscriber based on data from a Mailchimp query like member_info.
-
.subscriber_info(newsletter, email) ⇒ Object
Query for the subscriber info.
Instance Method Summary collapse
-
#interest_group?(name) ⇒ Boolean
is subscriber interested in the named group? ——————————————————————————.
-
#subscribed? ⇒ Boolean
——————————————————————————.
Instance Attribute Details
#email ⇒ Object
Returns the value of attribute email.
3 4 5 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3 def email @email end |
#euid ⇒ Object
Returns the value of attribute euid.
3 4 5 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3 def euid @euid end |
#grouping_id ⇒ Object
Returns the value of attribute grouping_id.
3 4 5 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3 def grouping_id @grouping_id end |
#groups ⇒ Object
Returns the value of attribute groups.
3 4 5 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3 def groups @groups end |
#member_info_data ⇒ Object
Returns the value of attribute member_info_data.
3 4 5 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3 def member_info_data @member_info_data end |
#subscribed ⇒ Object
Returns the value of attribute subscribed.
3 4 5 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3 def subscribed @subscribed end |
Class Method Details
.new_from_mailchimp(attributes = {}) ⇒ Object
Instantiate a new subscriber based on data from a Mailchimp query like member_info. Does nothing with the database at this time.
20 21 22 23 24 25 26 27 28 29 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 20 def self.new_from_mailchimp(attributes = {}) obj = MailchimpNewsletterSubscriber.new obj.member_info_data = attributes obj.subscribed = attributes['status'] == 'subscribed' ? true : false obj.email = attributes['email'] obj.euid = attributes['euid'] obj.grouping_id = attributes['merges']['GROUPINGS'] ? attributes['merges']['GROUPINGS'][0]['id'] : nil obj.groups = attributes['merges']['GROUPINGS'] ? attributes['merges']['GROUPINGS'][0]['groups'] : nil return obj end |
.subscriber_info(newsletter, email) ⇒ Object
Query for the subscriber info.
33 34 35 36 37 38 39 40 41 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 33 def self.subscriber_info(, email) api = MailchimpNewsletter.api subscriber = api.lists.member_info(id: .mc_id, emails: [email: email]) if subscriber['success_count'] == 1 return MailchimpNewsletterSubscriber.new_from_mailchimp(subscriber['data'][0]) else return nil end end |
Instance Method Details
#interest_group?(name) ⇒ Boolean
is subscriber interested in the named group?
7 8 9 10 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 7 def interest_group?(name) group = self.groups.detect {|group| group['name'] == name} if self.groups return (group ? group['interested'] : false) end |
#subscribed? ⇒ Boolean
13 14 15 |
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 13 def subscribed? subscribed end |