Class: Jabber::Roster::RosterItem
- Inherits:
-
REXML::Element
- Object
- REXML::Element
- Jabber::Roster::RosterItem
- Defined in:
- lib/xmpp4r/roster/iq/roster.rb
Overview
Class containing the <item/> elements of the roster
The ‘name’ attribute has been renamed to ‘iname’ here as ‘name’ is already used by REXML::Element for the element’s name. It’s still name=‘…’ in XML.
Direct Known Subclasses
Class Method Summary collapse
-
.import(item) ⇒ Object
- Create new RosterItem from REXML::Element item
- REXML::Element
-
source element to copy attributes and children from.
Instance Method Summary collapse
-
#ask ⇒ Object
- Get if asking for subscription result
- Symbol
-
nil or :subscribe.
-
#ask=(val) ⇒ Object
- Set if asking for subscription val
- Symbol
-
nil or :subscribe.
-
#groups ⇒ Object
- Get groups the item belongs to result
- Array
-
of [String] The groups.
-
#groups=(ary) ⇒ Object
Set groups the item belongs to, deletes old groups first.
-
#iname ⇒ Object
Get name of roster item.
-
#iname=(val) ⇒ Object
- Set name of roster item val
- String
-
Name for this item.
-
#initialize(jid = nil, iname = nil, subscription = nil, ask = nil) ⇒ RosterItem
constructor
- Construct a new roster item jid
- JID
- Jabber ID iname
- String
- Name in the roster subscription
- Symbol
- Type of subscription (see RosterItem#subscription=) ask
- Symbol
-
or [Nil] Can be :subscribe.
-
#jid ⇒ Object
- Get JID of roster item Resource of the JID will not be stripped return
-
[JID].
-
#jid=(val) ⇒ Object
- Set JID of roster item val
- JID
-
or nil.
-
#subscription ⇒ Object
- Get subscription type of roster item result
- Symbol
-
or [Nil] The following values are valid according to RFC3921: * :both * :from * :none * :remove * :to.
-
#subscription=(val) ⇒ Object
- Set subscription type of roster item val
- Symbol
-
or [Nil] See subscription for possible Symbols.
Methods inherited from REXML::Element
#delete_elements, #first_element, #first_element_text, #import, #replace_element_text, #typed_add
Constructor Details
#initialize(jid = nil, iname = nil, subscription = nil, ask = nil) ⇒ RosterItem
Construct a new roster item
- jid
- JID
-
Jabber ID
- iname
- String
-
Name in the roster
- subscription
- Symbol
-
Type of subscription (see RosterItem#subscription=)
- ask
- Symbol
-
or [Nil] Can be :subscribe
115 116 117 118 119 120 121 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 115 def initialize(jid=nil, iname=nil, subscription=nil, ask=nil) super('item') self.jid = jid self.iname = iname self.subscription = subscription self.ask = ask end |
Class Method Details
.import(item) ⇒ Object
Create new RosterItem from REXML::Element
- item
- REXML::Element
-
source element to copy attributes and children from
126 127 128 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 126 def RosterItem.import(item) RosterItem::new.import(item) end |
Instance Method Details
#ask ⇒ Object
Get if asking for subscription
- result
- Symbol
-
nil or :subscribe
197 198 199 200 201 202 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 197 def ask case attributes['ask'] when 'subscribe' then :subscribe else nil end end |
#ask=(val) ⇒ Object
Set if asking for subscription
- val
- Symbol
-
nil or :subscribe
207 208 209 210 211 212 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 207 def ask=(val) case val when :subscribe then attributes['ask'] = 'subscribe' else attributes['ask'] = nil end end |
#groups ⇒ Object
Get groups the item belongs to
- result
- Array
-
of [String] The groups
217 218 219 220 221 222 223 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 217 def groups result = [] each_element('group') { |group| result.push(group.text) } result end |
#groups=(ary) ⇒ Object
Set groups the item belongs to, deletes old groups first.
See JEP 0083 for nested groups
- ary
- Array
-
New groups, duplicate values will be removed
231 232 233 234 235 236 237 238 239 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 231 def groups=(ary) # Delete old group elements delete_elements('group') # Add new group elements ary.uniq.each { |group| add_element('group').text = group } end |
#iname ⇒ Object
Get name of roster item
names can be set by the roster’s owner himself
- return
- String
135 136 137 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 135 def iname attributes['name'] end |
#iname=(val) ⇒ Object
Set name of roster item
- val
- String
-
Name for this item
142 143 144 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 142 def iname=(val) attributes['name'] = val end |
#jid ⇒ Object
Get JID of roster item Resource of the JID will not be stripped
- return
- JID
150 151 152 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 150 def jid (a = attributes['jid']) ? JID::new(a) : nil end |
#jid=(val) ⇒ Object
Set JID of roster item
- val
- JID
-
or nil
157 158 159 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 157 def jid=(val) attributes['jid'] = val.nil? ? nil : val.to_s end |
#subscription ⇒ Object
Get subscription type of roster item
- result
- Symbol
-
or [Nil] The following values are valid according to RFC3921:
-
:both
-
:from
-
:none
-
:remove
-
:to
169 170 171 172 173 174 175 176 177 178 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 169 def subscription case attributes['subscription'] when 'both' then :both when 'from' then :from when 'none' then :none when 'remove' then :remove when 'to' then :to else nil end end |
#subscription=(val) ⇒ Object
Set subscription type of roster item
- val
- Symbol
-
or [Nil] See subscription for possible Symbols
183 184 185 186 187 188 189 190 191 192 |
# File 'lib/xmpp4r/roster/iq/roster.rb', line 183 def subscription=(val) case val when :both then attributes['subscription'] = 'both' when :from then attributes['subscription'] = 'from' when :none then attributes['subscription'] = 'none' when :remove then attributes['subscription'] = 'remove' when :to then attributes['subscription'] = 'to' else attributes['subscription'] = nil end end |