pdm 0.0.3 → 0.0.4
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/lib/pdm/api_request.rb +1 -1
- data/lib/pdm/job.rb +32 -0
- data/lib/pdm/mail.rb +29 -3
- data/lib/pdm/version.rb +1 -1
- metadata +10 -9
data/lib/pdm/api_request.rb
CHANGED
data/lib/pdm/job.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
module Pdm
|
2
|
+
|
3
|
+
require "pdm/resource"
|
4
|
+
|
5
|
+
class Job < Pdm::Resource
|
6
|
+
|
7
|
+
attr_accessor :last_api_response, :guid, :payload
|
8
|
+
|
9
|
+
def describe(guid)
|
10
|
+
with_exceptions do
|
11
|
+
res = api_request.get(describe_uri(guid), describe_params)
|
12
|
+
process_describe(res)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def describe_uri(guid)
|
17
|
+
"/jobs/#{guid}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def describe_params
|
21
|
+
{}
|
22
|
+
end
|
23
|
+
|
24
|
+
def process_describe(res)
|
25
|
+
self.last_api_response = res = Json.decode(res)
|
26
|
+
res["job"].each do |key, value|
|
27
|
+
setter = "#{key}="
|
28
|
+
__send__(setter, value) if respond_to?(setter)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/pdm/mail.rb
CHANGED
@@ -6,7 +6,7 @@ module Pdm
|
|
6
6
|
|
7
7
|
require "pdm/attachment"
|
8
8
|
|
9
|
-
attr_accessor :guid, :mail
|
9
|
+
attr_accessor :guid, :mail, :last_api_response
|
10
10
|
|
11
11
|
def initialize(mail, options = {})
|
12
12
|
self.mail = mail
|
@@ -72,8 +72,9 @@ module Pdm
|
|
72
72
|
def create_and_send_job_params(mail)
|
73
73
|
params = basic_params(mail)
|
74
74
|
params.merge!(body_params(mail))
|
75
|
-
params.merge!(personalization_params(mail))
|
75
|
+
params.merge!(personalization_params(mail)) if mail.respond_to?(:personalization)
|
76
76
|
params.merge!(attachment_params(mail))
|
77
|
+
params.reject { |k, v| v.nil? || (v.respond_to?(:empty?) && v.empty?) }
|
77
78
|
end
|
78
79
|
|
79
80
|
def create_and_send_job(mail)
|
@@ -82,13 +83,38 @@ module Pdm
|
|
82
83
|
api_request.post(:jobs, params)
|
83
84
|
end
|
84
85
|
end
|
86
|
+
|
87
|
+
def parse_api_response(res)
|
88
|
+
self.last_api_response = res = Json.decode(res)
|
89
|
+
if singleton?(res)
|
90
|
+
parse_singleton_response(res)
|
91
|
+
else
|
92
|
+
parse_multiple_response(res)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def singleton?(res)
|
97
|
+
res.has_key?("singleton_job")
|
98
|
+
end
|
99
|
+
|
100
|
+
def parse_singleton_response(res)
|
101
|
+
root = res["singleton_job"]
|
102
|
+
root.each do |key, value|
|
103
|
+
setter = "#{key}="
|
104
|
+
__send__(setter, value) if respond_to?(setter)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def parse_multiple_response(res)
|
109
|
+
# TODO
|
110
|
+
end
|
85
111
|
|
86
112
|
def deliver
|
87
113
|
res = create_and_send_job(mail)
|
88
114
|
|
89
115
|
case res.code
|
90
116
|
when 200
|
91
|
-
|
117
|
+
parse_api_response(res)
|
92
118
|
end
|
93
119
|
|
94
120
|
return res
|
data/lib/pdm/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- PipeDevMail
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-03-08 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -29,8 +29,8 @@ dependencies:
|
|
29
29
|
version: "0"
|
30
30
|
prerelease: false
|
31
31
|
requirement: *id001
|
32
|
-
type: :development
|
33
32
|
name: rake
|
33
|
+
type: :development
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
36
|
none: false
|
@@ -43,8 +43,8 @@ dependencies:
|
|
43
43
|
version: "0"
|
44
44
|
prerelease: false
|
45
45
|
requirement: *id002
|
46
|
-
type: :runtime
|
47
46
|
name: mail
|
47
|
+
type: :runtime
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
@@ -57,8 +57,8 @@ dependencies:
|
|
57
57
|
version: "0"
|
58
58
|
prerelease: false
|
59
59
|
requirement: *id003
|
60
|
-
type: :runtime
|
61
60
|
name: yajl-ruby
|
61
|
+
type: :runtime
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
@@ -71,8 +71,8 @@ dependencies:
|
|
71
71
|
version: "0"
|
72
72
|
prerelease: false
|
73
73
|
requirement: *id004
|
74
|
-
type: :runtime
|
75
74
|
name: rest-client
|
75
|
+
type: :runtime
|
76
76
|
description: Wrapper around the PipeDevMail.com API
|
77
77
|
email:
|
78
78
|
- support@pipedevmail.com
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- lib/pdm/error.rb
|
93
93
|
- lib/pdm/ext/mail/message.rb
|
94
94
|
- lib/pdm/history.rb
|
95
|
+
- lib/pdm/job.rb
|
95
96
|
- lib/pdm/json.rb
|
96
97
|
- lib/pdm/mail.rb
|
97
98
|
- lib/pdm/resource.rb
|
@@ -127,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
128
|
requirements: []
|
128
129
|
|
129
130
|
rubyforge_project:
|
130
|
-
rubygems_version: 1.8.
|
131
|
+
rubygems_version: 1.8.17
|
131
132
|
signing_key:
|
132
133
|
specification_version: 3
|
133
134
|
summary: Interact with the PDM API
|