lib/blather/stanza/iq/roster.rb in blather-0.2 vs lib/blather/stanza/iq/roster.rb in blather-0.2.1

- old
+ new

@@ -3,14 +3,13 @@ class Iq class Roster < Query register :roster, nil, 'jabber:iq:roster' - def self.new(type = nil, item = nil) - elem = super(type) - elem.query << item if item - elem + def initialize(type = nil, item = nil) + super(type) + query << item if item end def inherit(node) items.each { |i| i.remove! } @items = nil @@ -23,67 +22,62 @@ def items query.find('item')#.map { |g| RosterItem.new g } end class RosterItem < XMPPNode - def self.new(jid = nil, name = nil, subscription = nil, ask = nil) - elem = super('item') + def initialize(jid = nil, name = nil, subscription = nil, ask = nil) + super('item') if jid.is_a?(XML::Node) - elem.inherit jid + self.inherit jid else - elem.jid = jid - elem.name = name - elem.subscription = subscription - elem.ask = ask + self.jid = jid + self.name = name + self.subscription = subscription + self.ask = ask end - elem end def jid - (j = self['jid']) ? JID.new(j) : nil + (j = attributes['jid']) ? JID.new(j) : nil end def jid=(jid) - attributes.remove :jid - self['jid'] = jid.to_s if jid + attributes['jid'] = jid end def name - self['name'] + attributes['name'] end def name=(name) - attributes.remove :name - self['name'] = name if name + attributes['name'] = name end def subscription - self['subscription'].to_sym if self['subscription'] + attributes['subscription'].to_sym if attributes['subscription'] end def subscription=(subscription) - attributes.remove :subscription - self['subscription'] = subscription.to_s if subscription + attributes['subscription'] = subscription end def ask - self['ask'].to_sym if self['ask'] + attributes['ask'].to_sym if attributes['ask'] end def ask=(ask) - attributes.remove :ask - self['ask'] = ask if ask + attributes['ask'] = ask end def groups @groups ||= find('group').map { |g| g.content } end def groups=(grps) find('group').each { |g| g.remove! } @groups = nil - grps.uniq.each { |g| add_node XML::Node.new('group', g.to_s) } if grps + grps.uniq.each { |g| add_node XMPPNode.new('group', g.to_s) } if grps end def to_stanza Roster.new(:set, self) end \ No newline at end of file