diff options
author | Brian Freese <brianfreese@hotmail.com> | 2013-02-28 15:36:24 -0600 |
---|---|---|
committer | Brian Freese <brianfreese@hotmail.com> | 2013-02-28 15:36:24 -0600 |
commit | 31beb18ad4cfe8c51a7b648e3019c345e786ad97 (patch) | |
tree | 6158b4a24b501cac2cead8edf8426f8e46c6ac7c | |
parent | 12eb82d283cab148183c37c07e3f75a309969dec (diff) | |
download | plist-31beb18ad4cfe8c51a7b648e3019c345e786ad97.tar.gz |
Fixed defect in PData in which exception was thrown when <data/> element was read from plist.
-rw-r--r-- | Rakefile | 5 | ||||
-rw-r--r-- | lib/plist/parser.rb | 3 | ||||
-rw-r--r-- | test/assets/test_data_elements.plist | 2 |
3 files changed, 6 insertions, 4 deletions
@@ -13,8 +13,8 @@ require 'rubygems' require 'rake' require 'rake/testtask' require 'rake/packagetask' -require 'rake/gempackagetask' require 'rake/contrib/rubyforgepublisher' +require 'rubygems/package_task' $:.unshift(File.dirname(__FILE__) + "/lib") require 'plist' @@ -146,8 +146,9 @@ EOD s.autorequire = 'plist' end -Rake::GemPackageTask.new(spec) do |p| +Gem::PackageTask.new(spec) do |p| p.gem_spec = spec p.need_tar = true p.need_zip = true end + diff --git a/lib/plist/parser.rb b/lib/plist/parser.rb index a3e551d..594cc36 100644 --- a/lib/plist/parser.rb +++ b/lib/plist/parser.rb @@ -210,8 +210,7 @@ module Plist require 'base64' class PData < PTag def to_ruby - data = Base64.decode64(text.gsub(/\s+/, '')) - + data = Base64.decode64(text.gsub(/\s+/, '')) unless text.nil? begin return Marshal.load(data) rescue Exception => e diff --git a/test/assets/test_data_elements.plist b/test/assets/test_data_elements.plist index 1e9da9d..7fdd161 100644 --- a/test/assets/test_data_elements.plist +++ b/test/assets/test_data_elements.plist @@ -20,5 +20,7 @@ <data>BAhvOhZNYXJzaGFsYWJsZU9iamVjdAY6CUBmb28iHnRoaXMgb2JqZWN0IHdh cyBtYXJzaGFsZWQ= </data> + <key>nodata</key> + <data/> </dict> </plist> |