mad_mimi_two 0.5.7 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,4 +1,11 @@
1
1
  === 0.0.1 2010-05-23
2
2
 
3
+ * 0.5.8
4
+ added promotion list
5
+
6
+ * 0.5.7
7
+ removed strange require issue from new apps in Rail 3
3
8
  * 0.5.4
4
9
  * Added bin file to send message from command line
10
+
11
+
data/README.rdoc CHANGED
@@ -102,7 +102,11 @@ send_mimi.rb -e xxxx@ficonab.com -p new_crm -k 'keyvalue' -u xxxx@yyyy.com -s te
102
102
  warning: peer certificate won't be verified in this SSL session
103
103
  1282604803 # this is the return value from mad mimi
104
104
 
105
+ == Get promotion list
106
+ t=MadMimiTwo::MadMimiMessage.new
107
+ r=t.get_promotions()
105
108
 
109
+ returns a hash of promotions on your account
106
110
 
107
111
  == LICENSE:
108
112
 
@@ -2,6 +2,8 @@ require 'cgi'
2
2
  require 'rubygems'
3
3
  gem 'httpclient'
4
4
  require 'httpclient'
5
+ gem 'nokogiri'
6
+ require 'nokogiri'
5
7
  class Hash
6
8
  def madmimiurlencode
7
9
  to_a.map do |name_value|
@@ -11,21 +13,38 @@ class Hash
11
13
  end
12
14
  module MadMimiTwo
13
15
  module MadMimiMailer
14
- SINGLE_SEND_URL = 'https://api.madmimi.com/mailer'
16
+ API_URL = 'https://api.madmimi.com/'
17
+ SINGLE_SEND_URL = "#{API_URL}mailer"
15
18
 
16
19
  def self.included(base)
17
20
  base.extend(ClassMethods)
18
21
  end
22
+ def send_cmd(url)
23
+ begin
24
+ client= HTTPClient.new
25
+ res=client.get_content(url)
26
+ rescue HTTPClient::BadResponseError
27
+ res="problem retrieving status"
28
+ end
29
+ res
30
+ end
31
+ def get_promotions_xml
32
+ url="#{API_URL}promotions.xml?#{MadMimiTwo::MadMimiMessage.api_settings.madmimiurlencode}"
33
+ xml_list=send_cmd(url)
34
+ end
35
+ def get_promotions
36
+ xml_list=get_promotions_xml
37
+ res={}
38
+ reader = Nokogiri::XML::Reader(xml_list)
39
+ reader.each do |node|
40
+ res=res.merge({ node.attribute('name') => node.attribute('name') }) if node.name=='promotion' # eventually will want hash
41
+ end
42
+ res
43
+ end
19
44
  # check the status of a sent email
20
45
  def check_status(msg_id)
21
46
  url = "#{SINGLE_SEND_URL}s/status/#{msg_id}?#{MadMimiTwo::MadMimiMessage.api_settings.madmimiurlencode}"
22
- begin
23
- client= HTTPClient.new
24
- res=client.get_content(url)
25
- rescue HTTPClient::BadResponseError
26
- res="problem retrieving status"
27
- end
28
- res
47
+ send_cmd(url)
29
48
  end
30
49
 
31
50
  # Custom Mailer attributes
@@ -85,4 +85,12 @@ class TestMadMimiTwo < Test::Unit::TestCase
85
85
  assert r=='sent', "message response not correct: #{r}"
86
86
 
87
87
  end
88
+ def test_get_promotions
89
+ t=MadMimiTwo::MadMimiMessage.new
90
+ r=t.get_promotions()
91
+ puts "'r is ' #{r}"
92
+ assert r.class==Hash, "response is not Hash r is: #{r} #{r.class}"
93
+ assert r.key?('new_CRM'), "does not include new_CRM #{r}" #this MAY NOT BE IN YOUR promotions list
94
+
95
+ end
88
96
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mad_mimi_two
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 7
10
- version: 0.5.7
9
+ - 8
10
+ version: 0.5.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - scott sproule