emaildirect 1.3.2 → 1.3.3

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/.gitignore CHANGED
@@ -3,3 +3,4 @@ rdoc
3
3
  pkg
4
4
  *.gem
5
5
  example.rb
6
+ .rvmrc
data/HISTORY.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 1.3.3 (Aug 29, 2012)
2
+ * Added Order and OrderItem resources (bgetting)
3
+
1
4
  ## 1.3.2 (May 16, 2012)
2
5
  * Fixed url for database resource (bgetting)
3
6
 
@@ -21,6 +21,8 @@ require 'emaildirect/list'
21
21
  require 'emaildirect/relay_send'
22
22
  require 'emaildirect/short_url'
23
23
  require 'emaildirect/publication'
24
+ require 'emaildirect/order'
25
+ require 'emaildirect/order_item'
24
26
  require 'emaildirect/source'
25
27
  require 'emaildirect/subscriber'
26
28
  require 'emaildirect/suppression_list'
@@ -0,0 +1,62 @@
1
+ require 'emaildirect'
2
+ require 'json'
3
+
4
+ module EmailDirect
5
+ # Represents an order and associated functionality
6
+ class Order
7
+ class << self
8
+ def all(options = {})
9
+ response = EmailDirect.get '/Orders', :query => options
10
+ Hashie::Mash.new(response)
11
+ end
12
+
13
+ def create(email, options = {})
14
+ options.merge! :EmailAddress => email
15
+ response = EmailDirect.post '/Orders', :body => options.to_json
16
+ Hashie::Mash.new(response)
17
+ end
18
+
19
+ def import(orders)
20
+ options = { :Orders => Array(orders) }
21
+ response = EmailDirect.post '/Orders/Import', :body => options.to_json
22
+ Hashie::Mash.new(response)
23
+ end
24
+ end
25
+
26
+ attr_reader :order_number
27
+
28
+ def initialize(order_number)
29
+ @order_number = order_number
30
+ end
31
+
32
+ def details
33
+ response = get
34
+ Hashie::Mash.new(response)
35
+ end
36
+
37
+ def update(email, options)
38
+ options.merge! :EmailAddress => email
39
+ response = EmailDirect.put uri_for, :body => options.to_json
40
+ Hashie::Mash.new(response)
41
+ end
42
+
43
+ def delete
44
+ response = EmailDirect.delete uri_for, {}
45
+ end
46
+
47
+ private
48
+
49
+ def post(action, options)
50
+ EmailDirect.post uri_for(action), options
51
+ end
52
+
53
+ def get(action = nil, options = {})
54
+ EmailDirect.get uri_for(action), options
55
+ end
56
+
57
+ def uri_for(action = nil)
58
+ action = "/#{action}" if action
59
+ "/Orders/#{order_number}#{action}"
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require 'emaildirect'
2
+ require 'json'
3
+
4
+ module EmailDirect
5
+ # Represents an OrderItem and associated functionality
6
+ class OrderItem
7
+ class << self
8
+ def all(options = {})
9
+ response = EmailDirect.get '/Orders/Items', :query => options
10
+ Hashie::Mash.new(response)
11
+ end
12
+
13
+ def create(email, options = {})
14
+ options.merge! :EmailAddress => email
15
+ response = EmailDirect.post '/Orders', :body => options.to_json
16
+ Hashie::Mash.new(response)
17
+ end
18
+
19
+ def import(orders)
20
+ options = { :Orders => Array(orders) }
21
+ response = EmailDirect.post '/Orders/Import', :body => options.to_json
22
+ Hashie::Mash.new(response)
23
+ end
24
+ end
25
+
26
+ attr_reader :item_id
27
+
28
+ def initialize(item_id)
29
+ @item_id = item_id
30
+ end
31
+
32
+ def details
33
+ response = get
34
+ Hashie::Mash.new(response)
35
+ end
36
+
37
+ def update(email, options)
38
+ options.merge! :EmailAddress => email
39
+ response = EmailDirect.put uri_for, :body => options.to_json
40
+ Hashie::Mash.new(response)
41
+ end
42
+
43
+ def delete
44
+ response = EmailDirect.delete uri_for, {}
45
+ end
46
+
47
+ private
48
+
49
+ def post(action, options)
50
+ EmailDirect.post uri_for(action), options
51
+ end
52
+
53
+ def get(action = nil, options = {})
54
+ EmailDirect.get uri_for(action), options
55
+ end
56
+
57
+ def uri_for(action = nil)
58
+ action = "/#{action}" if action
59
+ "/Orders/Items/#{item_id}#{action}"
60
+ end
61
+ end
62
+ end
@@ -1,3 +1,3 @@
1
1
  module EmailDirect
2
- VERSION = "1.3.2" unless defined?(EmailDirect::VERSION)
2
+ VERSION = "1.3.3" unless defined?(EmailDirect::VERSION)
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emaildirect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-16 00:00:00.000000000 Z
12
+ date: 2012-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &70187516880860 !ruby/object:Gem::Requirement
16
+ requirement: &70182161522640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70187516880860
24
+ version_requirements: *70182161522640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hashie
27
- requirement: &70187517068280 !ruby/object:Gem::Requirement
27
+ requirement: &70182161522220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70187517068280
35
+ version_requirements: *70182161522220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: httparty
38
- requirement: &70187517075340 !ruby/object:Gem::Requirement
38
+ requirement: &70182161521800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70187517075340
46
+ version_requirements: *70182161521800
47
47
  description: Implements the complete functionality of the email direct REST API.
48
48
  email:
49
49
  - rustyparts@gmail.com
@@ -70,6 +70,8 @@ files:
70
70
  - lib/emaildirect/import.rb
71
71
  - lib/emaildirect/list.rb
72
72
  - lib/emaildirect/mailer.rb
73
+ - lib/emaildirect/order.rb
74
+ - lib/emaildirect/order_item.rb
73
75
  - lib/emaildirect/publication.rb
74
76
  - lib/emaildirect/relay_send.rb
75
77
  - lib/emaildirect/relay_send/category.rb