ficonabses 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc CHANGED
@@ -31,7 +31,7 @@ A simple way to send emails from your application using amazon ses. Register at
31
31
  f.send_textemail(@destination,'This is the subject','text contents of the email')
32
32
 
33
33
  == SYNOPSIS USING A TEMPLATE:
34
- * The subject and contents of the template are defined on the system. See admin.ses.sg.estormtech.com[http:admin.ses.sg.estormtech.com]. As well as a bcc variable is also possible to be defined to automatically copy an adress
34
+ * The subject and contents of the template are defined on the system. See admin.ses.sg.estormtech.com[http:admin.ses.sg.estormtech.com]. As well as a bcc variable is also possible to be defined to automatically copy an addresss. The template may be an email or an apple push notification.
35
35
 
36
36
  * res =FiconabSES::Base.send_template_direct(@account,@passwd,@destination,templatename)
37
37
  * or similarly using objects
@@ -40,6 +40,15 @@ A simple way to send emails from your application using amazon ses. Register at
40
40
  res =f.send_template(@destination,'testtemplate')
41
41
 
42
42
  == SYNOPSIS USING A TEMPLATE PLUS PARAMETERS
43
+ * This allows you to have a dynamic template and fill in the details in the template dynamically. (eg insert url, customer name) into the template just by attaching the values to the call in a ruby hash.
44
+
45
+ * res =FiconabSES::Base.send_template_params_direct(@account,@passwd,@destination,templatename,options)
46
+ * or similarly using objects
47
+ f=FiconabSES::Base.new
48
+ options={}
49
+ options['customername']='Mr Test' #in the template {customername} will be replaced with Mr Test
50
+ f.set_credentials(@account,@passwd,options)
51
+ res =f.send_template(@destination,'testtemplate')
43
52
 
44
53
  == REQUIREMENTS:
45
54
 
@@ -4,7 +4,19 @@ gem 'httpclient'
4
4
  require 'httpclient'
5
5
  gem 'nokogiri'
6
6
  require 'nokogiri'
7
-
7
+ class Object
8
+ def to_query(key)
9
+ require 'cgi' unless defined?(CGI) && defined?(CGI::escape)
10
+ "#{CGI.escape(key.to_s)}=#{CGI.escape(self.to_s)}"
11
+ end
12
+ end
13
+ class Hash
14
+ def to_param(namespace = nil)
15
+ collect do |key, value|
16
+ value.to_query(namespace ? "#{namespace}[#{key}]" : key)
17
+ end.sort * '&'
18
+ end
19
+ end
8
20
  module FiconabSES
9
21
  class Base
10
22
  attr_accessor :host,:account,:password,:uri,:clnt,:extheader
@@ -36,6 +48,11 @@ module FiconabSES
36
48
  f.set_credentials(account,password)
37
49
  f.send_template(destination,templatename)
38
50
  end
51
+ def self.send_template_params_direct(account,password,destination,templatename,options={})
52
+ f=FiconabSES::Base.new
53
+ f.set_credentials(account,password)
54
+ f.send_template(destination,templatename,options)
55
+ end
39
56
  def perform(url)
40
57
  @uri=URI.parse(url)
41
58
  raise 'credentials not set' if @account==nil
@@ -68,6 +85,10 @@ module FiconabSES
68
85
  url="#{self.action_url('ficonabsimpletemplate',destination)}&template=#{URI.encode(templatename)}"
69
86
  url
70
87
  end
88
+ def template_url_params(destination,templatename,options)
89
+ url="#{self.action_url('ficonabcomplextemplate',destination)}&template=#{URI.encode(templatename)}&#{options.to_param}"
90
+ url
91
+ end
71
92
  def html_url(destination,subject,contents,html)
72
93
  contents='' if contents==nil
73
94
  url="#{self.text_url(destination,subject,contents)}&html=#{URI.encode(html)}"
@@ -80,10 +101,16 @@ module FiconabSES
80
101
  end
81
102
  def send_template(destination,templatename)
82
103
  url=self.template_url(destination,templatename)
83
- puts "url is: #{url}"
104
+ # puts "url is: #{url}"
84
105
  perform(url)
85
106
  # res
86
107
  end
108
+ def send_template_params(destination,templatename,options={})
109
+ url=self.template_url_params(destination,templatename,options)
110
+ puts "url is: #{url}"
111
+ perform(url)
112
+ # res
113
+ end
87
114
  def send_htmlemail(destination,subject,htmlcontents,textcontents=nil)
88
115
  textcontents='-' if textcontents==nil
89
116
  url=self.html_url(destination,subject,textcontents,htmlcontents)
@@ -7,18 +7,20 @@ class TestFiconabses < Test::Unit::TestCase
7
7
  @account=ACCOUNT #in test_secret.rb put ACCOUNT='youraccount' or insert your parameters direclty here eg @ACCOUNT='myaccount'
8
8
  @passwd=PASSWD #in test_secret.rb put PASSWD='yourpasswd'
9
9
  @destination=DESTINATION # eg your email address 'xxx@yyyy.com'
10
-
10
+ @tsipid = TSIPID
11
11
  end
12
12
  def test_creds
13
13
  puts "CREDENTIALS ARE: account: #{@account} passwd: #{@passwd}"
14
14
  # self assert true
15
15
  end
16
+
16
17
  def test_send_text_direct
17
18
  puts 'SEND TEXT DIRECT'
18
19
  res =FiconabSES::Base.send_textemail_direct(@account,@passwd,@destination,'This is the subject','contents of the email')
19
20
  #puts "RES is: #{res}"
20
21
  assert res.include? '200'
21
22
  end
23
+
22
24
  def test_send_html_direct
23
25
  puts "SEND HTML DIRECT"
24
26
  res =FiconabSES::Base.send_htmlemail_direct(@account,@passwd,@destination,'This is the HTML subject','<h1>HTML Contents</h1><p>hi from paragraph</p>','text contents of the email')
@@ -26,7 +28,7 @@ class TestFiconabses < Test::Unit::TestCase
26
28
  assert res.include? '200'
27
29
  assert false==(res.include? 'Error')
28
30
  end
29
- end
31
+
30
32
  def test_send_html_nil_text
31
33
  puts "SEND HTML with NIL text"
32
34
  res =FiconabSES::Base.send_htmlemail_direct(@account,@passwd,@destination,'This is HTML Subject nil text','<h1>HTML Contents</h1><p>hi from paragraph</p>') #no text portion
@@ -34,7 +36,7 @@ class TestFiconabses < Test::Unit::TestCase
34
36
  assert res.include? '200'
35
37
  assert false==(res.include? 'Error')
36
38
  end
37
- end
39
+
38
40
  def test_send_emails
39
41
  f=FiconabSES::Base.new
40
42
  f.set_credentials(@account,@passwd)
@@ -46,7 +48,17 @@ class TestFiconabses < Test::Unit::TestCase
46
48
  assert res.include? '200'
47
49
  assert false==(res.include? 'Error')
48
50
  end
49
- end
51
+
52
+ def test_apn_template_params
53
+ options={}
54
+ options['hello']='TESTING'
55
+ f=FiconabSES::Base.new
56
+ f.set_credentials(@account,@passwd)
57
+ res =f.send_template_params(@tsipid,'apn_template',options) #no text portion
58
+ puts "RES is: #{res}"
59
+ assert res.include? '200'
60
+ assert false==(res.include? 'Error')
61
+ end
50
62
  def test_no_credentials
51
63
  f=FiconabSES::Base.new
52
64
  assert_raise RuntimeError do #should raise runtime error
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require File.dirname(__FILE__) + '/test_secret.rb' #FILL IN ACCOUNT/PASSWD AS GLOBALS IN THIS
3
+
4
+ class TestFiconabses < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @account=ACCOUNT #in test_secret.rb put ACCOUNT='youraccount' or insert your parameters direclty here eg @ACCOUNT='myaccount'
8
+ @passwd=PASSWD #in test_secret.rb put PASSWD='yourpasswd'
9
+ @destination=DESTINATION # eg your email address 'xxx@yyyy.com'
10
+ @f=FiconabSES::Base.new
11
+ @f.set_credentials('scott','scott123')
12
+ @f.set_debug
13
+ @destination='scott.sproule@gmail.com'
14
+ @tsipid ='7923044488'
15
+ end
16
+ def test_hash
17
+ options={}
18
+ options['hello']='TESTING'
19
+ res=options.to_param
20
+ assert res=="hello=TESTING","res is: #{res}"
21
+ options['hello2']='TESTING2'
22
+ res=options.to_param
23
+ assert res=="hello2=TESTING2&hello=TESTING","res is: #{res}"
24
+ end
25
+ def test_local_apn_template_params
26
+ options={}
27
+ options['hello']='TESTING'
28
+ res =@f.send_template_params(@tsipid,'apn_template',options) #no text portion
29
+ puts "RES is: #{res}"
30
+ assert res.include? '200'
31
+ assert false==(res.include? 'Error')
32
+
33
+ end
34
+
35
+ end
@@ -23,21 +23,37 @@ class TestFiconabses < Test::Unit::TestCase
23
23
  assert res.include? '200'
24
24
  assert false==(res.include? 'Error')
25
25
  end
26
- def test_local_send_template
27
-
26
+ def test_local_send_template
28
27
  res =@f.send_template(@destination,'testtemplate') #no text portion
29
28
  puts "RES is: #{res}"
30
29
  assert res.include? '200'
31
- assert false==(res.include? 'Error')
32
-
33
- end
30
+ assert false==(res.include? 'Error')
31
+ end
34
32
  def test_local_apn_template
35
-
36
33
  res =@f.send_template(@tsipid,'apn_template') #no text portion
37
34
  puts "RES is: #{res}"
38
35
  assert res.include? '200'
39
36
  assert false==(res.include? 'Error')
40
-
41
37
  end
38
+
39
+ def test_local_apn_template_params
40
+ options={}
41
+ options['hello']='TESTING'
42
+ res =@f.send_template_params(@tsipid,'apn_template',options) #no text portion
43
+ puts "RES is: #{res}"
44
+ assert res.include? '200'
45
+ assert false==(res.include? 'Error')
46
+
47
+ end
48
+ def test_local_apn_template_params
49
+ options={}
50
+ options['hello']='TESTING'
51
+ options['bcinfo']='+6590683565'
52
+ res =@f.send_template_params(@tsipid,'apn_template',options) #no text portion
53
+ puts "RES is: #{res}"
54
+ assert res.include? '200'
55
+ assert false==(res.include? 'Error')
56
+
57
+ end
42
58
 
43
59
  end
@@ -6,7 +6,7 @@ class TestFiconabses < Test::Unit::TestCase
6
6
  def setup
7
7
  @account=ACCOUNT #in test_secret.rb put ACCOUNT='youraccount' or insert your parameters direclty here eg @ACCOUNT='myaccount'
8
8
  @passwd=PASSWD #in test_secret.rb put PASSWD='yourpasswd'
9
- puts "CREDENTIALS ARE: account: #{@account} passwd: #{@passwd}"
9
+ # puts "CREDENTIALS ARE: account: #{@account} passwd: #{@passwd}"
10
10
  @destination=DESTINATION
11
11
  @tsipid=TSIPID
12
12
  end
@@ -25,4 +25,15 @@ class TestFiconabses < Test::Unit::TestCase
25
25
  assert res.include? '200'
26
26
 
27
27
  end
28
+
29
+ def test_apn_template_params
30
+ options={}
31
+ options['hello']='TESTING'
32
+ f=FiconabSES::Base.new
33
+ f.set_credentials(@account,@passwd)
34
+ res =f.send_template_params(@tsipid,'apn_template',options) #no text portion
35
+ puts "RES is: #{res}"
36
+ assert res.include? '200'
37
+ assert false==(res.include? 'Error')
38
+ end
28
39
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 5
9
- version: 0.1.5
8
+ - 6
9
+ version: 0.1.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Scott Sproule
@@ -30,6 +30,7 @@ files:
30
30
  - lib/ficonabses/base.rb
31
31
  - lib/ficonabses.rb
32
32
  - test/test_ficonabses.rb
33
+ - test/test_hashparams.rb
33
34
  - test/test_helper.rb
34
35
  - test/test_localhost.rb
35
36
  - test/test_secret.rb