Class Jabber::UserTune::Tune
In: lib/xmpp4r/tune/tune.rb
Parent: XMPPElement
Message Presence XMPPStanza Iq XMPPElement ErrorResponse X IqQuery JabberError ComponentAuthenticationFailure ArgumentError SOCKS5Error ServerError NoNameXmlnsRegistered ClientAuthenticationFailure Connection Client Component Client Singleton IdGenerator Comparable JID StandardError REXML::Element Stream IqQuery IqQueryVersion IqQueryRoster IqQueryBytestreams IqQueryRPC IqQueryMUCOwner IqQueryMUCAdmin IqQueryDiscoItems IqQueryDiscoInfo Responder SimpleResponder XRosterItem RosterXItem XMPPElement RosterItem IqFeature StreamHost IqSiFile IqSiFileRange IqSi StreamHostUsed C Body HTML UserItem XMUCUserInvite Tune Configuration Items Item IqPubSub Publish Event IqPubSubOwner Subscription Unsubscribe Feature Item Identity XDataField XDataReported XDataTitle XDataInstructions IqVcard XRoster RosterX X XMUC XMUCUser XDelay XData Iq IqCommand SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IBB IBBTarget IBBInitiator XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer MUCClient SimpleMUCClient MUC::UserItem XMUCUserItem IqQueryMUCAdminItem XParent Base Anonymous DigestMD5 Plain PubSub::ServiceHelper Helper SubscriptionConfig NodeConfig OwnerNodeConfig EventItems EventItem ServiceHelper NodeHelper FileSource Base Bot CallbackList Callback StreamParser Semaphore Helper Responder SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper MUCBrowser NodeBrowser Responder Helper Helper lib/xmpp4r/message.rb lib/xmpp4r/connection.rb lib/xmpp4r/xmppstanza.rb lib/xmpp4r/iq.rb lib/xmpp4r/callbacks.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/stream.rb lib/xmpp4r/client.rb lib/xmpp4r/jid.rb lib/xmpp4r/x.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/semaphore.rb lib/xmpp4r/errors.rb lib/xmpp4r/component.rb lib/xmpp4r/presence.rb lib/xmpp4r/xmppelement.rb lib/xmpp4r/query.rb XParent lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb lib/xmpp4r/version/iq/version.rb Version lib/xmpp4r/roster/x/roster.rb lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb Roster lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/bytestreams/iq/si.rb lib/xmpp4r/bytestreams/helper/ibb/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb lib/xmpp4r/bytestreams/iq/bytestreams.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb lib/xmpp4r/bytestreams/helper/ibb/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb lib/xmpp4r/bytestreams/helper/ibb/base.rb Bytestreams lib/xmpp4r/caps/helper/helper.rb lib/xmpp4r/caps/c.rb Caps lib/xmpp4r/xhtml/html.rb XHTML lib/xmpp4r/rpc/helper/server.rb lib/xmpp4r/rpc/helper/client.rb lib/xmpp4r/rpc/iq/rpc.rb RPC lib/xmpp4r/muc/iq/mucadminitem.rb lib/xmpp4r/muc/x/muc.rb lib/xmpp4r/muc/item.rb lib/xmpp4r/muc/helper/simplemucclient.rb lib/xmpp4r/muc/iq/mucadmin.rb lib/xmpp4r/muc/helper/mucbrowser.rb lib/xmpp4r/muc/x/mucuseritem.rb lib/xmpp4r/muc/x/mucuserinvite.rb lib/xmpp4r/muc/iq/mucowner.rb lib/xmpp4r/muc/helper/mucclient.rb MUC lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/sasl.rb SASL lib/xmpp4r/tune/helper/helper.rb lib/xmpp4r/tune/tune.rb UserTune lib/xmpp4r/pubsub/children/item.rb lib/xmpp4r/pubsub/children/configuration.rb lib/xmpp4r/pubsub/children/subscription.rb lib/xmpp4r/pubsub/helper/servicehelper.rb lib/xmpp4r/pubsub/children/unsubscribe.rb lib/xmpp4r/pubsub/children/publish.rb lib/xmpp4r/pubsub/children/event.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/helper/nodebrowser.rb lib/xmpp4r/pubsub/helper/nodehelper.rb lib/xmpp4r/pubsub/children/items.rb lib/xmpp4r/pubsub/children/subscription_config.rb lib/xmpp4r/pubsub/children/node_config.rb PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/helper/responder.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard lib/xmpp4r/framework/base.rb lib/xmpp4r/framework/bot.rb Framework Jabber dot/m_99_0.png

The <tune> XMPP element, as defined in XEP-0118 User Tune

See www.xmpp.org/extensions/xep-0118.html - this element encapsulates metadata (artist, track etc) about a tune the user is currently playing. These are expressed as child elements such as <artist>, <title> etc which are also managed by this class.

If the element has no children then it indicates that the user has stopped playing a tune. Use the Tune#playing? method to discover this?

Methods

artist   length   new   playing?   rating   source   title   track   uri  

Public Class methods

Construct a new <tune> element.

Supply no arguments to make an empty element to indicate that tune playing has stopped.

artist:[String] the artist or performer of the song or piece
title:[String] the title of the song or piece
length:[Fixnum] the duration of the song or piece in seconds
track:[String] a unique identifier for the tune; e.g., the track number within a collection or the specific URI for the object (e.g., a stream or audio file)
source:[String] the collection (e.g., album) or other source (e.g., a band website that hosts streams or audio files)
uri:[String] a URI or URL pointing to information about the song, collection, or artist
rating:[Numeric] a number indicating how much you like this song - will be clamped into an integer 0 <= x <= 10

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 40
40:       def initialize(artist = nil, title = nil, length = nil, track = nil, source = nil, uri = nil, rating = nil)
41:         super()
42: 
43:         add_element(REXML::Element.new('artist')).text = artist if artist
44: 
45:         add_element(REXML::Element.new('title')).text = title if title
46: 
47:         add_element(REXML::Element.new('length')).text = length.to_s if length
48: 
49:         add_element(REXML::Element.new('track')).text = track if track
50: 
51:         add_element(REXML::Element.new('source')).text = source if source
52: 
53:         add_element(REXML::Element.new('uri')).text = uri if uri
54: 
55:         if rating and rating.kind_of?(Numeric)
56:           r = rating.to_i
57:           r = 0 if r < 0
58:           r = 10 if r > 10
59:           add_element(REXML::Element.new('rating')).text = r.to_s
60:         end
61:       end

Public Instance methods

Get the artist for this tune.

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 72
72:       def artist
73:         first_element('artist').text if first_element('artist')
74:       end

Get the length of this tune, in seconds.

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 84
84:       def length
85:         first_element('length').text.to_i if first_element('length')
86:       end

Returns true if a tune is currently playing, otherwise false.

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 66
66:       def playing?
67:         (elements.size > 0)
68:       end

Get the rating for this track

[Source]

     # File lib/xmpp4r/tune/tune.rb, line 108
108:       def rating
109:         first_element('rating').text.to_i if first_element('rating')
110:       end

Get the source of this tune, such as an album.

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 96
96:       def source
97:         first_element('source').text if first_element('source')
98:       end

Get the title of this tune.

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 78
78:       def title
79:         first_element('title').text  if first_element('title')
80:       end

Get an identitier for this tune.

[Source]

    # File lib/xmpp4r/tune/tune.rb, line 90
90:       def track
91:         first_element('track').text if first_element('track')
92:       end

Get a URI that represents this tune.

[Source]

     # File lib/xmpp4r/tune/tune.rb, line 102
102:       def uri
103:         first_element('uri').text if first_element('uri')
104:       end

[Validate]