Class: CampaignMonitor::List
- Inherits:
-
Object
- Object
- CampaignMonitor::List
- Includes:
- Helpers
- Defined in:
- lib/campaign_monitor/list.rb
Overview
Provides access to the subscribers and info about subscribers associated with a Mailing List
Instance Attribute Summary collapse
-
#cm_client ⇒ Object
readonly
Returns the value of attribute cm_client.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#active_subscribers(date) ⇒ Object
Example current_date = DateTime.new @list = new List(12345) @subscribers = @list.active_subscribers(current_date).
- #add_and_resubscribe(email, name = nil, custom_fields = nil) ⇒ Object
-
#add_and_resubscribe_with_custom_fields(email, name, custom_fields) ⇒ Object
email The subscriber’s email address.
-
#add_subscriber(email, name = nil, custom_fields = nil) ⇒ Object
Example @list = new List(12345) result = @list.add_subscriber(“[email protected]”).
-
#add_subscriber_with_custom_fields(email, name, custom_fields) ⇒ Object
email The subscriber’s email address.
-
#bounced(date) ⇒ Object
Example current_date = DateTime.new @list = new List(12345) @subscribers = @list.bounced(current_date).
-
#initialize(id = nil, name = nil) ⇒ List
constructor
Example @list = new List(12345).
-
#remove_subscriber(email) ⇒ Object
Example @list = new List(12345) result = @list.remove_subscriber(“[email protected]”).
-
#unsubscribed(date) ⇒ Object
Example current_date = DateTime.new @list = new List(12345) @subscribers = @list.unsubscribed(current_date).
Methods included from Helpers
#formatted_timestamp, #handle_response, #timestamp_format
Constructor Details
#initialize(id = nil, name = nil) ⇒ List
Example
@list = new List(12345)
13 14 15 16 17 |
# File 'lib/campaign_monitor/list.rb', line 13 def initialize(id=nil, name=nil) @id = id @name = name @cm_client = CampaignMonitor.new end |
Instance Attribute Details
#cm_client ⇒ Object (readonly)
Returns the value of attribute cm_client.
9 10 11 |
# File 'lib/campaign_monitor/list.rb', line 9 def cm_client @cm_client end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
9 10 11 |
# File 'lib/campaign_monitor/list.rb', line 9 def id @id end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
9 10 11 |
# File 'lib/campaign_monitor/list.rb', line 9 def name @name end |
Instance Method Details
#active_subscribers(date) ⇒ Object
Example
current_date = DateTime.new
@list = new List(12345)
@subscribers = @list.active_subscribers(current_date)
for subscriber in @subscribers
puts subscriber.email
end
93 94 95 96 97 98 |
# File 'lib/campaign_monitor/list.rb', line 93 def active_subscribers(date) response = cm_client.Subscribers_GetActive('ListID' => self.id, 'Date' => (date)) handle_response(response) do response['Subscriber'].collect{|s| Subscriber.new(s['EmailAddress'], s['Name'], s['Date'])} end end |
#add_and_resubscribe(email, name = nil, custom_fields = nil) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/campaign_monitor/list.rb', line 34 def add_and_resubscribe(email, name=nil, custom_fields=nil) if custom_fields.nil? Result.new(cm_client.Subscriber_AddAndResubscribe("ListID" => self.id, "Email" => email, "Name" => name)) else add_and_resubscribe_with_custom_fields(email, name, custom_fields) end end |
#add_and_resubscribe_with_custom_fields(email, name, custom_fields) ⇒ Object
email The subscriber’s email address. name The subscriber’s name. custom_fields A hash of field name => value pairs.
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/campaign_monitor/list.rb', line 72 def add_and_resubscribe_with_custom_fields(email, name, custom_fields) response = cm_client.using_soap do |driver| driver.addAndResubscribeWithCustomFields \ :ApiKey => cm_client.api_key, :ListID => self.id, :Email => email, :Name => name, :CustomFields => { :SubscriberCustomField => custom_fields_array(custom_fields) } end response.subscriber_AddAndResubscribeWithCustomFieldsResult end |
#add_subscriber(email, name = nil, custom_fields = nil) ⇒ Object
Example
@list = new List(12345)
result = @list.add_subscriber("[email protected]")
if result.succeeded?
puts "Added Subscriber"
end
26 27 28 29 30 31 32 |
# File 'lib/campaign_monitor/list.rb', line 26 def add_subscriber(email, name=nil, custom_fields=nil) if custom_fields.nil? Result.new(cm_client.Subscriber_Add("ListID" => self.id, "Email" => email, "Name" => name)) else add_subscriber_with_custom_fields(email, name, custom_fields) end end |
#add_subscriber_with_custom_fields(email, name, custom_fields) ⇒ Object
email The subscriber’s email address. name The subscriber’s name. custom_fields A hash of field name => value pairs.
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/campaign_monitor/list.rb', line 56 def add_subscriber_with_custom_fields(email, name, custom_fields) response = cm_client.using_soap do |driver| driver.addSubscriberWithCustomFields \ :ApiKey => cm_client.api_key, :ListID => self.id, :Email => email, :Name => name, :CustomFields => { :SubscriberCustomField => custom_fields_array(custom_fields) } end response.subscriber_AddWithCustomFieldsResult end |
#bounced(date) ⇒ Object
Example
current_date = DateTime.new
@list = new List(12345)
@subscribers = @list.bounced(current_date)
for subscriber in @subscribers
puts subscriber.email
end
126 127 128 129 130 131 132 |
# File 'lib/campaign_monitor/list.rb', line 126 def bounced(date) response = cm_client.Subscribers_GetBounced('ListID' => self.id, 'Date' => (date)) handle_response(response) do response["Subscriber"].collect{|s| Subscriber.new(s["EmailAddress"], s["Name"], s["Date"])} end end |
#remove_subscriber(email) ⇒ Object
Example
@list = new List(12345)
result = @list.remove_subscriber("[email protected]")
if result.succeeded?
puts "Deleted Subscriber"
end
49 50 51 |
# File 'lib/campaign_monitor/list.rb', line 49 def remove_subscriber(email) Result.new(cm_client.Subscriber_Unsubscribe("ListID" => self.id, "Email" => email)) end |
#unsubscribed(date) ⇒ Object
Example
current_date = DateTime.new
@list = new List(12345)
@subscribers = @list.unsubscribed(current_date)
for subscriber in @subscribers
puts subscriber.email
end
108 109 110 111 112 113 114 115 116 |
# File 'lib/campaign_monitor/list.rb', line 108 def unsubscribed(date) date = (date) unless date.is_a?(String) response = cm_client.Subscribers_GetUnsubscribed('ListID' => self.id, 'Date' => date) handle_response(response) do response['Subscriber'].collect{|s| Subscriber.new(s['EmailAddress'], s['Name'], s['Date'])} end end |