diff --git a/lib/microformats2.rb b/lib/microformats2.rb index 0315bee..ee39229 100644 --- a/lib/microformats2.rb +++ b/lib/microformats2.rb @@ -52,9 +52,9 @@ module Microformats2 def self.add_properties(mf, obj) %w(p n e i).each do |letter| - mf.css("*[class|=#{letter}]").each do |property| + mf.css("*[class*=#{letter}-]").each do |property| property.attribute("class").to_s.split.each do |css_class| - if css_class =~ /^[pnei]/ + if css_class[0..1] == "#{letter}-" css_class = css_class[2..-1].gsub("-","_") method_name = css_class.gsub("-","_") value = property.text.gsub(/\n+/, " ").gsub(/\s+/, " ").strip diff --git a/test/simple.html b/test/simple.html index 6aefbfe..714e942 100644 --- a/test/simple.html +++ b/test/simple.html @@ -6,7 +6,7 @@

- Chris + Chris R. Messina diff --git a/test/test_microformats2.rb b/test/test_microformats2.rb index 2bd141a..d8a254c 100644 --- a/test/test_microformats2.rb +++ b/test/test_microformats2.rb @@ -23,6 +23,11 @@ class TestMicroformats2 < Test::Unit::TestCase assert_equal HCard, result[:hcard].first.class assert_equal 2, result[:hcard].length end + + def test_extracts_name_from_tag_with_multiple_classes + result = Microformats2.parse(File.open(File.join(File.dirname(__FILE__), "simple.html"))) + assert_equal "Chris", result[:hcard].first.given_name + end def test_extracts_hcard_from_html hcard = <<-END