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 = {})