emaildirect 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
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