class MusicalScore::Score::Identification::Encoding

Attributes

encoding_date[R]
encoding_description[R]
softwares[R]
supports[R]

Public Class Methods

create_by_hash(doc) click to toggle source
# File lib/musical_score/score/identification/encoding.rb, line 40
def self.create_by_hash(doc)
    encoding_date = Time.new
    if (doc.has_key?("encoding-date"))
        encoding_date = Time.parse(doc["encoding-date"][0])
    end
    encoding_description = doc.has_key?("encoding_description") ? doc["encoding_date"] : ''
    softwares = Array.new
    if doc.has_key?("software")
        doc["software"].each do |element|
            softwares.push(element)
        end
    end
    supports = Array.new
    doc["supports"].each do |element|
        if (element["type"] == "yes")
            supports.push(element["element"])
        end
    end
    return MusicalScore::Score::Identification::Encoding.new(encoding_date, encoding_description, softwares, supports)
end
create_by_xml(xml_doc) click to toggle source
# File lib/musical_score/score/identification/encoding.rb, line 19
def self.create_by_xml(xml_doc)

    encoding_date = Time.new
    if (xml_doc.elements["//encoding-date"])
        encoding_date = Time.parse(xml_doc.elements["//encoding-date"].text)
    end
    encoding_description = xml_doc.elements["//encoding-description"] ? xml_doc.elements["//encoding_description"].text : ''
    softwares = Array.new
    xml_doc.elements.each("//software") do |element|
        softwares.push(element.text)
    end
    supports = Array.new
    xml_doc.elements.each("//supports") do |element|
        if (element.attributes["type"] == "yes")
            supports.push(element.attributes["element"])
        end
    end
    return MusicalScore::Score::Identification::Encoding.new(encoding_date, encoding_description, softwares, supports)
end
new(encoding_date, encoding_description, softwares, supports) click to toggle source
# File lib/musical_score/score/identification/encoding.rb, line 11
def initialize(encoding_date, encoding_description, softwares, supports)
    @encoding_date        = encoding_date
    @encoding_description = encoding_description
    @softwares            = softwares
    @supports             = supports
end

Public Instance Methods

export_xml() click to toggle source
# File lib/musical_score/score/identification/encoding.rb, line 61
def export_xml
    encoding = REXML::Element.new('encoding')
    @softwares.each do |software|
        software_e = REXML::Element.new('software')
        software_e.add_text(software)
        encoding.add_element(software_e)
    end
    encoding_date = REXML::Element.new('encoding-date')
    encoding_date.add_text(@encoding_date.strftime("%Y-%m-%d"))
    encoding.add_element(encoding_date)
    @supports.each do |support|
        supports_e = REXML::Element.new('supports')
        supports_e.add_attribute('type','yes')
        supports_e.add_attribute('element',support)
        encoding.add_element(supports_e)
    end
    desc_e = REXML::Element.new('encoding-description')
    if (@encoding_description != '')
        desc_e.add_text(@encoding_description)
        encoding.add_element(desc_e)
    end

    return encoding
end