plist 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/plist.rb +19 -5
- data/test_plist.rb +7 -1
- metadata +2 -2
data/plist.rb
CHANGED
@@ -3,10 +3,15 @@
|
|
3
3
|
|
4
4
|
# Plist parses Mac OS X xml property list files into ruby data structures.
|
5
5
|
#
|
6
|
-
# Note
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
6
|
+
# Note that I don't use these two elements much:
|
7
|
+
#
|
8
|
+
# + Date elements are returned as Time objects.
|
9
|
+
# + Data elements are not yet implemented.
|
10
|
+
#
|
11
|
+
# Plist::parse_xml will blow up if it encounters a data element.
|
12
|
+
# If you encounter such an error, or if you have a Date element which
|
13
|
+
# can't be parsed into a Time object, please send your plist file to
|
14
|
+
# patrick@hexane.org so that I can implement the proper support.
|
10
15
|
#
|
11
16
|
# The main point of this api is one method: Plist::parse_xml( filename )
|
12
17
|
class Plist
|
@@ -20,6 +25,8 @@ class Plist
|
|
20
25
|
end
|
21
26
|
|
22
27
|
class Listener
|
28
|
+
#include REXML::StreamListener
|
29
|
+
|
23
30
|
attr_accessor :result, :open
|
24
31
|
|
25
32
|
def initialize
|
@@ -27,7 +34,6 @@ class Plist
|
|
27
34
|
@open = Array.new
|
28
35
|
end
|
29
36
|
|
30
|
-
#include REXML::StreamListener
|
31
37
|
|
32
38
|
def tag_start(name, attributes)
|
33
39
|
@open.push PTag::mappings[name].new
|
@@ -175,4 +181,12 @@ class Plist
|
|
175
181
|
text.to_f
|
176
182
|
end
|
177
183
|
end
|
184
|
+
|
185
|
+
require 'time'
|
186
|
+
class PDate < PTag
|
187
|
+
def to_ruby
|
188
|
+
Time.parse(text)
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
178
192
|
end
|
data/test_plist.rb
CHANGED
@@ -48,9 +48,15 @@ class TestPlist < Test::Unit::TestCase
|
|
48
48
|
end
|
49
49
|
|
50
50
|
#def test_load_something_big
|
51
|
-
# plist = Plist::parse_xml( "
|
51
|
+
# plist = Plist::parse_xml( "~/Pictures/iPhoto Library/AlbumData.xml" )
|
52
52
|
#end
|
53
53
|
|
54
|
+
def test_date_fields
|
55
|
+
result = Plist::parse_xml("Cookies.plist")
|
56
|
+
assert_kind_of( Time, result.first['Expires'] )
|
57
|
+
assert_equal( "Thu Oct 25 12:36:35 UTC 2007", result.first['Expires'].to_s )
|
58
|
+
end
|
59
|
+
|
54
60
|
end
|
55
61
|
|
56
62
|
__END__
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11.3
|
|
3
3
|
specification_version: 1
|
4
4
|
name: plist
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.
|
7
|
-
date: 2006-
|
6
|
+
version: 1.1.0
|
7
|
+
date: 2006-04-27 00:00:00 -04:00
|
8
8
|
summary: plist parses Mac OS X plist files into ruby data types.
|
9
9
|
require_paths:
|
10
10
|
- "."
|