reelagram-mail 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -1
- data/lib/reelagram/mail/parsers/shipping_parser.rb +41 -23
- data/lib/reelagram/mail/processors/shipping_processor.rb +3 -1
- data/lib/reelagram/version.rb +1 -1
- data/reelagram-mail.gemspec +1 -0
- data/test/fixtures/email_body.txt +1 -310
- data/test/parsers/shipping_parser_test.rb +11 -3
- data/test/processors/shipping_processor_test.rb +3 -3
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc3c7f71f3351bacf6db9d32715e2ef5fb7734a5
|
4
|
+
data.tar.gz: 07a203b5394d26605fb15b354adfff7336fe2b20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5319d23291936eb7d1dc10d543fc81fa4fc9b2af2c061f5eb6f402711ee4e89b01d3390613a09b0ce5895b48976827b6ff3b750c6a123b932963e2dcc38ce98
|
7
|
+
data.tar.gz: ce93cda5b00755413b2c80c99611561bfa382858b4a7e93bf34ec4a1cd1e52a8c446a131dad128e67c7c1e8f7a6a054e7444539ee9b08a88b29837bce8eaebb8
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
reelagram-mail (0.0.
|
4
|
+
reelagram-mail (0.0.5)
|
5
|
+
nokogiri (= 1.6.2.1)
|
5
6
|
ruby-gmail (= 0.3.1)
|
6
7
|
|
7
8
|
GEM
|
@@ -12,6 +13,9 @@ GEM
|
|
12
13
|
mime-types (>= 1.16, < 3)
|
13
14
|
mime (0.4.2)
|
14
15
|
mime-types (2.3)
|
16
|
+
mini_portile (0.6.0)
|
17
|
+
nokogiri (1.6.2.1)
|
18
|
+
mini_portile (= 0.6.0)
|
15
19
|
rake (0.9.6)
|
16
20
|
ruby-gmail (0.3.1)
|
17
21
|
mail (>= 2.2.1)
|
@@ -1,50 +1,68 @@
|
|
1
|
+
require "nokogiri"
|
2
|
+
|
1
3
|
module Reelagram
|
2
4
|
module Mail
|
3
5
|
module Parsers
|
4
6
|
class ShippingParser
|
5
|
-
attr_reader :
|
7
|
+
attr_reader :doc
|
6
8
|
|
7
9
|
def run(string)
|
8
|
-
@
|
10
|
+
@doc = Nokogiri::HTML(string)
|
9
11
|
self
|
10
12
|
end
|
11
13
|
|
12
|
-
def order_number
|
13
|
-
string.scan(/(?<=Purchase Order Number: ).*/).first
|
14
|
-
end
|
15
|
-
|
16
14
|
def carrier
|
17
|
-
|
15
|
+
if shipping_info_row
|
16
|
+
@row.children[1].text
|
17
|
+
else
|
18
|
+
"Unavailable"
|
19
|
+
end
|
18
20
|
end
|
19
21
|
|
20
22
|
def tracking_number
|
21
|
-
|
23
|
+
if shipping_info_row
|
24
|
+
@row.children[3].css("a").text
|
25
|
+
else
|
26
|
+
"Unavailable"
|
27
|
+
end
|
22
28
|
end
|
23
29
|
|
24
30
|
def tracking_link
|
25
|
-
|
26
|
-
|
27
|
-
link = tracking_block.first.
|
28
|
-
split("<").
|
29
|
-
last
|
30
|
-
"#{link}="
|
31
|
+
if shipping_info_row
|
32
|
+
@row.children[3].css("a").attr("href").value
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
36
|
+
def order_number
|
37
|
+
table = doc.css("table")[2]
|
38
|
+
if table
|
39
|
+
table.css("tr")
|
40
|
+
.children.css("td")
|
41
|
+
.children
|
42
|
+
.text
|
43
|
+
.gsub(/\\n+/, " ")
|
44
|
+
.scan(/\w*/)
|
45
|
+
.reject(&:empty?)
|
46
|
+
.last
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def reset!
|
51
|
+
@shipping_info_table, @row = nil, nil
|
52
|
+
end
|
53
|
+
|
34
54
|
private
|
35
55
|
|
36
|
-
def
|
37
|
-
|
38
|
-
|
56
|
+
def shipping_info_table
|
57
|
+
@shipping_info_table ||= doc.css("table")[-2]
|
58
|
+
end
|
39
59
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
split(" ")
|
44
|
-
else
|
45
|
-
["Unavailable", "Unavailable"]
|
60
|
+
def shipping_info_row
|
61
|
+
if shipping_info_table
|
62
|
+
@row ||= @shipping_info_table.css("tr")[-1]
|
46
63
|
end
|
47
64
|
end
|
65
|
+
|
48
66
|
end
|
49
67
|
end
|
50
68
|
end
|
data/lib/reelagram/version.rb
CHANGED
data/reelagram-mail.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "ruby-gmail", "0.3.1"
|
22
|
+
spec.add_runtime_dependency "nokogiri", "1.6.2.1"
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
25
|
spec.add_development_dependency "rake", "~> 0"
|
@@ -1,310 +1 @@
|
|
1
|
-
--001a11c0ed789583e404fe2af1ad
|
2
|
-
Content-Type: text/plain; charset=UTF-8
|
3
|
-
|
4
|
-
[image: Image3D] <http://www.image3d.com/store/index.php/> Hello, Sait
|
5
|
-
Mesutcan Ilhaner
|
6
|
-
|
7
|
-
|
8
|
-
We are happy to say that your order is complete and has left our facility!
|
9
|
-
You can check the status of your shipment by clicking the tracking number
|
10
|
-
below.
|
11
|
-
Please know that tracking numbers can take up to 24 hours to be updated.
|
12
|
-
|
13
|
-
Be sure to sign up for our E-Newsltter <http://bit.ly/I3Demails> to get the
|
14
|
-
latest deals and info, you even get a coupon just for subscribing! Then,
|
15
|
-
follow the fun on Facebook <https://www.facebook.com/USA.Image3D>, Twitter
|
16
|
-
<https://twitter.com/Image3Dusa>, YouTube
|
17
|
-
<http://www.youtube.com/image3dusa>, and Pinterest
|
18
|
-
<http://pinterest.com/image3d/>.
|
19
|
-
|
20
|
-
|
21
|
-
If you have any questions, email us at Celebrate@image3d.com or give us a
|
22
|
-
ring at 503-632-2470.
|
23
|
-
|
24
|
-
Your Order #27780000265 (placed on July 5, 2014 9:49:00 PM PDT) Billing
|
25
|
-
Information: Payment Method: Sait Mesutcan Ilhaner
|
26
|
-
2400 W. Empire Ave Ste 300
|
27
|
-
Burbank, CA, 91504
|
28
|
-
|
29
|
-
T: 510-289-9049
|
30
|
-
Purchase Order
|
31
|
-
|
32
|
-
Purchase Order Number: 7780000265
|
33
|
-
Shipping Information: Shipping Method: Sait Mesutcan Ilhaner
|
34
|
-
2400 W. Empire Ave Ste 300
|
35
|
-
Burbank, CA, 91504
|
36
|
-
|
37
|
-
T: 510-289-9049 Shipped By Tracking Number United States Postal
|
38
|
-
Service 92748999982943513015002409
|
39
|
-
<http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=92748999982943513015002409&track.x=Track%20target=>
|
40
|
-
|
41
|
-
Please allow 24 hours for your tracking number to update
|
42
|
-
Item Sku Qty Subtotal *Reel & Viewer Set* *Reel ID* *Viewer Color* Black
|
43
|
-
VIEWER-4510 1 $29.95 Subtotal $29.95 Shipping & Handling $7.50 *Grand
|
44
|
-
Total* *$37.45*
|
45
|
-
|
46
|
-
Thank you!*Image3D*
|
47
|
-
|
48
|
-
--001a11c0ed789583e404fe2af1ad
|
49
|
-
Content-Type: text/html; charset=UTF-8
|
50
|
-
Content-Transfer-Encoding: quoted-printable
|
51
|
-
|
52
|
-
<div dir=3D"ltr"><div class=3D"gmail_quote"><br>
|
53
|
-
<div style=3D"background:#f6f6f6;font-family:Verdana,Arial,Helvetica,sans-s=
|
54
|
-
erif;font-size:12px;margin:0;padding:0">
|
55
|
-
<div style=3D"background:#f6f6f6;font-family:Verdana,Arial,Helvetica,sans-s=
|
56
|
-
erif;font-size:12px;margin:0;padding:0">
|
57
|
-
<table cellspacing=3D"0" cellpadding=3D"0" border=3D"0" width=3D"100%">
|
58
|
-
<tbody><tr>
|
59
|
-
<td align=3D"center" valign=3D"top" style=3D"padding:20px 0 20px 0">
|
60
|
-
<table bgcolor=3D"#FFFFFF" cellspacing=3D"0" cellpadding=3D"10" bor=
|
61
|
-
der=3D"0" width=3D"650" style=3D"border:1px solid #e0e0e0">
|
62
|
-
=20
|
63
|
-
<tbody><tr>
|
64
|
-
<td valign=3D"top"><a href=3D"http://www.image3d.com/store/=
|
65
|
-
index.php/" target=3D"_blank"><img src=3D"https://www.image3d.com/store/med=
|
66
|
-
ia/email/logo/default/logosmall1.jpg" alt=3D"Image3D" style=3D"margin-botto=
|
67
|
-
m:10px" border=3D"0"></a></td>
|
68
|
-
|
69
|
-
</tr>
|
70
|
-
=20
|
71
|
-
<tr>
|
72
|
-
<td valign=3D"top">
|
73
|
-
<h1 style=3D"font-size:22px;font-weight:normal;line-hei=
|
74
|
-
ght:22px;margin:0 0 11px 0">Hello, Sait Mesutcan Ilhaner</h1>
|
75
|
-
<p style=3D"font-size:12px;line-height:16px;margin:0">
|
76
|
-
<br>
|
77
|
-
We are happy to say that your order is complete and has left our facility!=
|
78
|
-
=20
|
79
|
-
<br>You can check the status of your shipment by clicking the tracking numb=
|
80
|
-
er below.=20
|
81
|
-
<br>Please know that tracking numbers can take up to 24 hours to be updated=
|
82
|
-
.=20
|
83
|
-
=20
|
84
|
-
<br><br> </p><p style=3D"font-size:12px;line-height:16px;mar=
|
85
|
-
gin:0">Be sure to sign up for our <a href=3D"http://bit.ly/I3Demails" targe=
|
86
|
-
t=3D"_blank">E-Newsltter</a> to get the latest deals and info, you even get=
|
87
|
-
a coupon just for subscribing! Then, follow the fun on <a href=3D"https://=
|
88
|
-
www.facebook.com/USA.Image3D" title=3D"Image3D on Facebook" target=3D"_blan=
|
89
|
-
k">Facebook</a>, <a href=3D"https://twitter.com/Image3Dusa" title=3D"Image3=
|
90
|
-
D on Twitter" target=3D"_blank">Twitter</a>, <a href=3D"http://www.youtube.=
|
91
|
-
com/image3dusa" title=3D"Image3D on YouTube" target=3D"_blank">YouTube</a>,=
|
92
|
-
and <a href=3D"http://pinterest.com/image3d/" title=3D"Image3D on Pinteres=
|
93
|
-
t" target=3D"_blank">Pinterest</a>. </p>
|
94
|
-
|
95
|
-
|
96
|
-
<br><br> If you have any questions, email us at <a href=3D"mailto:Celebra=
|
97
|
-
te@image3d.com" style=3D"color:#1e7ec8" target=3D"_blank">Celebrate@image3d=
|
98
|
-
.com</a> or give us a ring at <span><a href=3D"tel:503-632-2470" value=3D"+=
|
99
|
-
15036322470" target=3D"_blank">503-632-2470</a></span>.
|
100
|
-
<p></p>
|
101
|
-
</td></tr>
|
102
|
-
<tr>
|
103
|
-
<td>
|
104
|
-
<h2 style=3D"font-size:18px;font-weight:normal;margin:0=
|
105
|
-
">Your Order #27780000265 <small>(placed on July 5, 2014 9:49:00 PM PDT)</s=
|
106
|
-
mall></h2>
|
107
|
-
</td>
|
108
|
-
</tr>
|
109
|
-
<tr>
|
110
|
-
<td>
|
111
|
-
<table cellspacing=3D"0" cellpadding=3D"0" border=3D"0"=
|
112
|
-
width=3D"650">
|
113
|
-
<thead>
|
114
|
-
<tr>
|
115
|
-
<th align=3D"left" width=3D"325" bgcolor=3D"#EA=
|
116
|
-
EAEA" style=3D"font-size:13px;padding:5px 9px 6px 9px;line-height:1em">Bill=
|
117
|
-
ing Information:</th>
|
118
|
-
<th width=3D"10"></th>
|
119
|
-
<th align=3D"left" width=3D"325" bgcolor=3D"#EA=
|
120
|
-
EAEA" style=3D"font-size:13px;padding:5px 9px 6px 9px;line-height:1em">Paym=
|
121
|
-
ent Method:</th>
|
122
|
-
</tr>
|
123
|
-
</thead>
|
124
|
-
<tbody>
|
125
|
-
<tr>
|
126
|
-
<td valign=3D"top" style=3D"font-size:12px;padd=
|
127
|
-
ing:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bottom:1px solid #=
|
128
|
-
eaeaea;border-right:1px solid #eaeaea">
|
129
|
-
Sait Mesutcan Ilhaner<br>
|
130
|
-
|
131
|
-
2400 W. Empire Ave Ste 300<br>
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
Burbank, CA, 91504<br>
|
136
|
-
<br>
|
137
|
-
T: <a href=3D"tel:510-289-9049" value=3D"+15102899049" target=3D"_blank">51=
|
138
|
-
0-289-9049</a>
|
139
|
-
|
140
|
-
|
141
|
-
</td>
|
142
|
-
<td>=C2=A0</td>
|
143
|
-
<td valign=3D"top" style=3D"font-size:12px;padd=
|
144
|
-
ing:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bottom:1px solid #=
|
145
|
-
eaeaea;border-right:1px solid #eaeaea">
|
146
|
-
<br>Purchase Order <br><br>Purchase Order Nu=
|
147
|
-
mber: 7780000265
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
</td>
|
154
|
-
</tr>
|
155
|
-
</tbody>
|
156
|
-
</table>
|
157
|
-
<br>
|
158
|
-
=20
|
159
|
-
<table cellspacing=3D"0" cellpadding=3D"0" border=3D"0"=
|
160
|
-
width=3D"650">
|
161
|
-
<thead>
|
162
|
-
<tr>
|
163
|
-
<th align=3D"left" width=3D"325" bgcolor=3D"#EA=
|
164
|
-
EAEA" style=3D"font-size:13px;padding:5px 9px 6px 9px;line-height:1em">Ship=
|
165
|
-
ping Information:</th>
|
166
|
-
<th width=3D"10"></th>
|
167
|
-
<th align=3D"left" width=3D"325" bgcolor=3D"#EA=
|
168
|
-
EAEA" style=3D"font-size:13px;padding:5px 9px 6px 9px;line-height:1em">Ship=
|
169
|
-
ping Method:</th>
|
170
|
-
</tr>
|
171
|
-
</thead>
|
172
|
-
<tbody>
|
173
|
-
<tr>
|
174
|
-
<td valign=3D"top" width=3D"50%" style=3D"font-=
|
175
|
-
size:12px;padding:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bott=
|
176
|
-
om:1px solid #eaeaea;border-right:1px solid #eaeaea">
|
177
|
-
Sait Mesutcan Ilhaner<br>
|
178
|
-
|
179
|
-
2400 W. Empire Ave Ste 300<br>
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
Burbank, CA, 91504<br>
|
184
|
-
<br>
|
185
|
-
T: <a href=3D"tel:510-289-9049" value=3D"+15102899049" target=3D"_blank">51=
|
186
|
-
0-289-9049</a>
|
187
|
-
|
188
|
-
|
189
|
-
=C2=A0
|
190
|
-
</td>
|
191
|
-
<td>=C2=A0</td>
|
192
|
-
<td valign=3D"top" width=3D"50%" style=3D"font-=
|
193
|
-
size:12px;padding:7px 9px 9px 9px;border-left:1px solid #eaeaea;border-bott=
|
194
|
-
om:1px solid #eaeaea;border-right:1px solid #eaeaea">
|
195
|
-
<table cellspacing=3D"0" cellpadding=
|
196
|
-
=3D"0" border=3D"0" width=3D"300" style=3D"border:1px solid #eaeaea">
|
197
|
-
<thead>
|
198
|
-
<tr>
|
199
|
-
<th align=3D"left" bgcolor=3D"#EAEAEA" style=3D"font-size:13px;=
|
200
|
-
padding:3px 9px">Shipped By</th>
|
201
|
-
<th align=3D"center" bgcolor=3D"#EAEAEA" style=3D"font-size:13p=
|
202
|
-
x;padding:3px 9px">Tracking Number</th>
|
203
|
-
</tr>
|
204
|
-
</thead>
|
205
|
-
<tbody>
|
206
|
-
<tr bgcolor=3D"#F6F6F6">
|
207
|
-
<td align=3D"left" valign=3D"top" style=3D"padding:3px 9px">Uni=
|
208
|
-
ted States Postal Service</td>
|
209
|
-
<td align=3D"center" valign=3D"top" style=3D"padding:3px 9px"><=
|
210
|
-
a href=3D"http://wwwapps.ups.com/WebTracking/track?HTMLVersion=3D5.0&lo=
|
211
|
-
c=3Den_US&Requester=3DUPSHome&WBPM_lid=3Dhomepage%2Fct1.html_pnl_tr=
|
212
|
-
k&trackNums=3D92748999982943513015002409&track.x=3DTrack%20target=
|
213
|
-
=3D" target=3D"_blank">92748999982943513015002409</a><br>
|
214
|
-
<br>Please allow 24 hours for your tracking number to update</td>
|
215
|
-
</tr>
|
216
|
-
</tbody>
|
217
|
-
</table>
|
218
|
-
|
219
|
-
|
220
|
-
</td>
|
221
|
-
</tr>
|
222
|
-
</tbody>
|
223
|
-
</table>
|
224
|
-
<br>
|
225
|
-
=20
|
226
|
-
<table cellspacing=3D"0" cellpadding=3D"0" border=3D"0"=
|
227
|
-
width=3D"650" style=3D"border:1px solid #eaeaea">
|
228
|
-
<thead>
|
229
|
-
<tr>
|
230
|
-
<th align=3D"left" bgcolor=3D"#EAEAEA" style=3D"font-size:13px;=
|
231
|
-
padding:3px 9px">Item</th>
|
232
|
-
<th align=3D"left" bgcolor=3D"#EAEAEA" style=3D"font-size:13px;=
|
233
|
-
padding:3px 9px">Sku</th>
|
234
|
-
<th align=3D"center" bgcolor=3D"#EAEAEA" style=3D"font-size:13p=
|
235
|
-
x;padding:3px 9px">Qty</th>
|
236
|
-
<th align=3D"right" bgcolor=3D"#EAEAEA" style=3D"font-size:13px=
|
237
|
-
;padding:3px 9px">Subtotal</th>
|
238
|
-
</tr>
|
239
|
-
</thead>
|
240
|
-
|
241
|
-
<tbody bgcolor=3D"#F6F6F6">
|
242
|
-
<tr>
|
243
|
-
<td align=3D"left" valign=3D"top" style=3D"font-size:11px;padding:3px 9=
|
244
|
-
px;border-bottom:1px dotted #cccccc">
|
245
|
-
<strong style=3D"font-size:11px">Reel & Viewer Set</strong>
|
246
|
-
<dl style=3D"margin:0;padding:0">
|
247
|
-
<dt><strong><em>Reel ID</em></strong></dt>
|
248
|
-
<dd style=3D"margin:0;padding:0 0 0 9px">
|
249
|
-
</dd>
|
250
|
-
<dt><strong><em>Viewer Color</em></strong></dt>
|
251
|
-
<dd style=3D"margin:0;padding:0 0 0 9px">
|
252
|
-
Black </dd>
|
253
|
-
</dl>
|
254
|
-
</td>
|
255
|
-
<td align=3D"left" valign=3D"top" style=3D"font-size:11px;padding:3px 9=
|
256
|
-
px;border-bottom:1px dotted #cccccc">VIEWER-4510</td>
|
257
|
-
<td align=3D"center" valign=3D"top" style=3D"font-size:11px;padding:3px=
|
258
|
-
9px;border-bottom:1px dotted #cccccc">1</td>
|
259
|
-
<td align=3D"right" valign=3D"top" style=3D"font-size:11px;padding:3px =
|
260
|
-
9px;border-bottom:1px dotted #cccccc">
|
261
|
-
<span>$29.95</span> =
|
262
|
-
=20
|
263
|
-
|
264
|
-
=20
|
265
|
-
|
266
|
-
</td>
|
267
|
-
</tr>
|
268
|
-
</tbody>
|
269
|
-
=20
|
270
|
-
<tbody>
|
271
|
-
<tr>
|
272
|
-
<td colspan=3D"3" align=3D"right" style=3D"padding:3px 9px">
|
273
|
-
Subtotal </td>
|
274
|
-
<td align=3D"right" style=3D"padding:3px 9px">
|
275
|
-
<span>$29.95</span> </td>
|
276
|
-
</tr>
|
277
|
-
<tr>
|
278
|
-
<td colspan=3D"3" align=3D"right" style=3D"padding:3px 9px">
|
279
|
-
Shipping & Handling </td>
|
280
|
-
<td align=3D"right" style=3D"padding:3px 9px">
|
281
|
-
<span>$7.50</span> </td>
|
282
|
-
</tr>
|
283
|
-
<tr>
|
284
|
-
<td colspan=3D"3" align=3D"right" style=3D"padding:3px 9px">
|
285
|
-
<strong>Grand Total</strong>
|
286
|
-
</td>
|
287
|
-
<td align=3D"right" style=3D"padding:3px 9px">
|
288
|
-
<strong><span>$37.45</span></strong>
|
289
|
-
</td>
|
290
|
-
</tr>
|
291
|
-
</tbody>
|
292
|
-
</table>
|
293
|
-
|
294
|
-
<p style=3D"font-size:12px;margin:0 0 10px 0"></p>
|
295
|
-
</td>
|
296
|
-
</tr>
|
297
|
-
<tr>
|
298
|
-
<td bgcolor=3D"#EAEAEA" align=3D"center" style=3D"backgroun=
|
299
|
-
d:#eaeaea;text-align:center"><center><p style=3D"font-size:12px;margin:0">T=
|
300
|
-
hank you!<strong>Image3D</strong></p></center></td>
|
301
|
-
</tr>
|
302
|
-
</tbody></table>
|
303
|
-
</td>
|
304
|
-
</tr>
|
305
|
-
</tbody></table>
|
306
|
-
</div>
|
307
|
-
</div>
|
308
|
-
</div><br></div>
|
309
|
-
|
310
|
-
--001a11c0ed789583e404fe2af1ad--
|
1
|
+
<style type=\"text/css\">\nbody,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; }\n</style>\n<body style=\"background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;\">\n<div style=\"background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;\">\n<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">\n<tr>\n <td align=\"center\" valign=\"top\" style=\"padding:20px 0 20px 0\">\n <table bgcolor=\"#FFFFFF\" cellspacing=\"0\" cellpadding=\"10\" border=\"0\" width=\"650\" style=\"border:1px solid #E0E0E0;\">\n <!-- [ header starts here] -->\n <tr>\n <td valign=\"top\"><a href=\"http://www.image3d.com/store/index.php/\"><img src=\"https://www.image3d.com/store/media/email/logo/default/logosmall1.jpg\" alt=\"Image3D\" style=\"margin-bottom:10px;\" border=\"0\"/></a></td>\n </tr>\n <!-- [ middle starts here] -->\n <tr>\n <td valign=\"top\">\n <h1 style=\"font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;\"\">Hello, jordanah </h1>\n <p style=\"font-size:12px; line-height:16px; margin:0;\">\n<br />\nWe are happy to say that your order is complete and has left our facility! \n<br />You can check the status of your shipment by clicking the tracking number below. \n<br />Please know that tracking numbers can take up to 24 hours to be updated. \n \n <br /><br /> <p style=\"font-size:12px; line-height:16px; margin:0;\">Be sure to sign up for our <a href=\"http://bit.ly/I3Demails\">E-Newsltter</a> to get the latest deals and info, you even get a coupon just for subscribing! Then, follow the fun on <a href=\"https://www.facebook.com/USA.Image3D\" title=\"Image3D on Facebook\">Facebook</a>, <a href=\"https://twitter.com/Image3Dusa\" title=\"Image3D on Twitter\">Twitter</a>, <a href=\"http://www.youtube.com/image3dusa\" title=\"Image3D on YouTube\">YouTube</a>, and <a href=\"http://pinterest.com/image3d/\" title=\"Image3D on Pinterest\">Pinterest</a>. </p>\n\n<br /><br /> If you have any questions, email us at <a href=\"mailto:Celebrate@image3d.com\" style=\"color:#1E7EC8;\">Celebrate@image3d.com</a> or give us a ring at <span class=\"nobr\">503-632-2470</span>.\n </p>\n </tr>\n <tr>\n <td>\n <h2 style=\"font-size:18px; font-weight:normal; margin:0;\">Your Order #27780000298 <small>(placed on July 13, 2014 7:54:00 AM PDT)</small></h2>\n </td>\n </tr>\n <tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"650\">\n <thead>\n <tr>\n <th align=\"left\" width=\"325\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:5px 9px 6px 9px; line-height:1em;\">Billing Information:</th>\n <th width=\"10\"></th>\n <th align=\"left\" width=\"325\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:5px 9px 6px 9px; line-height:1em;\">Payment Method:</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td valign=\"top\" style=\"font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;\">\n jordanah <br/>\n\n19926 NE 129th st<br />\n\n\n\nwoodinville, wa, 98077<br/>\n<br/>\nT: 4254177626\n\n\n </td>\n <td> </td>\n <td valign=\"top\" style=\"font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;\">\n <br />Purchase Order <br /><br />Purchase Order Number: 7780000298\n\n\n\n\n\n </td>\n </tr>\n </tbody>\n </table>\n <br/>\n \n <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"650\">\n <thead>\n <tr>\n <th align=\"left\" width=\"325\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:5px 9px 6px 9px; line-height:1em;\">Shipping Information:</th>\n <th width=\"10\"></th>\n <th align=\"left\" width=\"325\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:5px 9px 6px 9px; line-height:1em;\">Shipping Method:</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td valign=\"top\" width=\"50%\" style=\"font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;\">\n jordanah <br/>\n\n19926 NE 129th st<br />\n\n\n\nwoodinville, wa, 98077<br/>\n<br/>\nT: 4254177626\n\n\n \n </td>\n <td> </td>\n <td valign=\"top\" width=\"50%\" style=\"font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;\">\n <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"300\" style=\"border:1px solid #EAEAEA;\">\n <thead>\n <tr>\n <th align=\"left\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:3px 9px\">Shipped By</th>\n <th align=\"center\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:3px 9px\">Tracking Number</th>\n </tr>\n </thead>\n <tbody>\n <tr bgcolor=\"#F6F6F6\">\n <td align=\"left\" valign=\"top\" style=\"padding:3px 9px\">United States Postal Service</td>\n <td align=\"center\" valign=\"top\" style=\"padding:3px 9px\"><a href='http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=92789999982943513015003089&track.x=Track target='_blank'>92789999982943513015003089</a><br /><br />Please allow 24 hours for your tracking number to update</td>\n </tr>\n </tbody>\n</table>\n\n\n </td>\n </tr>\n </tbody>\n </table>\n <br/>\n \n <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"650\" style=\"border:1px solid #EAEAEA;\">\n <thead>\n <tr>\n <th align=\"left\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:3px 9px\">Item</th>\n <th align=\"left\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:3px 9px\">Sku</th>\n <th align=\"center\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:3px 9px\">Qty</th>\n <th align=\"right\" bgcolor=\"#EAEAEA\" style=\"font-size:13px; padding:3px 9px\">Subtotal</th>\n </tr>\n </thead>\n\n <tbody bgcolor=\"#F6F6F6\">\n <tr>\n <td align=\"left\" valign=\"top\" style=\"font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;\">\n <strong style=\"font-size:11px;\">Reels Only</strong>\n <dl style=\"margin:0; padding:0;\">\n <dt><strong><em>Reel ID</em></strong></dt>\n <dd style=\"margin:0; padding:0 0 0 9px;\">\n \t </dd>\n </dl>\n </td>\n <td align=\"left\" valign=\"top\" style=\"font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;\">REEL-4530</td>\n <td align=\"center\" valign=\"top\" style=\"font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;\">1</td>\n <td align=\"right\" valign=\"top\" style=\"font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;\">\n <span class=\"price\">$19.95</span> \n\n \n\n </td>\n</tr>\n </tbody>\n \n <tbody>\n <tr class=\"subtotal\">\n <td colspan=\"3\" align=\"right\" style=\"padding:3px 9px\">\n Subtotal </td>\n <td align=\"right\" style=\"padding:3px 9px\">\n <span class=\"price\">$19.95</span> </td>\n </tr>\n <tr class=\"shipping\">\n <td colspan=\"3\" align=\"right\" style=\"padding:3px 9px\">\n Shipping & Handling </td>\n <td align=\"right\" style=\"padding:3px 9px\">\n <span class=\"price\">$7.00</span> </td>\n </tr>\n <tr class=\"grand_total\">\n <td colspan=\"3\" align=\"right\" style=\"padding:3px 9px\">\n <strong>Grand Total</strong>\n </td>\n <td align=\"right\" style=\"padding:3px 9px\">\n <strong><span class=\"price\">$26.95</span></strong>\n </td>\n </tr>\n </tbody>\n</table>\n\n <p style=\"font-size:12px; margin:0 0 10px 0\"></p>\n </td>\n </tr>\n <tr>\n <td bgcolor=\"#EAEAEA\" align=\"center\" style=\"background:#EAEAEA; text-align:center;\"><center><p style=\"font-size:12px; margin:0;\">Thank you!<strong>Image3D</strong></p></center></td>\n </tr>\n </table>\n </td>\n</tr>\n</table>\n</div>\n</body>\n
|
@@ -9,7 +9,7 @@ class ShippingParserTest < MiniTest::Unit::TestCase
|
|
9
9
|
|
10
10
|
def test_order_number_returns_the_order_number
|
11
11
|
parsed_string = parser.run(data)
|
12
|
-
assert_equal("
|
12
|
+
assert_equal("7780000298", parsed_string.order_number)
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_carrier_returns_the_carrier
|
@@ -19,12 +19,12 @@ class ShippingParserTest < MiniTest::Unit::TestCase
|
|
19
19
|
|
20
20
|
def test_tracking_number_returns_the_tracking_number
|
21
21
|
parsed_string = parser.run(data)
|
22
|
-
assert_equal("
|
22
|
+
assert_equal("92789999982943513015003089", parsed_string.tracking_number)
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_tracking_link_returns_the_tracking_link
|
26
26
|
parsed_string = parser.run(data)
|
27
|
-
assert_equal("http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=
|
27
|
+
assert_equal("http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=92789999982943513015003089&track.x=Track target=", parsed_string.tracking_link)
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_when_there_is_no_shipping_information_link_is_unavailable
|
@@ -42,6 +42,14 @@ class ShippingParserTest < MiniTest::Unit::TestCase
|
|
42
42
|
assert_equal("Unavailable", parsed_string.tracking_number)
|
43
43
|
end
|
44
44
|
|
45
|
+
def test_reset_sets_variables_to_nil
|
46
|
+
parser.reset!
|
47
|
+
assert_nil(parser.instance_variable_get("@shipping_info_table"))
|
48
|
+
assert_nil(parser.instance_variable_get("@row"))
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
45
53
|
def parser
|
46
54
|
@parser ||= Reelagram::Mail::Parsers::ShippingParser.new
|
47
55
|
end
|
@@ -14,10 +14,10 @@ class ShippingUpdateProcessorTest < MiniTest::Unit::TestCase
|
|
14
14
|
|
15
15
|
def test_run_returns_the_parsed_data_from_the_email
|
16
16
|
parsed_data = {
|
17
|
-
order_id: "
|
17
|
+
order_id: "7780000298",
|
18
18
|
carrier: "United States Postal Service",
|
19
|
-
tracking_number: "
|
20
|
-
tracking_link:
|
19
|
+
tracking_number: "92789999982943513015003089",
|
20
|
+
tracking_link: "http://wwwapps.ups.com/WebTracking/track?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&WBPM_lid=homepage%2Fct1.html_pnl_trk&trackNums=92789999982943513015003089&track.x=Track target="
|
21
21
|
}
|
22
22
|
assert_equal([parsed_data], processor.run)
|
23
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reelagram-mail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Wheeler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-gmail
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.3.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.6.2.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.2.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|