postful 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/doc/classes/Postful/Base.html +85 -28
  2. data/doc/classes/Postful/Base.src/M000004.html +8 -8
  3. data/doc/classes/Postful/Base.src/M000005.html +8 -6
  4. data/doc/classes/Postful/Base.src/{M000002.html → M000007.html} +1 -1
  5. data/doc/classes/Postful/Base.src/{M000003.html → M000008.html} +1 -1
  6. data/doc/classes/Postful/Base.src/M000009.html +22 -0
  7. data/doc/classes/Postful/Base.src/M000010.html +20 -0
  8. data/doc/classes/Postful/Base.src/{M000006.html → M000011.html} +1 -1
  9. data/doc/classes/Postful/Base.src/M000012.html +20 -0
  10. data/doc/classes/Postful/Document.html +176 -0
  11. data/doc/classes/Postful/{Base.src/M000001.html → Document.src/M000026.html} +2 -4
  12. data/doc/classes/Postful/Document.src/M000027.html +18 -0
  13. data/doc/classes/Postful/Document.src/M000028.html +18 -0
  14. data/doc/classes/Postful/Letter.html +168 -60
  15. data/doc/classes/Postful/Letter.src/{M000018.html → M000041.html} +2 -2
  16. data/doc/classes/Postful/Letter.src/{M000019.html → M000042.html} +2 -2
  17. data/doc/classes/Postful/Letter.src/M000043.html +18 -0
  18. data/doc/classes/Postful/Letter.src/{M000020.html → M000044.html} +2 -2
  19. data/doc/classes/Postful/Letter.src/{M000021.html → M000045.html} +2 -2
  20. data/doc/classes/Postful/Letter.src/M000046.html +18 -0
  21. data/doc/classes/Postful/Letter.src/{M000022.html → M000047.html} +2 -2
  22. data/doc/classes/Postful/Letter.src/{M000023.html → M000048.html} +2 -2
  23. data/doc/classes/Postful/Letter.src/M000049.html +18 -0
  24. data/doc/classes/Postful/Letter.src/{M000024.html → M000050.html} +2 -2
  25. data/doc/classes/Postful/Letter.src/{M000025.html → M000051.html} +2 -2
  26. data/doc/classes/Postful/Letter.src/M000052.html +18 -0
  27. data/doc/classes/Postful/Letter.src/{M000026.html → M000053.html} +2 -2
  28. data/doc/classes/Postful/Letter.src/{M000027.html → M000054.html} +2 -2
  29. data/doc/classes/Postful/Letter.src/M000055.html +18 -0
  30. data/doc/classes/Postful/Letter.src/{M000028.html → M000056.html} +2 -2
  31. data/doc/classes/Postful/Letter.src/{M000029.html → M000057.html} +2 -2
  32. data/doc/classes/Postful/Letter.src/M000058.html +18 -0
  33. data/doc/classes/Postful/Order.html +20 -20
  34. data/doc/classes/Postful/Order.src/{M000007.html → M000013.html} +0 -0
  35. data/doc/classes/Postful/Order.src/{M000008.html → M000014.html} +0 -0
  36. data/doc/classes/Postful/Order.src/{M000009.html → M000015.html} +0 -0
  37. data/doc/classes/Postful/Order.src/{M000010.html → M000016.html} +0 -0
  38. data/doc/classes/Postful/Postcard.html +15 -15
  39. data/doc/classes/Postful/Postcard.src/{M000011.html → M000023.html} +0 -0
  40. data/doc/classes/Postful/Postcard.src/{M000012.html → M000024.html} +0 -0
  41. data/doc/classes/Postful/Postcard.src/{M000013.html → M000025.html} +0 -0
  42. data/doc/classes/Postful/Section.html +221 -0
  43. data/doc/classes/Postful/Section.src/M000017.html +21 -0
  44. data/doc/classes/Postful/Section.src/M000018.html +18 -0
  45. data/doc/classes/Postful/Section.src/M000019.html +20 -0
  46. data/doc/classes/Postful/Section.src/M000020.html +18 -0
  47. data/doc/classes/Postful/Section.src/M000021.html +25 -0
  48. data/doc/classes/Postful/Section.src/M000022.html +22 -0
  49. data/doc/classes/Postful/Service.html +20 -20
  50. data/doc/classes/Postful/Service.src/{M000014.html → M000037.html} +0 -0
  51. data/doc/classes/Postful/Service.src/{M000015.html → M000038.html} +0 -0
  52. data/doc/classes/Postful/Service.src/{M000016.html → M000039.html} +0 -0
  53. data/doc/classes/Postful/Service.src/{M000017.html → M000040.html} +0 -0
  54. data/doc/classes/Postful/SimpleDocument.html +197 -0
  55. data/doc/classes/Postful/SimpleDocument.src/M000001.html +22 -0
  56. data/doc/classes/Postful/SimpleDocument.src/M000002.html +18 -0
  57. data/doc/classes/Postful/SimpleDocument.src/M000003.html +29 -0
  58. data/doc/classes/Postful/TemplateDocument.html +274 -0
  59. data/doc/classes/Postful/TemplateDocument.src/M000029.html +36 -0
  60. data/doc/classes/Postful/TemplateDocument.src/M000030.html +22 -0
  61. data/doc/classes/Postful/TemplateDocument.src/M000031.html +18 -0
  62. data/doc/classes/Postful/TemplateDocument.src/M000033.html +21 -0
  63. data/doc/classes/Postful/TemplateDocument.src/M000035.html +18 -0
  64. data/doc/classes/Postful/TemplateDocument.src/M000036.html +20 -0
  65. data/doc/created.rid +1 -1
  66. data/doc/files/MIT-LICENSE.html +1 -1
  67. data/doc/files/README.html +1 -1
  68. data/doc/files/lib/postful/base_rb.html +1 -1
  69. data/doc/files/lib/postful/document_rb.html +101 -0
  70. data/doc/files/lib/postful/instance_exec_module_rb.html +1 -1
  71. data/doc/files/lib/postful/letter_rb.html +1 -1
  72. data/doc/files/lib/postful/order_rb.html +1 -1
  73. data/doc/files/lib/postful/postcard_rb.html +1 -1
  74. data/doc/files/lib/postful/section_rb.html +101 -0
  75. data/doc/files/lib/postful/service_rb.html +1 -1
  76. data/doc/files/lib/postful/simple_document_rb.html +101 -0
  77. data/doc/files/lib/postful/template_document_rb.html +101 -0
  78. data/doc/files/lib/postful/util_rb.html +1 -1
  79. data/doc/files/lib/postful_rb.html +1 -1
  80. data/doc/fr_class_index.html +4 -0
  81. data/doc/fr_file_index.html +4 -0
  82. data/doc/fr_method_index.html +58 -29
  83. data/lib/postful/base.rb +20 -0
  84. data/lib/postful/document.rb +18 -0
  85. data/lib/postful/letter.rb +55 -48
  86. data/lib/postful/postcard.rb +4 -0
  87. data/lib/postful/section.rb +46 -0
  88. data/lib/postful/simple_document.rb +38 -0
  89. data/lib/postful/template_document.rb +66 -0
  90. data/lib/postful/util.rb +70 -21
  91. data/test/test_base.rb +71 -0
  92. data/test/test_letter.rb +6 -0
  93. data/test/test_postcard.rb +13 -1
  94. metadata +71 -29
@@ -0,0 +1,38 @@
1
+ require File.join(File.dirname(__FILE__), 'document')
2
+
3
+ module Postful
4
+ class SimpleDocument < Document
5
+
6
+ attr_accessor :format
7
+ attr_accessor :content
8
+ attr_accessor :attachment_name
9
+ attr_accessor :url
10
+
11
+ def build_request(builder)
12
+ builder.document do
13
+ builder.type format
14
+ builder.attachment attachment_name if attachment_name
15
+ builder.url url if url
16
+ end
17
+ end
18
+
19
+ def requires_upload?
20
+ true if !url
21
+ end
22
+
23
+ def upload
24
+ if requires_upload?
25
+ headers = {
26
+ 'Content-Type' => 'application/octet-stream',
27
+ 'Content-Length' => content.size.to_s
28
+ }
29
+ response = post_request_on_path('/service/upload', content, @email, @password, headers)
30
+ if response.is_a?(Net::HTTPOK) && response.body =~ /<id>(.*)<\/id>/
31
+ self.attachment_name = $1
32
+ else
33
+ # raise stuff
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,66 @@
1
+ require File.join(File.dirname(__FILE__), 'document')
2
+ require File.join(File.dirname(__FILE__), 'section')
3
+
4
+ module Postful
5
+ class TemplateDocument < Document
6
+ def build_request(builder)
7
+ builder.document do
8
+ builder.template do
9
+ builder.source source
10
+ builder.name name
11
+ end
12
+ builder.sections do
13
+ sections.each do |section|
14
+ section.build_request(builder)
15
+ end
16
+ end if sections.any?
17
+ builder.properties do
18
+ properties.each_pair do |key, value|
19
+ builder.property do
20
+ builder.key key
21
+ builder.value value
22
+ end
23
+ end
24
+ end if properties.keys.any?
25
+ end
26
+ end
27
+
28
+ def initialize(name, email, password)
29
+ super(email, password)
30
+ @name = name
31
+ @source = 'gallery'
32
+ @sections = []
33
+ @properties = {}
34
+ end
35
+
36
+ attr_accessor :source
37
+ attr_accessor :name
38
+ attr :sections
39
+ attr :properties
40
+
41
+ def add_property(key, value)
42
+ @properties[key] = value
43
+ end
44
+
45
+ alias_method :property, :add_property
46
+
47
+ def add_section(name, &block)
48
+ returning Section.new(name, @email, @password) do |section|
49
+ section.instance_exec(&block) if block
50
+ sections << section
51
+ end
52
+ end
53
+
54
+ alias_method :section, :add_section
55
+
56
+ def requires_upload?
57
+ !(sections.find { |section| section.requires_upload? }).nil?
58
+ end
59
+
60
+ def do_upload
61
+ sections.each do |section|
62
+ section.do_upload if section.requires_upload?
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,8 +1,25 @@
1
1
  module Postful
2
- module Util #:nodoc:
3
- HOST = 'www.postful.com'
4
- PORT = 443
2
+ HOST = 'www.postful.com'
3
+ PORT = 443
4
+
5
+ def self.host=(host)
6
+ @host = host
7
+ end
8
+
9
+ def self.host
10
+ @host || HOST
11
+ end
5
12
 
13
+ def self.port=(port)
14
+ @port = port
15
+ end
16
+
17
+ def self.port
18
+ @port || PORT
19
+ end
20
+
21
+ module Util #:nodoc:
22
+
6
23
  protected
7
24
 
8
25
  def build_error_message_from_response(response)
@@ -13,27 +30,27 @@ module Postful
13
30
  end
14
31
  errors.join("\n")
15
32
  end
16
-
33
+
17
34
  def authorization_header(email, password)
18
35
  'Basic ' + ["#{email}:#{password}"].pack('m').delete("\r\n")
19
36
  end
20
37
 
21
38
  def process_standard_responses(response)
22
39
  case response.code
23
- when "500" then
24
- raise Postful::InternalServerError
25
- when "401" then
26
- raise Postful::AuthorizationException
27
- when "404" then
28
- raise Postful::NotFoundException
29
- else
30
- raise Postful::UnknownResponseException, response.code
40
+ when "500" then
41
+ raise Postful::InternalServerError
42
+ when "401" then
43
+ raise Postful::AuthorizationException
44
+ when "404" then
45
+ raise Postful::NotFoundException
46
+ else
47
+ raise Postful::UnknownResponseException, response.code
31
48
  end
32
49
  end
33
50
 
34
51
  def delete_request_on_path(path, email, password)
35
- http = Net::HTTP.new(HOST, PORT)
36
- http.use_ssl = true if PORT == 443
52
+ http = Net::HTTP.new(Postful.host, Postful.port)
53
+ http.use_ssl = true if Postful.port == 443
37
54
  silence_warnings do
38
55
  http.start() {|http|
39
56
  request = Net::HTTP::Delete.new(path)
@@ -42,10 +59,10 @@ module Postful
42
59
  }
43
60
  end
44
61
  end
45
-
62
+
46
63
  def get_request_on_path(path, email, password)
47
- http = Net::HTTP.new(HOST, PORT)
48
- http.use_ssl = true if PORT == 443
64
+ http = Net::HTTP.new(Postful.host, Postful.port)
65
+ http.use_ssl = true if Postful.port == 443
49
66
  silence_warnings do
50
67
  http.start() {|http|
51
68
  request = Net::HTTP::Get.new(path)
@@ -56,17 +73,49 @@ module Postful
56
73
  end
57
74
 
58
75
  def post_request_on_path(path, post, email, password, headers = {})
59
- http = Net::HTTP.new(HOST, PORT)
60
- http.use_ssl = true if PORT == 443
76
+ http = Net::HTTP.new(Postful.host, Postful.port)
77
+ http.use_ssl = true if Postful.port == 443
61
78
  headers.merge!({ 'Authorization' => authorization_header(email, password) })
62
79
  silence_warnings { http.post(path, post, headers) }
63
80
  end
64
-
81
+
65
82
  def silence_warnings
66
83
  old_verbose, $VERBOSE = $VERBOSE, nil
67
84
  yield
68
85
  ensure
69
86
  $VERBOSE = old_verbose
70
87
  end
71
- end
88
+
89
+ def returning(value)
90
+ yield(value)
91
+ value
92
+ end
93
+
94
+ unless defined? instance_exec # 1.9
95
+ module InstanceExecMethods #:nodoc:
96
+ end
97
+ include InstanceExecMethods
98
+
99
+ # Evaluate the block with the given arguments within the context of
100
+ # this object, so self is set to the method receiver.
101
+ #
102
+ # From Mauricio's http://eigenclass.org/hiki/bounded+space+instance_exec
103
+ def instance_exec(*args, &block)
104
+ begin
105
+ old_critical, Thread.critical = Thread.critical, true
106
+ n = 0
107
+ n += 1 while respond_to?(method_name = "__instance_exec#{n}")
108
+ InstanceExecMethods.module_eval { define_method(method_name, &block) }
109
+ ensure
110
+ Thread.critical = old_critical
111
+ end
112
+
113
+ begin
114
+ send(method_name, *args)
115
+ ensure
116
+ InstanceExecMethods.module_eval { remove_method(method_name) } rescue nil
117
+ end
118
+ end
119
+ end
120
+ end
72
121
  end
@@ -8,6 +8,66 @@ class TestBase < Test::Unit::TestCase
8
8
  @base = Postful::Base.new('email', 'password')
9
9
  end
10
10
 
11
+ def test_sections
12
+ assert_equal [], @base.sections
13
+ end
14
+
15
+ def test_add_document
16
+ document = @base.add_document 'Template #1'
17
+ assert document.is_a?(Postful::TemplateDocument)
18
+ assert_equal 'Template #1', document.name
19
+ end
20
+
21
+ def test_document_property
22
+ document = @base.document 'Template #1' do
23
+ property 'foo', 'bar'
24
+ end
25
+ @request = @base.send(:build_request)
26
+ assert_equal 'foo', fetch_tag('mail/documents/document/properties/property/key')
27
+ assert_equal 'bar', fetch_tag('mail/documents/document/properties/property/value')
28
+ end
29
+
30
+ def test_document_section
31
+ document = @base.document 'Template #1' do
32
+ section 'some_name' do
33
+ text 'Laszlo Jamf'
34
+ end
35
+ end
36
+ @request = @base.send(:build_request)
37
+ assert_equal 'Laszlo Jamf', fetch_tag('mail/documents/document/sections/section/text')
38
+ assert_equal 'some_name', fetch_tag('mail/documents/document/sections/section/name')
39
+ assert_equal false, document.sections.first.requires_upload?
40
+ end
41
+
42
+ def test_document_image_section
43
+ document = @base.document 'Template #1' do
44
+ section 'some_name' do
45
+ filename __FILE__
46
+ end
47
+ end
48
+ section = document.sections.first
49
+ assert_equal true, section.requires_upload?
50
+ name = register_upload
51
+ section.do_upload
52
+ assert_equal name, section.instance_variable_get("@attachment")
53
+ end
54
+
55
+ def test_image_upload
56
+ document = @base.document 'Template #1' do
57
+ section 'some_name' do
58
+ filename __FILE__
59
+ end
60
+ end
61
+ @base.add_address :name => 'John Doe', :address => '123 Main St', :city => 'Anytown', :state => 'AZ', :postal_code => '10000'
62
+ section = document.sections.first
63
+ assert_equal true, section.requires_upload?
64
+ assert_equal true, document.requires_upload?
65
+ name = register_upload
66
+ register_201
67
+ @base.mail!
68
+ assert_equal name, section.instance_variable_get("@attachment")
69
+ end
70
+
11
71
  def test_tags
12
72
  @base.tag1 = 'tag 1'
13
73
  @base.tag2 = 'tag 2'
@@ -122,6 +182,17 @@ class TestBase < Test::Unit::TestCase
122
182
  end
123
183
  end
124
184
 
185
+ def register_201
186
+ FakeWeb.register_uri('https://www.postful.com/service/mail', :string => fixture('201.xml'), :status => '201')
187
+ end
188
+
189
+ def register_upload
190
+ s = "290797321.waltershandy.2"
191
+ FakeWeb.register_uri('https://www.postful.com/service/upload',
192
+ :string => %(<?xml version="1.0" encoding="UTF-8"?><upload><id>#{s}</id></upload>))
193
+ s
194
+ end
195
+
125
196
  def fetch_tag(tag)
126
197
  @document ||= begin
127
198
  REXML::Document.new @request
@@ -7,6 +7,12 @@ class TestLetter < Test::Unit::TestCase
7
7
  @letter = Postful::Letter.new('email', 'password')
8
8
  end
9
9
 
10
+ def test_simple_document_from_url
11
+ document = @letter.add_html_document_from_url 'http://www.google.com'
12
+ xml = @letter.send(:build_request)
13
+ assert_equal %(<mail><documents><document><type>html</type><url>http://www.google.com</url></document></documents><addressees></addressees></mail>), xml
14
+ end
15
+
10
16
  def test_build_request_document
11
17
  document = @letter.add_html_document '<b>Hello, world!</b>'
12
18
  document.attachment_name = 'porcupine'
@@ -1,6 +1,6 @@
1
1
  require 'test/unit'
2
2
  require 'fake_web'
3
- require 'lib/postful/postcard'
3
+ require File.dirname(__FILE__) + '/../lib/postful/postcard'
4
4
 
5
5
  class TestPostcard < Test::Unit::TestCase
6
6
  include Postful
@@ -26,6 +26,18 @@ class TestPostcard < Test::Unit::TestCase
26
26
  @postcard.back_image = 'data'
27
27
  assert_equal Postcard::IMAGES, @postcard.send(:choose_template)
28
28
  end
29
+
30
+ def test_no_exceptions
31
+ @valid_postcard.front_image = 'data'
32
+ @valid_postcard.back_image = 'data'
33
+ @valid_postcard.send :instance_exec do
34
+ build_sections
35
+ upload_attachments
36
+ build_template_document
37
+ upload_assets
38
+ build_request
39
+ end
40
+ end
29
41
 
30
42
  def test_adding_no_border_chooses_fill
31
43
  @postcard.front_image = 'data'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postful, Inc
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-12 00:00:00 -07:00
12
+ date: 2009-01-29 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,11 +32,15 @@ extra_rdoc_files: []
32
32
 
33
33
  files:
34
34
  - lib/postful/base.rb
35
+ - lib/postful/document.rb
35
36
  - lib/postful/instance_exec_module.rb
36
37
  - lib/postful/letter.rb
37
38
  - lib/postful/order.rb
38
39
  - lib/postful/postcard.rb
40
+ - lib/postful/section.rb
39
41
  - lib/postful/service.rb
42
+ - lib/postful/simple_document.rb
43
+ - lib/postful/template_document.rb
40
44
  - lib/postful/util.rb
41
45
  - lib/postful.rb
42
46
  - test/suite.rb
@@ -48,54 +52,92 @@ files:
48
52
  - doc/classes/Postful/AuthorizationException.html
49
53
  - doc/classes/Postful/Base.html
50
54
  - doc/classes/Postful/Base.src
51
- - doc/classes/Postful/Base.src/M000001.html
52
- - doc/classes/Postful/Base.src/M000002.html
53
- - doc/classes/Postful/Base.src/M000003.html
54
55
  - doc/classes/Postful/Base.src/M000004.html
55
56
  - doc/classes/Postful/Base.src/M000005.html
56
- - doc/classes/Postful/Base.src/M000006.html
57
+ - doc/classes/Postful/Base.src/M000007.html
58
+ - doc/classes/Postful/Base.src/M000008.html
59
+ - doc/classes/Postful/Base.src/M000009.html
60
+ - doc/classes/Postful/Base.src/M000010.html
61
+ - doc/classes/Postful/Base.src/M000011.html
62
+ - doc/classes/Postful/Base.src/M000012.html
63
+ - doc/classes/Postful/Document.html
64
+ - doc/classes/Postful/Document.src
65
+ - doc/classes/Postful/Document.src/M000026.html
66
+ - doc/classes/Postful/Document.src/M000027.html
67
+ - doc/classes/Postful/Document.src/M000028.html
57
68
  - doc/classes/Postful/InternalServerError.html
58
69
  - doc/classes/Postful/Letter.html
59
70
  - doc/classes/Postful/Letter.src
60
- - doc/classes/Postful/Letter.src/M000018.html
61
- - doc/classes/Postful/Letter.src/M000019.html
62
- - doc/classes/Postful/Letter.src/M000020.html
63
- - doc/classes/Postful/Letter.src/M000021.html
64
- - doc/classes/Postful/Letter.src/M000022.html
65
- - doc/classes/Postful/Letter.src/M000023.html
66
- - doc/classes/Postful/Letter.src/M000024.html
67
- - doc/classes/Postful/Letter.src/M000025.html
68
- - doc/classes/Postful/Letter.src/M000026.html
69
- - doc/classes/Postful/Letter.src/M000027.html
70
- - doc/classes/Postful/Letter.src/M000028.html
71
- - doc/classes/Postful/Letter.src/M000029.html
71
+ - doc/classes/Postful/Letter.src/M000041.html
72
+ - doc/classes/Postful/Letter.src/M000042.html
73
+ - doc/classes/Postful/Letter.src/M000043.html
74
+ - doc/classes/Postful/Letter.src/M000044.html
75
+ - doc/classes/Postful/Letter.src/M000045.html
76
+ - doc/classes/Postful/Letter.src/M000046.html
77
+ - doc/classes/Postful/Letter.src/M000047.html
78
+ - doc/classes/Postful/Letter.src/M000048.html
79
+ - doc/classes/Postful/Letter.src/M000049.html
80
+ - doc/classes/Postful/Letter.src/M000050.html
81
+ - doc/classes/Postful/Letter.src/M000051.html
82
+ - doc/classes/Postful/Letter.src/M000052.html
83
+ - doc/classes/Postful/Letter.src/M000053.html
84
+ - doc/classes/Postful/Letter.src/M000054.html
85
+ - doc/classes/Postful/Letter.src/M000055.html
86
+ - doc/classes/Postful/Letter.src/M000056.html
87
+ - doc/classes/Postful/Letter.src/M000057.html
88
+ - doc/classes/Postful/Letter.src/M000058.html
72
89
  - doc/classes/Postful/NotFoundException.html
73
90
  - doc/classes/Postful/Order.html
74
91
  - doc/classes/Postful/Order.src
75
- - doc/classes/Postful/Order.src/M000007.html
76
- - doc/classes/Postful/Order.src/M000008.html
77
- - doc/classes/Postful/Order.src/M000009.html
78
- - doc/classes/Postful/Order.src/M000010.html
92
+ - doc/classes/Postful/Order.src/M000013.html
93
+ - doc/classes/Postful/Order.src/M000014.html
94
+ - doc/classes/Postful/Order.src/M000015.html
95
+ - doc/classes/Postful/Order.src/M000016.html
79
96
  - doc/classes/Postful/Postcard.html
80
97
  - doc/classes/Postful/Postcard.src
81
- - doc/classes/Postful/Postcard.src/M000011.html
82
- - doc/classes/Postful/Postcard.src/M000012.html
83
- - doc/classes/Postful/Postcard.src/M000013.html
98
+ - doc/classes/Postful/Postcard.src/M000023.html
99
+ - doc/classes/Postful/Postcard.src/M000024.html
100
+ - doc/classes/Postful/Postcard.src/M000025.html
101
+ - doc/classes/Postful/Section.html
102
+ - doc/classes/Postful/Section.src
103
+ - doc/classes/Postful/Section.src/M000017.html
104
+ - doc/classes/Postful/Section.src/M000018.html
105
+ - doc/classes/Postful/Section.src/M000019.html
106
+ - doc/classes/Postful/Section.src/M000020.html
107
+ - doc/classes/Postful/Section.src/M000021.html
108
+ - doc/classes/Postful/Section.src/M000022.html
84
109
  - doc/classes/Postful/Service.html
85
110
  - doc/classes/Postful/Service.src
86
- - doc/classes/Postful/Service.src/M000014.html
87
- - doc/classes/Postful/Service.src/M000015.html
88
- - doc/classes/Postful/Service.src/M000016.html
89
- - doc/classes/Postful/Service.src/M000017.html
111
+ - doc/classes/Postful/Service.src/M000037.html
112
+ - doc/classes/Postful/Service.src/M000038.html
113
+ - doc/classes/Postful/Service.src/M000039.html
114
+ - doc/classes/Postful/Service.src/M000040.html
115
+ - doc/classes/Postful/SimpleDocument.html
116
+ - doc/classes/Postful/SimpleDocument.src
117
+ - doc/classes/Postful/SimpleDocument.src/M000001.html
118
+ - doc/classes/Postful/SimpleDocument.src/M000002.html
119
+ - doc/classes/Postful/SimpleDocument.src/M000003.html
120
+ - doc/classes/Postful/TemplateDocument.html
121
+ - doc/classes/Postful/TemplateDocument.src
122
+ - doc/classes/Postful/TemplateDocument.src/M000029.html
123
+ - doc/classes/Postful/TemplateDocument.src/M000030.html
124
+ - doc/classes/Postful/TemplateDocument.src/M000031.html
125
+ - doc/classes/Postful/TemplateDocument.src/M000033.html
126
+ - doc/classes/Postful/TemplateDocument.src/M000035.html
127
+ - doc/classes/Postful/TemplateDocument.src/M000036.html
90
128
  - doc/classes/Postful/UnknownResponseException.html
91
129
  - doc/classes/Postful/ValidationException.html
92
130
  - doc/created.rid
93
131
  - doc/files/lib/postful/base_rb.html
132
+ - doc/files/lib/postful/document_rb.html
94
133
  - doc/files/lib/postful/instance_exec_module_rb.html
95
134
  - doc/files/lib/postful/letter_rb.html
96
135
  - doc/files/lib/postful/order_rb.html
97
136
  - doc/files/lib/postful/postcard_rb.html
137
+ - doc/files/lib/postful/section_rb.html
98
138
  - doc/files/lib/postful/service_rb.html
139
+ - doc/files/lib/postful/simple_document_rb.html
140
+ - doc/files/lib/postful/template_document_rb.html
99
141
  - doc/files/lib/postful/util_rb.html
100
142
  - doc/files/lib/postful_rb.html
101
143
  - doc/files/MIT-LICENSE.html