Class: CampaignMonitor::List

Inherits:
Object
  • Object
show all
Defined in:
lib/campaign_monitor.rb

Overview

Provides access to the subscribers and info about subscribers associated with a Mailing List

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id = nil, name = nil) ⇒ List

Example

@list = new List(12345)


216
217
218
219
220
# File 'lib/campaign_monitor.rb', line 216

def initialize(id=nil, name=nil)
  @id = id
  @name = name
  @cm_client = CampaignMonitor.new
end

Instance Attribute Details

#cm_clientObject (readonly)

Returns the value of attribute cm_client.



212
213
214
# File 'lib/campaign_monitor.rb', line 212

def cm_client
  @cm_client
end

#idObject (readonly)

Returns the value of attribute id.



212
213
214
# File 'lib/campaign_monitor.rb', line 212

def id
  @id
end

#nameObject (readonly)

Returns the value of attribute name.



212
213
214
# File 'lib/campaign_monitor.rb', line 212

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


254
255
256
257
258
259
260
261
# File 'lib/campaign_monitor.rb', line 254

def active_subscribers(date)
  response = @cm_client.Subscribers_GetActive('ListID' => @id, "Date" => date.strftime("%Y-%m-%d %H:%M:%S"))
  unless response["Code"].to_i != 0 
    response["Subscriber"].collect{|s| Subscriber.new(s["EmailAddress"], s["Name"], s["Date"])}
  else
    raise response["Code"] + " - " + response["Message"]
  end
end

#add_subscriber(email, name = nil) ⇒ Object

Example

@list = new List(12345)
result = @list.add_subscriber("[email protected]")

if result.code == 0
  puts "Added Subscriber"
end


229
230
231
232
# File 'lib/campaign_monitor.rb', line 229

def add_subscriber(email, name = nil)
  response = @cm_client.Subscriber_Add("ListID" => @id, "Email" => email, "Name" => name)
  Result.new(response["Message"], response["Code"].to_i)
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


288
289
290
291
292
293
294
295
# File 'lib/campaign_monitor.rb', line 288

def bounced(date)
  response = @cm_client.Subscribers_GetBounced('ListID' => @id, 'Date' => date.strftime("%Y-%m-%d %H:%M:%S"))
  unless response["Code"].to_i != 0 
    response["Subscriber"].collect{|s| Subscriber.new(s["EmailAddress"], s["Name"], s["Date"])}
  else
    raise response["Code"] + " - " + response["Message"]
  end
end

#remove_subscriber(email) ⇒ Object

Example

@list = new List(12345)
result = @list.remove_subscriber("[email protected]")

if result.code == 0
  puts "Deleted Subscriber"
end


241
242
243
244
# File 'lib/campaign_monitor.rb', line 241

def remove_subscriber(email)
  response = @cm_client.Subscriber_Unsubscribe("ListID" => @id, "Email" => email)
  Result.new(response["Message"], response["Code"].to_i)
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


271
272
273
274
275
276
277
278
# File 'lib/campaign_monitor.rb', line 271

def unsubscribed(date)
  response = @cm_client.Subscribers_GetUnsubscribed('ListID' => @id, 'Date' => date.strftime("%Y-%m-%d %H:%M:%S"))
  unless response["Code"].to_i != 0 
    response["Subscriber"].collect{|s| Subscriber.new(s["EmailAddress"], s["Name"], s["Date"])}
  else
    raise response["Code"] + " - " + response["Message"]
  end
end