class UpnpContentExplorer::Item

Public Class Methods

new(xml_node) click to toggle source
# File lib/upnp_content_explorer/item.rb, line 3
def initialize(xml_node)
  @xml_node = xml_node
  @props = {}

  %w{id parentID restricted}.each do |m|
    define_singleton_method(m) { extract_xpath("@#{m}") }
  end

  %w{title class date}.each do |m|
    define_singleton_method(m) { extract_xpath("#{m}") }
  end

  @metadata = {}
  %w{
    size duration bitrate sampleFrequency nrAudioChannels resolution
    protocolInfo
  }.each do |m|
    v = extract_xpath("res/@#{m}")
    @metadata[m.to_sym] = v
    define_singleton_method(m) { v }
  end

  @metadata[:url] = extract_xpath('res')
  @metadata[:itemClass] = extract_xpath('class')

  %w{url itemClass}.each do |m|
    define_singleton_method(m) { @metadata[m.to_sym] }
  end
end

Public Instance Methods

metadata() click to toggle source
# File lib/upnp_content_explorer/item.rb, line 33
def metadata
  {}.merge(@metadata)
end

Private Instance Methods

extract_xpath(xpath) click to toggle source
# File lib/upnp_content_explorer/item.rb, line 38
def extract_xpath(xpath)
  @xml_node.xpath(xpath).text
end