emaildirect 1.1.0 → 1.2.0
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/HISTORY.md +4 -1
- data/README.md +5 -0
- data/lib/emaildirect.rb +40 -30
- data/lib/emaildirect/version.rb +1 -1
- metadata +4 -4
data/HISTORY.md
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
## 1.2.0 (Dec. 21st, 2011)
|
|
2
|
+
* Add EmailDirect.disable to disable talking to the EmailDirect server (requires fakeweb gem).
|
|
3
|
+
|
|
1
4
|
## 1.1.0 (Dec. 20th, 2011)
|
|
2
5
|
|
|
3
|
-
*
|
|
6
|
+
* Add EmailDirect::Subscriber#update_custom_field and EmailDirect::Subscriber#update_custom_fields as a way to quickly update one or more custom fields.
|
|
4
7
|
* Custom Fields can now be passed as a regular ruby hash to any of the Subscriber methods and it will be converted to the correct JSON format.
|
|
5
8
|
* Authentication is done using a header instead of basic auth so FakeWeb is easier to use.
|
|
6
9
|
|
data/README.md
CHANGED
|
@@ -88,6 +88,11 @@ Results in:
|
|
|
88
88
|
Error Code: 101
|
|
89
89
|
Error Message: Invalid Email Address
|
|
90
90
|
|
|
91
|
+
### Disabling in Development/Test
|
|
92
|
+
A helper method is provided to disable talking to the EmailDirect REST server (requires the [Fakeweb gem](http://fakeweb.rubyforge.org/))
|
|
93
|
+
|
|
94
|
+
EmailDirect.disable
|
|
95
|
+
|
|
91
96
|
### Expected input and output
|
|
92
97
|
The best way of finding out the expected input and output of a particular method in a particular class is to read the [API docs](https://docs.emaildirect.com)
|
|
93
98
|
and take a look at the code for that function.
|
data/lib/emaildirect.rb
CHANGED
|
@@ -27,15 +27,21 @@ require 'emaildirect/suppression_list'
|
|
|
27
27
|
require 'emaildirect/workflow'
|
|
28
28
|
|
|
29
29
|
module EmailDirect
|
|
30
|
-
# Just allows callers to do EmailDirect.api_key = "..." rather than EmailDirect::EmailDirect.api_key "..." etc
|
|
31
30
|
class << self
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
# Just allows callers to do EmailDirect.api_key = "..." rather than EmailDirect::EmailDirect.api_key "..." etc
|
|
32
|
+
def api_key=(api_key)
|
|
33
|
+
EmailDirect.api_key = api_key
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def base_uri=(uri)
|
|
37
37
|
EmailDirect.base_uri uri
|
|
38
38
|
end
|
|
39
|
+
|
|
40
|
+
# Allows the initializer to turn off actually communicating to the REST service for certain environments
|
|
41
|
+
# Requires fakeweb gem to be installed
|
|
42
|
+
def disable
|
|
43
|
+
FakeWeb.register_uri(:any, %r|#{Regexp.escape(EmailDirect.base_uri)}|, :body => '{"Disabled":true}', :content_type => 'application/json; charset=utf-8')
|
|
44
|
+
end
|
|
39
45
|
end
|
|
40
46
|
|
|
41
47
|
# Represents a EmailDirect API error and contains specific data about the error.
|
|
@@ -67,11 +73,37 @@ module EmailDirect
|
|
|
67
73
|
})
|
|
68
74
|
base_uri @@base_uri
|
|
69
75
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
class << self
|
|
77
|
+
# Sets the API key which will be used to make calls to the EmailDirect API.
|
|
78
|
+
def api_key=(api_key)
|
|
79
|
+
return @@api_key unless api_key
|
|
80
|
+
@@api_key = api_key
|
|
81
|
+
headers 'ApiKey' => @@api_key
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def base_uri; @@base_uri end
|
|
85
|
+
|
|
86
|
+
def get(*args); handle_response super end
|
|
87
|
+
def post(*args); handle_response super end
|
|
88
|
+
def put(*args); handle_response super end
|
|
89
|
+
def delete(*args); handle_response super end
|
|
90
|
+
|
|
91
|
+
def handle_response(response) # :nodoc:
|
|
92
|
+
case response.code
|
|
93
|
+
when 400
|
|
94
|
+
raise BadRequest.new(Hashie::Mash.new response)
|
|
95
|
+
when 401
|
|
96
|
+
raise Unauthorized.new
|
|
97
|
+
when 404
|
|
98
|
+
raise NotFound.new
|
|
99
|
+
when 400...500
|
|
100
|
+
raise ClientError.new response.parsed_response
|
|
101
|
+
when 500...600
|
|
102
|
+
raise ServerError.new
|
|
103
|
+
else
|
|
104
|
+
response
|
|
105
|
+
end
|
|
106
|
+
end
|
|
75
107
|
end
|
|
76
108
|
|
|
77
109
|
# This call returns an object reflecting the current permissions allowed for the provided API Key
|
|
@@ -79,27 +111,5 @@ module EmailDirect
|
|
|
79
111
|
response = EmailDirect.get('/Ping')
|
|
80
112
|
Hashie::Mash.new(response)
|
|
81
113
|
end
|
|
82
|
-
|
|
83
|
-
def self.get(*args); handle_response super end
|
|
84
|
-
def self.post(*args); handle_response super end
|
|
85
|
-
def self.put(*args); handle_response super end
|
|
86
|
-
def self.delete(*args); handle_response super end
|
|
87
|
-
|
|
88
|
-
def self.handle_response(response) # :nodoc:
|
|
89
|
-
case response.code
|
|
90
|
-
when 400
|
|
91
|
-
raise BadRequest.new(Hashie::Mash.new response)
|
|
92
|
-
when 401
|
|
93
|
-
raise Unauthorized.new
|
|
94
|
-
when 404
|
|
95
|
-
raise NotFound.new
|
|
96
|
-
when 400...500
|
|
97
|
-
raise ClientError.new response.parsed_response
|
|
98
|
-
when 500...600
|
|
99
|
-
raise ServerError.new
|
|
100
|
-
else
|
|
101
|
-
response
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
114
|
end
|
|
105
115
|
end
|
data/lib/emaildirect/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: emaildirect
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 31
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
|
-
-
|
|
8
|
+
- 2
|
|
9
9
|
- 0
|
|
10
|
-
version: 1.
|
|
10
|
+
version: 1.2.0
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Jason Rust
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2011-12-
|
|
18
|
+
date: 2011-12-21 00:00:00 -08:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|