Class Jabber::UserTune::Tune
In: lib/xmpp4r/tune/tune.rb
Parent: XMPPElement
Message Presence XMPPStanza Iq XMPPElement ErrorResponse X IqQuery JabberError ComponentAuthenticationFailure ArgumentError InvalidChatState SOCKS5Error ServerError NoNameXmlnsRegistered ServerDisconnected ClientAuthenticationFailure Connection Client Component Connection Client Singleton IdGenerator Comparable JID Enumerable CallbackList Items Publish StandardError REXML::Element Stream XMPPElement Location IqFeature StreamHost IqSiFile IqSiFileRange IqSi StreamHostUsed XRosterItem RosterItem C Body HTML UserItem XMUCUserInvite Configuration Retract IqPubSub Item IqPubSubOwner Event Subscription Unsubscribe Tune XDataField XDataReported XDataTitle XDataInstructions Feature Item Identity IqVcard PubSub::ServiceHelper Helper Helper SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IqQuery IqQueryBytestreams IqQueryRoster IqQueryVersion IqQueryRPC IqQueryMUCOwner IqQueryMUCAdmin IqQueryDiscoItems IqQueryDiscoInfo IqQueryLastActivity IBB IBBTarget IBBInitiator RosterXItem XRoster RosterX X XDelay XMUC XMUCUser XData Responder SimpleResponder Iq IqCommand XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer MUCClient SimpleMUCClient MUC::UserItem XMUCUserItem IqQueryMUCAdminItem XParent SubscriptionConfig NodeConfig OwnerNodeConfig EventItems ServiceHelper OAuthServiceHelper NodeHelper EventItem Base Anonymous DigestMD5 Plain FileSource Base Bot Callback StreamParser Semaphore SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper Responder Helper Listener MUCBrowser NodeBrowser ListenerMocker Helper Responder Helper 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/location/helper/helper.rb lib/xmpp4r/location/location.rb UserLocation lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation 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/roster/x/roster.rb lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb Roster lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb lib/xmpp4r/version/iq/version.rb Version lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/caps/helper/helper.rb lib/xmpp4r/caps/c.rb Caps lib/xmpp4r/reliable.rb Reliable lib/xmpp4r/delay/x/delay.rb Delay 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/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/helper/oauth_service_helper.rb lib/xmpp4r/pubsub/children/event.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/children/retract.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 OAuthPubSubStreamHelper PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/tune/helper/helper.rb lib/xmpp4r/tune/tune.rb UserTune lib/xmpp4r/sasl.rb SASL lib/xmpp4r/test/listener_mocker.rb Test lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/discovery/helper/helper.rb lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/helper/responder.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/last/helper/helper.rb lib/xmpp4r/last/iq/last.rb LastActivity lib/xmpp4r/framework/base.rb lib/xmpp4r/framework/bot.rb Framework lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard Jabber dot/m_110_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]