Class: SOAP::MIMEMessage
Defined Under Namespace
Classes: Header, Headers, MIMEMessageError, Part
Constant Summary
collapse
- MultipartContentType =
'multipart/\w+'
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of MIMEMessage.
148
149
150
151
152
153
|
# File 'lib/soap/mimemessage.rb', line 148
def initialize
@parts = []
@headers = Headers.new
@root = nil
@boundary = nil
end
|
Instance Attribute Details
Returns the value of attribute headers.
159
160
161
|
# File 'lib/soap/mimemessage.rb', line 159
def
@headers
end
|
Returns the value of attribute parts.
159
160
161
|
# File 'lib/soap/mimemessage.rb', line 159
def parts
@parts
end
|
Class Method Details
.parse(head, str) ⇒ Object
155
156
157
|
# File 'lib/soap/mimemessage.rb', line 155
def self.parse(head, str)
new.parse(head, str)
end
|
Instance Method Details
#add_attachment(attach) ⇒ Object
209
210
211
212
213
214
215
|
# File 'lib/soap/mimemessage.rb', line 209
def add_attachment(attach)
part = Part.new
part..add("Content-Type", attach.contenttype)
part..add("Content-ID", attach.mime_contentid)
part.body = attach.content
@parts.unshift(part)
end
|
#add_part(content) ⇒ Object
200
201
202
203
204
205
206
207
|
# File 'lib/soap/mimemessage.rb', line 200
def add_part(content)
part = Part.new
part..add("Content-Type",
"text/xml; charset=" + XSD::Charset.xml_encoding_label)
part..add("Content-ID", Attachment.contentid(part))
part.body = content
@parts.unshift(part)
end
|
193
194
195
196
197
198
|
# File 'lib/soap/mimemessage.rb', line 193
def boundary
if @boundary == nil
@boundary = "----=Part_" + __id__.to_s + rand.to_s
end
@boundary
end
|
161
162
163
164
165
166
|
# File 'lib/soap/mimemessage.rb', line 161
def close
@headers.add(
"Content-Type",
"multipart/related; type=\"text/xml\"; boundary=\"#{boundary}\"; start=\"#{@parts[0].contentid}\""
)
end
|
#content_str ⇒ Object
225
226
227
228
229
230
231
232
233
|
# File 'lib/soap/mimemessage.rb', line 225
def content_str
str = ''
@parts.each do |prt|
str << "--" + boundary + "\r\n"
str << prt.to_s + "\r\n"
end
str << '--' + boundary + "--\r\n"
str
end
|
#has_parts? ⇒ Boolean
217
218
219
|
# File 'lib/soap/mimemessage.rb', line 217
def has_parts?
(@parts.length > 0)
end
|
221
222
223
|
# File 'lib/soap/mimemessage.rb', line 221
def
@headers.to_s
end
|
#parse(head, str) ⇒ Object
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
# File 'lib/soap/mimemessage.rb', line 168
def parse(head, str)
@headers = Headers.parse(head + "\r\n" + "From: jfh\r\n")
boundary = @headers['content-type']['boundary']
if boundary != nil
parts = str.split(/--#{Regexp.quote(boundary)}\s*(?:\r\n|--\r\n)/)
part = parts.shift @parts = parts.collect { |part| Part.parse(part) }
else
@parts = [Part.parse(str)]
end
if @parts.length < 1
raise MIMEMessageError.new("This message contains no valid parts!")
end
self
end
|
184
185
186
187
188
189
190
191
|
# File 'lib/soap/mimemessage.rb', line 184
def root
if @root == nil
start = @headers['content-type']['start']
@root = (start && @parts.find { |prt| prt.contentid == start }) ||
@parts[0]
end
@root
end
|
235
236
237
|
# File 'lib/soap/mimemessage.rb', line 235
def to_s
str = + "\r\n\r\n" + conent_str
end
|