postful 0.2.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/classes/Postful/Base.html +85 -28
- data/doc/classes/Postful/Base.src/M000004.html +8 -8
- data/doc/classes/Postful/Base.src/M000005.html +8 -6
- data/doc/classes/Postful/Base.src/{M000002.html → M000007.html} +1 -1
- data/doc/classes/Postful/Base.src/{M000003.html → M000008.html} +1 -1
- data/doc/classes/Postful/Base.src/M000009.html +22 -0
- data/doc/classes/Postful/Base.src/M000010.html +20 -0
- data/doc/classes/Postful/Base.src/{M000006.html → M000011.html} +1 -1
- data/doc/classes/Postful/Base.src/M000012.html +20 -0
- data/doc/classes/Postful/Document.html +176 -0
- data/doc/classes/Postful/{Base.src/M000001.html → Document.src/M000026.html} +2 -4
- data/doc/classes/Postful/Document.src/M000027.html +18 -0
- data/doc/classes/Postful/Document.src/M000028.html +18 -0
- data/doc/classes/Postful/Letter.html +168 -60
- data/doc/classes/Postful/Letter.src/{M000018.html → M000041.html} +2 -2
- data/doc/classes/Postful/Letter.src/{M000019.html → M000042.html} +2 -2
- data/doc/classes/Postful/Letter.src/M000043.html +18 -0
- data/doc/classes/Postful/Letter.src/{M000020.html → M000044.html} +2 -2
- data/doc/classes/Postful/Letter.src/{M000021.html → M000045.html} +2 -2
- data/doc/classes/Postful/Letter.src/M000046.html +18 -0
- data/doc/classes/Postful/Letter.src/{M000022.html → M000047.html} +2 -2
- data/doc/classes/Postful/Letter.src/{M000023.html → M000048.html} +2 -2
- data/doc/classes/Postful/Letter.src/M000049.html +18 -0
- data/doc/classes/Postful/Letter.src/{M000024.html → M000050.html} +2 -2
- data/doc/classes/Postful/Letter.src/{M000025.html → M000051.html} +2 -2
- data/doc/classes/Postful/Letter.src/M000052.html +18 -0
- data/doc/classes/Postful/Letter.src/{M000026.html → M000053.html} +2 -2
- data/doc/classes/Postful/Letter.src/{M000027.html → M000054.html} +2 -2
- data/doc/classes/Postful/Letter.src/M000055.html +18 -0
- data/doc/classes/Postful/Letter.src/{M000028.html → M000056.html} +2 -2
- data/doc/classes/Postful/Letter.src/{M000029.html → M000057.html} +2 -2
- data/doc/classes/Postful/Letter.src/M000058.html +18 -0
- data/doc/classes/Postful/Order.html +20 -20
- data/doc/classes/Postful/Order.src/{M000007.html → M000013.html} +0 -0
- data/doc/classes/Postful/Order.src/{M000008.html → M000014.html} +0 -0
- data/doc/classes/Postful/Order.src/{M000009.html → M000015.html} +0 -0
- data/doc/classes/Postful/Order.src/{M000010.html → M000016.html} +0 -0
- data/doc/classes/Postful/Postcard.html +15 -15
- data/doc/classes/Postful/Postcard.src/{M000011.html → M000023.html} +0 -0
- data/doc/classes/Postful/Postcard.src/{M000012.html → M000024.html} +0 -0
- data/doc/classes/Postful/Postcard.src/{M000013.html → M000025.html} +0 -0
- data/doc/classes/Postful/Section.html +221 -0
- data/doc/classes/Postful/Section.src/M000017.html +21 -0
- data/doc/classes/Postful/Section.src/M000018.html +18 -0
- data/doc/classes/Postful/Section.src/M000019.html +20 -0
- data/doc/classes/Postful/Section.src/M000020.html +18 -0
- data/doc/classes/Postful/Section.src/M000021.html +25 -0
- data/doc/classes/Postful/Section.src/M000022.html +22 -0
- data/doc/classes/Postful/Service.html +20 -20
- data/doc/classes/Postful/Service.src/{M000014.html → M000037.html} +0 -0
- data/doc/classes/Postful/Service.src/{M000015.html → M000038.html} +0 -0
- data/doc/classes/Postful/Service.src/{M000016.html → M000039.html} +0 -0
- data/doc/classes/Postful/Service.src/{M000017.html → M000040.html} +0 -0
- data/doc/classes/Postful/SimpleDocument.html +197 -0
- data/doc/classes/Postful/SimpleDocument.src/M000001.html +22 -0
- data/doc/classes/Postful/SimpleDocument.src/M000002.html +18 -0
- data/doc/classes/Postful/SimpleDocument.src/M000003.html +29 -0
- data/doc/classes/Postful/TemplateDocument.html +274 -0
- data/doc/classes/Postful/TemplateDocument.src/M000029.html +36 -0
- data/doc/classes/Postful/TemplateDocument.src/M000030.html +22 -0
- data/doc/classes/Postful/TemplateDocument.src/M000031.html +18 -0
- data/doc/classes/Postful/TemplateDocument.src/M000033.html +21 -0
- data/doc/classes/Postful/TemplateDocument.src/M000035.html +18 -0
- data/doc/classes/Postful/TemplateDocument.src/M000036.html +20 -0
- data/doc/created.rid +1 -1
- data/doc/files/MIT-LICENSE.html +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/postful/base_rb.html +1 -1
- data/doc/files/lib/postful/document_rb.html +101 -0
- data/doc/files/lib/postful/instance_exec_module_rb.html +1 -1
- data/doc/files/lib/postful/letter_rb.html +1 -1
- data/doc/files/lib/postful/order_rb.html +1 -1
- data/doc/files/lib/postful/postcard_rb.html +1 -1
- data/doc/files/lib/postful/section_rb.html +101 -0
- data/doc/files/lib/postful/service_rb.html +1 -1
- data/doc/files/lib/postful/simple_document_rb.html +101 -0
- data/doc/files/lib/postful/template_document_rb.html +101 -0
- data/doc/files/lib/postful/util_rb.html +1 -1
- data/doc/files/lib/postful_rb.html +1 -1
- data/doc/fr_class_index.html +4 -0
- data/doc/fr_file_index.html +4 -0
- data/doc/fr_method_index.html +58 -29
- data/lib/postful/base.rb +20 -0
- data/lib/postful/document.rb +18 -0
- data/lib/postful/letter.rb +55 -48
- data/lib/postful/postcard.rb +4 -0
- data/lib/postful/section.rb +46 -0
- data/lib/postful/simple_document.rb +38 -0
- data/lib/postful/template_document.rb +66 -0
- data/lib/postful/util.rb +70 -21
- data/test/test_base.rb +71 -0
- data/test/test_letter.rb +6 -0
- data/test/test_postcard.rb +13 -1
- metadata +71 -29
data/doc/fr_class_index.html
CHANGED
@@ -22,12 +22,16 @@
|
|
22
22
|
<div id="index-entries">
|
23
23
|
<a href="classes/Postful/AuthorizationException.html">Postful::AuthorizationException</a><br />
|
24
24
|
<a href="classes/Postful/Base.html">Postful::Base</a><br />
|
25
|
+
<a href="classes/Postful/Document.html">Postful::Document</a><br />
|
25
26
|
<a href="classes/Postful/InternalServerError.html">Postful::InternalServerError</a><br />
|
26
27
|
<a href="classes/Postful/Letter.html">Postful::Letter</a><br />
|
27
28
|
<a href="classes/Postful/NotFoundException.html">Postful::NotFoundException</a><br />
|
28
29
|
<a href="classes/Postful/Order.html">Postful::Order</a><br />
|
29
30
|
<a href="classes/Postful/Postcard.html">Postful::Postcard</a><br />
|
31
|
+
<a href="classes/Postful/Section.html">Postful::Section</a><br />
|
30
32
|
<a href="classes/Postful/Service.html">Postful::Service</a><br />
|
33
|
+
<a href="classes/Postful/SimpleDocument.html">Postful::SimpleDocument</a><br />
|
34
|
+
<a href="classes/Postful/TemplateDocument.html">Postful::TemplateDocument</a><br />
|
31
35
|
<a href="classes/Postful/UnknownResponseException.html">Postful::UnknownResponseException</a><br />
|
32
36
|
<a href="classes/Postful/ValidationException.html">Postful::ValidationException</a><br />
|
33
37
|
</div>
|
data/doc/fr_file_index.html
CHANGED
@@ -24,11 +24,15 @@
|
|
24
24
|
<a href="files/README.html">README</a><br />
|
25
25
|
<a href="files/lib/postful_rb.html">lib/postful.rb</a><br />
|
26
26
|
<a href="files/lib/postful/base_rb.html">lib/postful/base.rb</a><br />
|
27
|
+
<a href="files/lib/postful/document_rb.html">lib/postful/document.rb</a><br />
|
27
28
|
<a href="files/lib/postful/instance_exec_module_rb.html">lib/postful/instance_exec_module.rb</a><br />
|
28
29
|
<a href="files/lib/postful/letter_rb.html">lib/postful/letter.rb</a><br />
|
29
30
|
<a href="files/lib/postful/order_rb.html">lib/postful/order.rb</a><br />
|
30
31
|
<a href="files/lib/postful/postcard_rb.html">lib/postful/postcard.rb</a><br />
|
32
|
+
<a href="files/lib/postful/section_rb.html">lib/postful/section.rb</a><br />
|
31
33
|
<a href="files/lib/postful/service_rb.html">lib/postful/service.rb</a><br />
|
34
|
+
<a href="files/lib/postful/simple_document_rb.html">lib/postful/simple_document.rb</a><br />
|
35
|
+
<a href="files/lib/postful/template_document_rb.html">lib/postful/template_document.rb</a><br />
|
32
36
|
<a href="files/lib/postful/util_rb.html">lib/postful/util.rb</a><br />
|
33
37
|
</div>
|
34
38
|
</div>
|
data/doc/fr_method_index.html
CHANGED
@@ -20,35 +20,64 @@
|
|
20
20
|
<div id="index">
|
21
21
|
<h1 class="section-bar">Methods</h1>
|
22
22
|
<div id="index-entries">
|
23
|
-
<a href="classes/Postful/Base.html#
|
24
|
-
<a href="classes/Postful/Postcard.html#
|
25
|
-
<a href="classes/Postful/
|
26
|
-
<a href="classes/Postful/Letter.html#
|
27
|
-
<a href="classes/Postful/
|
28
|
-
<a href="classes/Postful/Letter.html#
|
29
|
-
<a href="classes/Postful/
|
30
|
-
<a href="classes/Postful/Letter.html#
|
31
|
-
<a href="classes/Postful/Letter.html#
|
32
|
-
<a href="classes/Postful/Letter.html#
|
33
|
-
<a href="classes/Postful/Letter.html#
|
34
|
-
<a href="classes/Postful/Letter.html#
|
35
|
-
<a href="classes/Postful/Letter.html#
|
36
|
-
<a href="classes/Postful/
|
37
|
-
<a href="classes/Postful/Letter.html#
|
38
|
-
<a href="classes/Postful/
|
39
|
-
<a href="classes/Postful/
|
40
|
-
<a href="classes/Postful/
|
41
|
-
<a href="classes/Postful/
|
42
|
-
<a href="classes/Postful/
|
43
|
-
<a href="classes/Postful/
|
44
|
-
<a href="classes/Postful/
|
45
|
-
<a href="classes/Postful/
|
46
|
-
<a href="classes/Postful/
|
47
|
-
<a href="classes/Postful/
|
48
|
-
<a href="classes/Postful/
|
49
|
-
<a href="classes/Postful/
|
50
|
-
<a href="classes/Postful/
|
51
|
-
<a href="classes/Postful/
|
23
|
+
<a href="classes/Postful/Base.html#M000007">add_address (Postful::Base)</a><br />
|
24
|
+
<a href="classes/Postful/Postcard.html#M000025">add_border (Postful::Postcard)</a><br />
|
25
|
+
<a href="classes/Postful/Base.html#M000005">add_document (Postful::Base)</a><br />
|
26
|
+
<a href="classes/Postful/Letter.html#M000041">add_html_document (Postful::Letter)</a><br />
|
27
|
+
<a href="classes/Postful/Letter.html#M000042">add_html_document_from_file (Postful::Letter)</a><br />
|
28
|
+
<a href="classes/Postful/Letter.html#M000043">add_html_document_from_url (Postful::Letter)</a><br />
|
29
|
+
<a href="classes/Postful/Base.html#M000008">add_international_address (Postful::Base)</a><br />
|
30
|
+
<a href="classes/Postful/Letter.html#M000050">add_open_office_document (Postful::Letter)</a><br />
|
31
|
+
<a href="classes/Postful/Letter.html#M000051">add_open_office_document_from_file (Postful::Letter)</a><br />
|
32
|
+
<a href="classes/Postful/Letter.html#M000052">add_open_office_document_from_url (Postful::Letter)</a><br />
|
33
|
+
<a href="classes/Postful/Letter.html#M000056">add_pdf_document (Postful::Letter)</a><br />
|
34
|
+
<a href="classes/Postful/Letter.html#M000057">add_pdf_document_from_file (Postful::Letter)</a><br />
|
35
|
+
<a href="classes/Postful/Letter.html#M000058">add_pdf_document_from_url (Postful::Letter)</a><br />
|
36
|
+
<a href="classes/Postful/TemplateDocument.html#M000031">add_property (Postful::TemplateDocument)</a><br />
|
37
|
+
<a href="classes/Postful/Letter.html#M000047">add_rtf_document (Postful::Letter)</a><br />
|
38
|
+
<a href="classes/Postful/Letter.html#M000048">add_rtf_document_from_file (Postful::Letter)</a><br />
|
39
|
+
<a href="classes/Postful/Letter.html#M000049">add_rtf_document_from_url (Postful::Letter)</a><br />
|
40
|
+
<a href="classes/Postful/TemplateDocument.html#M000033">add_section (Postful::TemplateDocument)</a><br />
|
41
|
+
<a href="classes/Postful/Letter.html#M000053">add_text_document (Postful::Letter)</a><br />
|
42
|
+
<a href="classes/Postful/Letter.html#M000054">add_text_document_from_file (Postful::Letter)</a><br />
|
43
|
+
<a href="classes/Postful/Letter.html#M000055">add_text_document_from_url (Postful::Letter)</a><br />
|
44
|
+
<a href="classes/Postful/Letter.html#M000044">add_word_document (Postful::Letter)</a><br />
|
45
|
+
<a href="classes/Postful/Letter.html#M000045">add_word_document_from_file (Postful::Letter)</a><br />
|
46
|
+
<a href="classes/Postful/Letter.html#M000046">add_word_document_from_url (Postful::Letter)</a><br />
|
47
|
+
<a href="classes/Postful/Postcard.html#M000024">back_image_from_file= (Postful::Postcard)</a><br />
|
48
|
+
<a href="classes/Postful/Section.html#M000022">build_request (Postful::Section)</a><br />
|
49
|
+
<a href="classes/Postful/TemplateDocument.html#M000029">build_request (Postful::TemplateDocument)</a><br />
|
50
|
+
<a href="classes/Postful/SimpleDocument.html#M000001">build_request (Postful::SimpleDocument)</a><br />
|
51
|
+
<a href="classes/Postful/Order.html#M000015">cancel (Postful::Order)</a><br />
|
52
|
+
<a href="classes/Postful/Service.html#M000039">cancel_order_by_id (Postful::Service)</a><br />
|
53
|
+
<a href="classes/Postful/Document.html#M000028">do_upload (Postful::Document)</a><br />
|
54
|
+
<a href="classes/Postful/Section.html#M000021">do_upload (Postful::Section)</a><br />
|
55
|
+
<a href="classes/Postful/TemplateDocument.html#M000036">do_upload (Postful::TemplateDocument)</a><br />
|
56
|
+
<a href="classes/Postful/Base.html#M000006">document (Postful::Base)</a><br />
|
57
|
+
<a href="classes/Postful/Base.html#M000011">errors (Postful::Base)</a><br />
|
58
|
+
<a href="classes/Postful/Section.html#M000019">filename (Postful::Section)</a><br />
|
59
|
+
<a href="classes/Postful/Service.html#M000040">find_all_orders (Postful::Service)</a><br />
|
60
|
+
<a href="classes/Postful/Service.html#M000038">find_order_by_id (Postful::Service)</a><br />
|
61
|
+
<a href="classes/Postful/Postcard.html#M000023">front_image_from_file= (Postful::Postcard)</a><br />
|
62
|
+
<a href="classes/Postful/Base.html#M000009">mail! (Postful::Base)</a><br />
|
63
|
+
<a href="classes/Postful/Service.html#M000037">new (Postful::Service)</a><br />
|
64
|
+
<a href="classes/Postful/Document.html#M000026">new (Postful::Document)</a><br />
|
65
|
+
<a href="classes/Postful/Base.html#M000004">new (Postful::Base)</a><br />
|
66
|
+
<a href="classes/Postful/Order.html#M000016">new (Postful::Order)</a><br />
|
67
|
+
<a href="classes/Postful/Section.html#M000017">new (Postful::Section)</a><br />
|
68
|
+
<a href="classes/Postful/TemplateDocument.html#M000030">new (Postful::TemplateDocument)</a><br />
|
69
|
+
<a href="classes/Postful/Order.html#M000013">preview (Postful::Order)</a><br />
|
70
|
+
<a href="classes/Postful/TemplateDocument.html#M000032">property (Postful::TemplateDocument)</a><br />
|
71
|
+
<a href="classes/Postful/Order.html#M000014">refresh (Postful::Order)</a><br />
|
72
|
+
<a href="classes/Postful/SimpleDocument.html#M000002">requires_upload? (Postful::SimpleDocument)</a><br />
|
73
|
+
<a href="classes/Postful/TemplateDocument.html#M000035">requires_upload? (Postful::TemplateDocument)</a><br />
|
74
|
+
<a href="classes/Postful/Document.html#M000027">requires_upload? (Postful::Document)</a><br />
|
75
|
+
<a href="classes/Postful/Section.html#M000020">requires_upload? (Postful::Section)</a><br />
|
76
|
+
<a href="classes/Postful/TemplateDocument.html#M000034">section (Postful::TemplateDocument)</a><br />
|
77
|
+
<a href="classes/Postful/Section.html#M000018">text (Postful::Section)</a><br />
|
78
|
+
<a href="classes/Postful/SimpleDocument.html#M000003">upload (Postful::SimpleDocument)</a><br />
|
79
|
+
<a href="classes/Postful/Base.html#M000012">upload_assets (Postful::Base)</a><br />
|
80
|
+
<a href="classes/Postful/Base.html#M000010">valid? (Postful::Base)</a><br />
|
52
81
|
</div>
|
53
82
|
</div>
|
54
83
|
</body>
|
data/lib/postful/base.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'builder'
|
2
2
|
require File.join(File.dirname(__FILE__), 'order')
|
3
3
|
require File.join(File.dirname(__FILE__), 'util')
|
4
|
+
require File.join(File.dirname(__FILE__), 'template_document')
|
4
5
|
|
5
6
|
module Postful #:nodoc:
|
6
7
|
class AuthorizationException < StandardError; end
|
@@ -17,6 +18,7 @@ module Postful #:nodoc:
|
|
17
18
|
attr_accessor :tag2
|
18
19
|
attr_accessor :tag3
|
19
20
|
attr_accessor :return_address
|
21
|
+
attr_accessor :sections
|
20
22
|
|
21
23
|
include Util
|
22
24
|
|
@@ -25,8 +27,19 @@ module Postful #:nodoc:
|
|
25
27
|
@password = password
|
26
28
|
@documents = []
|
27
29
|
@addressees = []
|
30
|
+
@sections = []
|
28
31
|
end
|
29
32
|
|
33
|
+
# Adds a new document to the request that should be customized by setting section properties
|
34
|
+
def add_document(name, options = {}, &block)
|
35
|
+
returning TemplateDocument.new(name, @email, @password) do |document|
|
36
|
+
document.instance_exec(&block) if block
|
37
|
+
document.source = options[:source] if options[:source]
|
38
|
+
@documents << document
|
39
|
+
end
|
40
|
+
end
|
41
|
+
alias_method :document, :add_document
|
42
|
+
|
30
43
|
# Add a domestic recipient to a mailing
|
31
44
|
def add_address(attributes = {})
|
32
45
|
returning DomesticAddress.new do |address|
|
@@ -97,8 +110,15 @@ module Postful #:nodoc:
|
|
97
110
|
def validate #:nodoc:
|
98
111
|
errors << 'Requires at least one addressee' if @addressees.empty?
|
99
112
|
end
|
113
|
+
|
114
|
+
def upload_assets
|
115
|
+
@documents.each do |document|
|
116
|
+
document.do_upload if document.requires_upload?
|
117
|
+
end
|
118
|
+
end
|
100
119
|
|
101
120
|
def mail_without_validation! #:nodoc:
|
121
|
+
upload_assets
|
102
122
|
xml = build_request
|
103
123
|
send_request(xml)
|
104
124
|
end
|
data/lib/postful/letter.rb
CHANGED
@@ -2,6 +2,7 @@ require 'net/https'
|
|
2
2
|
require 'builder'
|
3
3
|
require File.join(File.dirname(__FILE__), 'base')
|
4
4
|
require File.join(File.dirname(__FILE__), 'util')
|
5
|
+
require File.join(File.dirname(__FILE__), 'simple_document')
|
5
6
|
|
6
7
|
module Postful
|
7
8
|
# Builder for mailing letters with the Postful Web Service.
|
@@ -9,62 +10,92 @@ module Postful
|
|
9
10
|
class Letter < Base
|
10
11
|
# Add an HTML document to the request
|
11
12
|
def add_html_document(text)
|
12
|
-
|
13
|
+
add_simple_document('html', text)
|
13
14
|
end
|
14
15
|
|
15
16
|
# Add an HTML document to the request
|
16
17
|
def add_html_document_from_file(filename)
|
17
|
-
|
18
|
+
add_simple_document_from_file('html', filename)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Add an HTML document to the request
|
22
|
+
def add_html_document_from_url(url)
|
23
|
+
add_simple_document_from_url('html', url)
|
18
24
|
end
|
19
25
|
|
20
26
|
# Add a Microsoft Word document to the request
|
21
27
|
def add_word_document(text)
|
22
|
-
|
28
|
+
add_simple_document('doc', text)
|
23
29
|
end
|
24
30
|
|
25
31
|
# Add a Microsoft Word document to the request
|
26
32
|
def add_word_document_from_file(filename)
|
27
|
-
|
33
|
+
add_simple_document_from_file('doc', filename)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Add a Microsoft Word document to the request
|
37
|
+
def add_word_document_from_url(url)
|
38
|
+
add_simple_document_from_url('doc', url)
|
28
39
|
end
|
29
40
|
|
30
41
|
# Add a Rich Text Format document to the request
|
31
42
|
def add_rtf_document(text)
|
32
|
-
|
43
|
+
add_simple_document('rtf', text)
|
33
44
|
end
|
34
45
|
|
35
46
|
# Add a Rich Text Format document to the request
|
36
47
|
def add_rtf_document_from_file(filename)
|
37
|
-
|
48
|
+
add_simple_document_from_file('rtf', filename)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Add a Rich Text Format document to the request
|
52
|
+
def add_rtf_document_from_url(url)
|
53
|
+
add_simple_document_from_url('rtf', url)
|
38
54
|
end
|
39
55
|
|
40
56
|
# Add an Open Office document to the request
|
41
57
|
def add_open_office_document(text)
|
42
|
-
|
58
|
+
add_simple_document('odt', text)
|
43
59
|
end
|
44
60
|
|
45
61
|
# Add an Open Office document to the request
|
46
62
|
def add_open_office_document_from_file(filename)
|
47
|
-
|
63
|
+
add_simple_document_from_file('odt', filename)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Add an Open Office document to the request
|
67
|
+
def add_open_office_document_from_url(url)
|
68
|
+
add_simple_document_from_file('odt', url)
|
48
69
|
end
|
49
70
|
|
50
71
|
# Add a text document to the request
|
51
72
|
def add_text_document(text)
|
52
|
-
|
73
|
+
add_simple_document('txt', text)
|
53
74
|
end
|
54
75
|
|
55
76
|
# Add a text document to the request
|
56
77
|
def add_text_document_from_file(filename)
|
57
|
-
|
78
|
+
add_simple_document_from_file('txt', filename)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Add a text document to the request
|
82
|
+
def add_text_document_from_url(url)
|
83
|
+
add_simple_document_from_url('txt', url)
|
58
84
|
end
|
59
85
|
|
60
86
|
# Add a PDF document to the request
|
61
87
|
def add_pdf_document(text)
|
62
|
-
|
88
|
+
add_simple_document('pdf', text)
|
63
89
|
end
|
64
90
|
|
65
91
|
# Add a PDF document to the request
|
66
92
|
def add_pdf_document_from_file(filename)
|
67
|
-
|
93
|
+
add_simple_document_from_file('pdf', filename)
|
94
|
+
end
|
95
|
+
|
96
|
+
# Add a PDF document to the request
|
97
|
+
def add_pdf_document_from_url(url)
|
98
|
+
add_simple_document_from_url('pdf', url)
|
68
99
|
end
|
69
100
|
|
70
101
|
protected
|
@@ -87,52 +118,28 @@ module Postful
|
|
87
118
|
end
|
88
119
|
end
|
89
120
|
|
90
|
-
def
|
91
|
-
returning
|
121
|
+
def add_simple_document_from_url(format, url)
|
122
|
+
returning SimpleDocument.new(@email, @password) do |document|
|
123
|
+
document.format = format
|
124
|
+
document.url = url
|
125
|
+
@documents << document
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def add_simple_document(format, content)
|
130
|
+
returning SimpleDocument.new(@email, @password) do |document|
|
92
131
|
document.format = format
|
93
132
|
document.content = content
|
94
133
|
@documents << document
|
95
134
|
end
|
96
135
|
end
|
97
136
|
|
98
|
-
def
|
137
|
+
def add_simple_document_from_file(format, filename)
|
99
138
|
content = open(filename, "rb") do |io|
|
100
139
|
io.read
|
101
140
|
end
|
102
|
-
|
141
|
+
add_simple_document(format, content)
|
103
142
|
end
|
104
143
|
|
105
|
-
class Document #:nodoc:
|
106
|
-
include Util
|
107
|
-
|
108
|
-
attr_accessor :format
|
109
|
-
attr_accessor :content
|
110
|
-
attr_accessor :attachment_name
|
111
|
-
|
112
|
-
def initialize(email, password)
|
113
|
-
@email = email
|
114
|
-
@password = password
|
115
|
-
end
|
116
|
-
|
117
|
-
def build_request(builder)
|
118
|
-
builder.document do
|
119
|
-
builder.type format
|
120
|
-
builder.attachment attachment_name
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def upload
|
125
|
-
headers = {
|
126
|
-
'Content-Type' => 'application/octet-stream',
|
127
|
-
'Content-Length' => content.size.to_s
|
128
|
-
}
|
129
|
-
response = post_request_on_path('/service/upload', content, @email, @password, headers)
|
130
|
-
if response.is_a?(Net::HTTPOK) && response.body =~ /<id>(.*)<\/id>/
|
131
|
-
self.attachment_name = $1
|
132
|
-
else
|
133
|
-
# raise stuff
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
144
|
end
|
138
145
|
end
|
data/lib/postful/postcard.rb
CHANGED
@@ -0,0 +1,46 @@
|
|
1
|
+
module Postful
|
2
|
+
class Section
|
3
|
+
include Util
|
4
|
+
|
5
|
+
def initialize(name, email, password)
|
6
|
+
@name = name
|
7
|
+
@email = email
|
8
|
+
@password = password
|
9
|
+
@requires_upload = false
|
10
|
+
end
|
11
|
+
|
12
|
+
def text(text)
|
13
|
+
@text = text
|
14
|
+
end
|
15
|
+
|
16
|
+
def filename(filename)
|
17
|
+
raise "File '#{filename}' not found" unless File.exist? filename
|
18
|
+
@requires_upload = true
|
19
|
+
@filename = filename
|
20
|
+
end
|
21
|
+
|
22
|
+
def requires_upload?
|
23
|
+
@requires_upload
|
24
|
+
end
|
25
|
+
|
26
|
+
def do_upload
|
27
|
+
content = open(@filename, "rb") { |io| io.read }
|
28
|
+
headers = { 'Content-Type' => 'application/octet-stream', 'Content-Length' => content.size.to_s }
|
29
|
+
response = post_request_on_path('/service/upload', content, @email, @password, headers)
|
30
|
+
if response.is_a?(Net::HTTPOK) && response.body =~ /<id>(.*)<\/id>/
|
31
|
+
@attachment = $1
|
32
|
+
else
|
33
|
+
raise 'Attachment name not found in response'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def build_request(builder)
|
38
|
+
builder.section do
|
39
|
+
builder.name @name
|
40
|
+
builder.text @text if @text
|
41
|
+
builder.attachment @attachment if @attachment
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|