Module: KBL::Serializable::Package

Included in:
Package
Defined in:
lib/kbl/serializable/package.rb

Instance Method Summary collapse

Instance Method Details

#to_kblObject



3
4
5
6
7
8
9
# File 'lib/kbl/serializable/package.rb', line 3

def to_kbl
  to_kbl_node.to_xml({
    :encoding => 'UTF-8',
    :indent => 2,
    :indent_text => " "
  }).gsub(/<(.+)\/>/, '<\1></\1>')
end

#to_kbl_nodeObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/kbl/serializable/package.rb', line 11

def to_kbl_node
  doc = Nokogiri::XML.parse("    <utf-8_data><kkbox_package></kkbox_package></utf-8_data>\n  XML\n\n  package_node = doc.css(\"kkbox_package\").first\n\n  package_node << \"<kkbox_ver>\#{self.kkbox_version}</kkbox_ver>\"\n\n  @playlists.each do |playlist|\n    package_node << playlist.to_kbl_node\n  end\n\n  package_node << Nokogiri::XML.parse(<<-XML, nil, nil, Nokogiri::XML::ParseOptions::NOBLANKS).root\n    <package>\n      <ver>1.0</ver>\n      <descr>\u5305\u88DD\u8AAA\u660E</descr>\n      <packdate>\#{ self.date.strftime(\"%Y%m%d%H%M%S\") }</packdate>\n      <playlistcnt>\#{ self.playlists.size }</playlistcnt>\n      <songcnt>\#{ self.total_songs }</songcnt>\n    </package>\n  XML\n\n  doc.root\nend\n", nil, nil, Nokogiri::XML::ParseOptions::NOBLANKS)