lib/blather/stanza/x.rb in blather-0.4.14 vs lib/blather/stanza/x.rb in blather-0.4.15
- old
+ new
@@ -148,10 +148,11 @@
t << title
end
end
class Field < XMPPNode
+ register :field, 'jabber:x:data'
VALID_TYPES = [:boolean, :fixed, :hidden, :"jid-multi", :"jid-single", :"list-multi", :"list-single", :"text-multi", :"text-private", :"text-single"].freeze
# Create a new X Field
# @overload new(node)
# Imports the XML::Node to create a Field object
@@ -290,11 +291,15 @@
# Get the field's required flag
#
# @param [true, false]
def required?
- !self.find_first('required').nil?
+ if self.namespace
+ !self.find_first('ns:required', :ns => self.namespace.href).nil?
+ else
+ !self.find_first('required').nil?
+ end
end
# Set the field's required flag
#
# @param [true, false] required the field's required flag
@@ -305,11 +310,15 @@
# Extract list of option objects
#
# @return [Blather::Stanza::X::Field::Option]
def options
- self.find(:option).map { |f| Option.new(f) }
+ if self.namespace
+ self.find('ns:option', :ns => self.namespace.href)
+ else
+ self.find('option')
+ end.map { |f| Option.new(f) }
end
# Add an array of options to field
# @param options the array of options, passed directly to Option.new
def options=(options)
@@ -327,9 +336,10 @@
![:type, :var, :label, :desc, :required?, :value].detect { |m| o.send(m) != self.send(m) }
end
alias_method :==, :eql?
class Option < XMPPNode
+ register :option, 'jabber:x:data'
# Create a new X Field Option
# @overload new(node)
# Imports the XML::Node to create a Field option object
# @param [XML::Node] node the node object to import
# @overload new(opts = {})