get the underlying XData form element
# File lib/xmpp4r/pubsub/children/configuration.rb, line 14 def form children.each do |c| return c if c.kind_of?(Jabber::Dataforms::XData) end nil end
# File lib/xmpp4r/pubsub/children/configuration.rb, line 22 def form=(form) children.each do |c| delete_element(c) if c.kind_of?(Jabber::Dataforms::XData) delete(c) end end add(form) end
Implemented by NodeConfig and SubscriptionConfig
# File lib/xmpp4r/pubsub/children/configuration.rb, line 33 def form_type '' end
# File lib/xmpp4r/pubsub/children/configuration.rb, line 62 def node attributes['node'] end
# File lib/xmpp4r/pubsub/children/configuration.rb, line 58 def node=(node) attributes['node'] = node end
get a list of the configured options represented by this stanza
the options and their values
# File lib/xmpp4r/pubsub/children/configuration.rb, line 46 def options configured_options = {} if !form.nil? form.fields.each do |f| f.values.size == 1 ? configured_options[f.var] = f.values.first : configured_options[f.var] = f.values end end configured_options end
# File lib/xmpp4r/pubsub/children/configuration.rb, line 37 def options=(options) if options self.form = form_for_options( form_type, options ) end end
creates a Dataform for configuration
the desired configuration options
# File lib/xmpp4r/pubsub/children/configuration.rb, line 71 def form_for_options(type, options) form = Jabber::Dataforms::XData.new(:submit) pubsub_config = Jabber::Dataforms::XDataField.new('FORM_TYPE', :hidden) pubsub_config.values = [type] form.add(pubsub_config) options.each_pair do |key, value| f = Jabber::Dataforms::XDataField.new(key) f.values = value.is_a?(Array) ? value : [value] form.add(f) end form end