Class Jabber::Dataforms::XDataField
In: lib/xmpp4r/dataforms/x/data.rb
Parent: XMPPElement
Message Presence XMPPStanza Iq XMPPElement ErrorResponse X IqQuery JabberError ComponentAuthenticationFailure ArgumentError SOCKS5Error ServerError NoNameXmlnsRegistered ClientAuthenticationFailure Connection Client Component Client Singleton IdGenerator Comparable JID StandardError REXML::Element Stream IqQuery IqQueryVersion IqQueryRoster IqQueryBytestreams IqQueryRPC IqQueryMUCOwner IqQueryMUCAdmin IqQueryDiscoItems IqQueryDiscoInfo Responder SimpleResponder XRosterItem RosterXItem XMPPElement RosterItem IqFeature StreamHost IqSiFile IqSiFileRange IqSi StreamHostUsed C Body HTML UserItem XMUCUserInvite Tune Configuration Items Item IqPubSub Publish Event IqPubSubOwner Subscription Unsubscribe Feature Item Identity XDataField XDataReported XDataTitle XDataInstructions IqVcard XRoster RosterX X XMUC XMUCUser XDelay XData Iq IqCommand SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IBB IBBTarget IBBInitiator XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer MUCClient SimpleMUCClient MUC::UserItem XMUCUserItem IqQueryMUCAdminItem XParent Base Anonymous DigestMD5 Plain PubSub::ServiceHelper Helper SubscriptionConfig NodeConfig OwnerNodeConfig EventItems EventItem ServiceHelper NodeHelper FileSource Base Bot CallbackList Callback StreamParser Semaphore Helper Responder SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper MUCBrowser NodeBrowser Responder Helper Helper lib/xmpp4r/message.rb lib/xmpp4r/connection.rb lib/xmpp4r/xmppstanza.rb lib/xmpp4r/iq.rb lib/xmpp4r/callbacks.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/stream.rb lib/xmpp4r/client.rb lib/xmpp4r/jid.rb lib/xmpp4r/x.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/semaphore.rb lib/xmpp4r/errors.rb lib/xmpp4r/component.rb lib/xmpp4r/presence.rb lib/xmpp4r/xmppelement.rb lib/xmpp4r/query.rb XParent lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb lib/xmpp4r/version/iq/version.rb Version lib/xmpp4r/roster/x/roster.rb lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb Roster lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/bytestreams/iq/si.rb lib/xmpp4r/bytestreams/helper/ibb/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb lib/xmpp4r/bytestreams/iq/bytestreams.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb lib/xmpp4r/bytestreams/helper/ibb/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb lib/xmpp4r/bytestreams/helper/ibb/base.rb Bytestreams lib/xmpp4r/caps/helper/helper.rb lib/xmpp4r/caps/c.rb Caps lib/xmpp4r/xhtml/html.rb XHTML lib/xmpp4r/rpc/helper/server.rb lib/xmpp4r/rpc/helper/client.rb lib/xmpp4r/rpc/iq/rpc.rb RPC lib/xmpp4r/muc/iq/mucadminitem.rb lib/xmpp4r/muc/x/muc.rb lib/xmpp4r/muc/item.rb lib/xmpp4r/muc/helper/simplemucclient.rb lib/xmpp4r/muc/iq/mucadmin.rb lib/xmpp4r/muc/helper/mucbrowser.rb lib/xmpp4r/muc/x/mucuseritem.rb lib/xmpp4r/muc/x/mucuserinvite.rb lib/xmpp4r/muc/iq/mucowner.rb lib/xmpp4r/muc/helper/mucclient.rb MUC lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/sasl.rb SASL lib/xmpp4r/tune/helper/helper.rb lib/xmpp4r/tune/tune.rb UserTune lib/xmpp4r/pubsub/children/item.rb lib/xmpp4r/pubsub/children/configuration.rb lib/xmpp4r/pubsub/children/subscription.rb lib/xmpp4r/pubsub/helper/servicehelper.rb lib/xmpp4r/pubsub/children/unsubscribe.rb lib/xmpp4r/pubsub/children/publish.rb lib/xmpp4r/pubsub/children/event.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/helper/nodebrowser.rb lib/xmpp4r/pubsub/helper/nodehelper.rb lib/xmpp4r/pubsub/children/items.rb lib/xmpp4r/pubsub/children/subscription_config.rb lib/xmpp4r/pubsub/children/node_config.rb PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/helper/responder.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard lib/xmpp4r/framework/base.rb lib/xmpp4r/framework/bot.rb Framework Jabber dot/m_99_0.png

Child of XData, contains configurable/configured options of this Data Form

Methods

label   label=   new   options   options=   required=   required?   type   type=   value   value=   values   values=   var   var=  

Public Class methods

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 148
148:       def initialize(var=nil, type=nil)
149:         super()
150:         self.var = var
151:         self.type = type
152:       end

Public Instance methods

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 154
154:       def label
155:         attributes['label']
156:       end

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 158
158:       def label=(s)
159:         attributes['label'] = s
160:       end

Get the options (in a Data Form with type=‘form’)

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 269
269:       def options
270:         res = {}
271:         each_element('option') { |e|
272:           value = nil
273:           e.each_element('value') { |ve| value = ve.text }
274:           res[value] = e.attributes['label']
275:         }
276:         res
277:       end

Set the options

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 281
281:       def options=(hsh)
282:         delete_elements('option')
283:         hsh.each { |value,label|
284:           o = add(REXML::Element.new('option'))
285:           o.attributes['label'] = label
286:           o.add(REXML::Element.new('value')).text = value
287:         }
288:       end

Set if this field is required

r:[true] or [false]

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 229
229:       def required=(r)
230:         delete_elements('required')
231:         if r
232:           add REXML::Element.new('required')
233:         end
234:       end

Is this field required (has the <required/> child)?

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 220
220:       def required?
221:         res = false
222:         each_element('required') { res = true }
223:         res
224:       end

Type of this field

result:* :boolean
  • :fixed
  • :hidden
  • :jid_multi
  • :jid_single
  • :list_multi
  • :list_single
  • :text_multi
  • :text_private
  • :text_single
  • nil

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 184
184:       def type
185:         case attributes['type']
186:           when 'boolean' then :boolean
187:           when 'fixed' then :fixed
188:           when 'hidden' then :hidden
189:           when 'jid-multi' then :jid_multi
190:           when 'jid-single' then :jid_single
191:           when 'list-multi' then :list_multi
192:           when 'list-single' then :list_single
193:           when 'text-multi' then :text_multi
194:           when 'text-private' then :text_private
195:           when 'text-single' then :text_single
196:           else nil
197:         end
198:       end

Set the type of this field (see type)

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 202
202:       def type=(t)
203:         case t
204:           when :boolean then attributes['type'] = 'boolean'
205:           when :fixed then attributes['type'] = 'fixed'
206:           when :hidden then attributes['type'] = 'hidden'
207:           when :jid_multi then attributes['type'] = 'jid-multi'
208:           when :jid_single then attributes['type'] = 'jid-single'
209:           when :list_multi then attributes['type'] = 'list-multi'
210:           when :list_single then attributes['type'] = 'list-single'
211:           when :text_multi then attributes['type'] = 'text-multi'
212:           when :text_private then attributes['type'] = 'text-private'
213:           when :text_single then attributes['type'] = 'text-single'
214:           else attributes['type'] = nil
215:         end
216:       end

Get the first value

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 257
257:       def value
258:         values.first
259:       end

Remove all and set one value

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 263
263:       def value=(val)
264:         self.values = [val]
265:       end

Get the values (in a Data Form with type=‘submit’)

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 238
238:       def values
239:         res = []
240:         each_element('value') { |e|
241:           res << e.text
242:         }
243:         res
244:       end

Set the values

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 248
248:       def values=(ary)
249:         delete_elements('value')
250:         ary.each { |v|
251:           add(REXML::Element.new('value')).text = v
252:         }
253:       end

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 162
162:       def var
163:         attributes['var']
164:       end

[Source]

     # File lib/xmpp4r/dataforms/x/data.rb, line 166
166:       def var=(s)
167:         attributes['var'] = s
168:       end

[Validate]