Class: CampaignMonitor::Campaign

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

Overview

Provides access to the information about a campaign

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers

#formatted_timestamp, #handle_response, #timestamp_format

Constructor Details

#initialize(id = nil, subject = nil, sent_date = nil, total_recipients = nil) ⇒ Campaign



8
9
10
11
12
13
14
# File 'lib/campaign_monitor/campaign.rb', line 8

def initialize(id=nil, subject=nil, sent_date=nil, total_recipients=nil)
  @id = id
  @subject = subject
  @sent_date = sent_date
  @total_recipients = total_recipients
  @cm_client = CampaignMonitor.new
end

Instance Attribute Details

#cm_clientObject (readonly)

Returns the value of attribute cm_client.



6
7
8
# File 'lib/campaign_monitor/campaign.rb', line 6

def cm_client
  @cm_client
end

#idObject (readonly)

Returns the value of attribute id.



6
7
8
# File 'lib/campaign_monitor/campaign.rb', line 6

def id
  @id
end

#sent_dateObject (readonly)

Returns the value of attribute sent_date.



6
7
8
# File 'lib/campaign_monitor/campaign.rb', line 6

def sent_date
  @sent_date
end

#subjectObject (readonly)

Returns the value of attribute subject.



6
7
8
# File 'lib/campaign_monitor/campaign.rb', line 6

def subject
  @subject
end

#total_recipientsObject (readonly)

Returns the value of attribute total_recipients.



6
7
8
# File 'lib/campaign_monitor/campaign.rb', line 6

def total_recipients
  @total_recipients
end

Instance Method Details

#bouncesObject

Example @campaign = Campaign.new(12345) @subscriber_bounces = @campaign.bounces

for subscriber in @subscriber_bounces puts subscriber.email end



36
37
38
39
40
# File 'lib/campaign_monitor/campaign.rb', line 36

def bounces
  handle_response(cm_client.Campaign_GetBounces("CampaignID"=> self.id)) do |response|
    response["SubscriberBounce"].collect{|s| SubscriberBounce.new(s["EmailAddress"], s["ListID"], s["BounceType"])}
  end
end

#clicksObject

Example @campaign = Campaign.new(12345) @subscriber_clicks = @campaign.clicks

for subscriber in @subscriber_clicks puts subscriber.email end



49
50
51
52
53
# File 'lib/campaign_monitor/campaign.rb', line 49

def clicks
  handle_response(cm_client.Campaign_GetSubscriberClicks("CampaignID" => self.id)) do |response|
    response["SubscriberClick"].collect{|s| SubscriberClick.new(s["EmailAddress"], s["ListID"], s["ClickedLinks"])}
  end
end

#number_bouncedObject

Example @campaign = Campaign.new(12345) puts @campaign.number_bounced



99
100
101
# File 'lib/campaign_monitor/campaign.rb', line 99

def number_bounced
  @number_bounced ||= attributes[:number_bounced]
end

#number_clicksObject

Example @campaign = Campaign.new(12345) puts @campaign.number_clicks



85
86
87
# File 'lib/campaign_monitor/campaign.rb', line 85

def number_clicks
  @number_clicks ||= attributes[:number_clicks]
end

#number_openedObject

Example @campaign = Campaign.new(12345) puts @campaign.number_opened



78
79
80
# File 'lib/campaign_monitor/campaign.rb', line 78

def number_opened
  @number_opened ||= attributes[:number_opened]
end

#number_recipientsObject

Example @campaign = Campaign.new(12345) puts @campaign.number_recipients



71
72
73
# File 'lib/campaign_monitor/campaign.rb', line 71

def number_recipients
  @number_recipients ||= attributes[:number_recipients]
end

#number_unsubscribedObject

Example @campaign = Campaign.new(12345) puts @campaign.number_unsubscribed



92
93
94
# File 'lib/campaign_monitor/campaign.rb', line 92

def number_unsubscribed
  @number_unsubscribed ||= attributes[:number_unsubscribed]
end

#opensObject

Example @campaign = Campaign.new(12345) @subscriber_opens = @campaign.opens

for subscriber in @subscriber_opens puts subscriber.email end



23
24
25
26
27
# File 'lib/campaign_monitor/campaign.rb', line 23

def opens
  handle_response(cm_client.Campaign_GetOpens("CampaignID" => self.id)) do |response|
    response["SubscriberOpen"].collect{|s| SubscriberOpen.new(s["EmailAddress"], s["ListID"], s["NumberOfOpens"])}
  end
end

#unsubscribesObject

Example @campaign = Campaign.new(12345) @subscriber_unsubscribes = @campaign.unsubscribes

for subscriber in @subscriber_unsubscribes puts subscriber.email end



62
63
64
65
66
# File 'lib/campaign_monitor/campaign.rb', line 62

def unsubscribes
  handle_response(cm_client.Campaign_GetUnsubscribes("CampaignID" => self.id)) do |response|
    response["SubscriberUnsubscribe"].collect{|s| SubscriberUnsubscribe.new(s["EmailAddress"], s["ListID"])}
  end
end