microdata 0.0.1 → 0.0.2
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/Gemfile +4 -0
- data/lib/microdata/item.rb +14 -0
- data/lib/microdata/version.rb +1 -1
- data/test/data/example_itemref.html +16 -0
- data/test/test_helper.rb +2 -1
- data/test/test_itemref.rb +19 -0
- metadata +6 -2
data/Gemfile
CHANGED
data/lib/microdata/item.rb
CHANGED
@@ -8,6 +8,7 @@ module Microdata
|
|
8
8
|
@id = extract_itemid
|
9
9
|
@properties = {}
|
10
10
|
@page_url = page_url
|
11
|
+
add_itemref_properties(@top_node)
|
11
12
|
parse_elements(extract_elements(@top_node))
|
12
13
|
end
|
13
14
|
|
@@ -61,5 +62,18 @@ module Microdata
|
|
61
62
|
properties.each { |name, value| (@properties[name] ||= []) << value }
|
62
63
|
end
|
63
64
|
|
65
|
+
# Add any properties referred to by 'itemref'
|
66
|
+
def add_itemref_properties(element)
|
67
|
+
itemref = element.attribute('itemref')
|
68
|
+
if itemref
|
69
|
+
itemref.value.split(' ').each {|id| parse_elements(find_with_id(id))}
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# Find an element with a matching id
|
74
|
+
def find_with_id(id)
|
75
|
+
@top_node.search("//*[@id='#{id}']")
|
76
|
+
end
|
77
|
+
|
64
78
|
end
|
65
79
|
end
|
data/lib/microdata/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>itemref example from Microdata spec</title>
|
5
|
+
</head>
|
6
|
+
|
7
|
+
<body>
|
8
|
+
<div itemscope id="amanda" itemref="a b"></div>
|
9
|
+
<p id="a">Name: <span itemprop="name">Amanda</span></p>
|
10
|
+
<div id="b" itemprop="band" itemscope itemref="c"></div>
|
11
|
+
<div id="c">
|
12
|
+
<p>Band: <span itemprop="name">Jazz Band</span></p>
|
13
|
+
<p>Size: <span itemprop="size">12</span> players</p>
|
14
|
+
</div>
|
15
|
+
</body>
|
16
|
+
</html>
|
data/test/test_helper.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestItemref < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@items = Microdata.get_items('test/data/example_itemref.html')
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_top_item_name
|
10
|
+
assert_equal ['Amanda'], @items.first.properties['name']
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_band_name_and_size
|
14
|
+
band = @items.first.properties['band'].first
|
15
|
+
assert_equal ['Jazz Band'], band.properties['name']
|
16
|
+
assert_equal ['12'], band.properties['size']
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: microdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -80,7 +80,9 @@ files:
|
|
80
80
|
- lib/microdata/version.rb
|
81
81
|
- microdata.gemspec
|
82
82
|
- test/data/example.html
|
83
|
+
- test/data/example_itemref.html
|
83
84
|
- test/test_helper.rb
|
85
|
+
- test/test_itemref.rb
|
84
86
|
- test/test_parse.rb
|
85
87
|
homepage: ''
|
86
88
|
licenses:
|
@@ -109,6 +111,8 @@ specification_version: 3
|
|
109
111
|
summary: Ruby library for extracting HTML5 Microdata
|
110
112
|
test_files:
|
111
113
|
- test/data/example.html
|
114
|
+
- test/data/example_itemref.html
|
112
115
|
- test/test_helper.rb
|
116
|
+
- test/test_itemref.rb
|
113
117
|
- test/test_parse.rb
|
114
118
|
has_rdoc:
|