mailercity 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,7 @@ module Mailercity
8
8
  @@api_base = 'https://mailercity.onthecity.org'
9
9
  @@api_key = nil
10
10
  @@perform_deliveries = true
11
+ @@logger = nil
11
12
 
12
13
  def self.api_base=(api_base)
13
14
  @@api_base = api_base
@@ -37,6 +38,13 @@ module Mailercity
37
38
  @@perform_deliveries
38
39
  end
39
40
 
41
+ def self.logger=(logger)
42
+ @@logger = logger
43
+ end
44
+
45
+ def self.logger
46
+ @@logger
47
+ end
40
48
 
41
49
  def self.request(path, args)
42
50
  raise AuthenticationError.new('No API key provided. (HINT: set your API key using "Mailercity.api_key = <API-KEY>".') unless api_key
@@ -70,8 +78,9 @@ module Mailercity
70
78
  end
71
79
 
72
80
  def deliver
81
+ log = "[#{self.class.name}] Posting to #{Mailercity.api_base}/#{mailer_name}/#{template}: #{params.to_json}"
82
+ Mailercity.logger.info(log) unless Mailercity.logger.nil?
73
83
  return true if Mailercity.perform_deliveries == false
74
-
75
84
  response = Mailercity.request("/#{mailer_name}/#{template}", params)
76
85
  response.status == 201
77
86
  end
@@ -1,3 +1,3 @@
1
1
  module Mailercity
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -17,8 +17,9 @@ describe Mailercity do
17
17
  let(:user) { {"id"=>1, "email"=>"rob@robforman.com", "first_name"=>"Rob", "last_name"=>"Forman"} }
18
18
  let(:account) { {"id"=>1, "name"=>"Awesometown"} }
19
19
 
20
- before(:each) do
20
+ after(:each) do
21
21
  Mailercity.perform_deliveries = true
22
+ Mailercity.logger = nil
22
23
  end
23
24
 
24
25
  it "can create dynamic mailer classes and template methods while passing appropriate parameters" do
@@ -52,5 +53,15 @@ describe Mailercity do
52
53
  Mailercity::MyTestMailer.my_test_template(user).deliver.should == true
53
54
  end
54
55
  end
56
+
57
+ context "with a logger" do
58
+ it "calls the logger info method" do
59
+ mailer_path = "/my_test_mailer/my_test_template"
60
+ stub = stub_post("http://testhost#{mailer_path}", 201, user)
61
+ Mailercity.logger = stub('logger')
62
+ Mailercity.logger.should_receive(:info).with("[Mailercity::MyTestMailer] Posting to #{Mailercity.api_base}#{mailer_path}: #{[user].to_json}")
63
+ Mailercity::MyTestMailer.my_test_template(user).deliver
64
+ end
65
+ end
55
66
  end
56
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailercity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-19 00:00:00.000000000 Z
12
+ date: 2013-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday