postful 0.2.0 → 0.3.1
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/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
|