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.
150
151
152
153
154
155
|
# File 'lib/soap/mimemessage.rb', line 150
def initialize
@parts = []
@headers = Headers.new
@root = nil
@boundary = nil
end
|
Instance Attribute Details
Returns the value of attribute headers.
161
162
163
|
# File 'lib/soap/mimemessage.rb', line 161
def
@headers
end
|
Returns the value of attribute parts.
161
162
163
|
# File 'lib/soap/mimemessage.rb', line 161
def parts
@parts
end
|
Class Method Details
.parse(head, str) ⇒ Object
157
158
159
|
# File 'lib/soap/mimemessage.rb', line 157
def self.parse(head, str)
new.parse(head, str)
end
|
Instance Method Details
#add_attachment(attach) ⇒ Object
211
212
213
214
215
216
217
|
# File 'lib/soap/mimemessage.rb', line 211
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
202
203
204
205
206
207
208
209
|
# File 'lib/soap/mimemessage.rb', line 202
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
|
195
196
197
198
199
200
|
# File 'lib/soap/mimemessage.rb', line 195
def boundary
if @boundary == nil
@boundary = "----=Part_" + __id__.to_s + rand.to_s
end
@boundary
end
|
163
164
165
166
167
168
|
# File 'lib/soap/mimemessage.rb', line 163
def close
@headers.add(
"Content-Type",
"multipart/related; type=\"text/xml\"; boundary=\"#{boundary}\"; start=\"#{@parts[0].contentid}\""
)
end
|
#content_str ⇒ Object
227
228
229
230
231
232
233
234
235
|
# File 'lib/soap/mimemessage.rb', line 227
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
219
220
221
|
# File 'lib/soap/mimemessage.rb', line 219
def has_parts?
(@parts.length > 0)
end
|
223
224
225
|
# File 'lib/soap/mimemessage.rb', line 223
def
@headers.to_s
end
|
#parse(head, str) ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
# File 'lib/soap/mimemessage.rb', line 170
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
|
186
187
188
189
190
191
192
193
|
# File 'lib/soap/mimemessage.rb', line 186
def root
if @root == nil
start = @headers['content-type']['start']
@root = (start && @parts.find { |prt| prt.contentid == start }) ||
@parts[0]
end
@root
end
|
237
238
239
|
# File 'lib/soap/mimemessage.rb', line 237
def to_s
str = + "\r\n\r\n" + conent_str
end
|