Class Jabber::Bytestreams::IqSiFile
In: lib/xmpp4r/bytestreams/iq/si.rb
Parent: REXML::Element

File-transfer meta-information, may appear as <file/> in IqSi

Methods

date   date=   description   description=   fname   fname=   hash   hash=   new   range   size   size=   typed_add  

Public Class methods

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 96
 96:       def initialize(fname=nil, size=nil)
 97:         super 'file'
 98:         add_namespace IqSi::PROFILE_FILETRANSFER
 99:         self.fname = fname
100:         self.size = size
101:       end

Public Instance methods

Get file date

result:[Time] or nil

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 138
138:       def date
139:         begin
140:           Time.xmlschema(attributes['date'])
141:         rescue ArgumentError
142:           nil
143:         end
144:       end

Set file date

d:[Time] or nil

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 149
149:       def date=(d)
150:         attributes['date'] = (d ? d.xmlschema : nil)
151:       end

File description

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 168
168:       def description
169:         first_element_text('desc')
170:       end

Set file description

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 174
174:       def description=(s)
175:         replace_element_text('desc', s)
176:       end

Get filename (attribute ‘name’)

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 113
113:       def fname
114:         attributes['name']
115:       end

Set filename (attribute ‘name’)

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 119
119:       def fname=(s)
120:         attributes['name'] = s
121:       end

Get MD5 hash

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 125
125:       def hash
126:         attributes['hash']
127:       end

Set MD5 hash

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 131
131:       def hash=(s)
132:         attributes['hash'] = s
133:       end

<range/> child

A file-transfer offer may contain this with no attributes set, indicating the ability to do ranged transfers.

result:[IqSiFileRange]

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 185
185:       def range
186:         first_element('range')
187:       end

File size in bytes

result:[Fixnum]

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 156
156:       def size
157:         (attributes['size'] =~ /^\d+$/) ? attributes['size'].to_i : nil
158:       end

Set file size

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 162
162:       def size=(s)
163:         attributes['size'] = s ? s.to_s : nil
164:       end

[Source]

     # File lib/xmpp4r/bytestreams/iq/si.rb, line 103
103:       def typed_add(element)
104:         if element.kind_of?(REXML::Element) and element.name == 'range'
105:           super IqSiFileRange.new.import(element)
106:         else
107:           super element
108:         end
109:       end

[Validate]