From fb7cc7f2eb791b947b1e384b3147ad0ebe5fa664 Mon Sep 17 00:00:00 2001 From: Jessica Lynn Suttles Date: Thu, 14 Feb 2013 14:24:05 -0800 Subject: [PATCH] adds more tests from microformats wiki --- lib/microformats2/format.rb | 2 +- lib/microformats2/property/date_time.rb | 16 ++++++++++++++-- lib/microformats2/property/foundation.rb | 2 +- .../{unimplemented => }/microformats-2-0.html | 0 .../{unimplemented => }/microformats-2-0.js | 0 .../{unimplemented => }/microformats-2-1.html | 0 .../{unimplemented => }/microformats-2-1.js | 0 .../{unimplemented => }/microformats-2-6.html | 0 .../{unimplemented => }/microformats-2-6.js | 0 .../{unimplemented => }/microformats-2-7.html | 0 .../{unimplemented => }/microformats-2-7.js | 0 11 files changed, 16 insertions(+), 4 deletions(-) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-0.html (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-0.js (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-1.html (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-1.js (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-6.html (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-6.js (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-7.html (100%) rename spec/support/cases/microformats.org/microformats-2/{unimplemented => }/microformats-2-7.js (100%) diff --git a/lib/microformats2/format.rb b/lib/microformats2/format.rb index 6bfbbc3..ca443d6 100644 --- a/lib/microformats2/format.rb +++ b/lib/microformats2/format.rb @@ -37,8 +37,8 @@ module Microformats2 def parse_implied_properties ip = [] ip << ImpliedProperty::Name.new(@element).parse unless property_present?(:name) - ip << ImpliedProperty::Photo.new(@element).parse unless property_present?(:photo) ip << ImpliedProperty::Url.new(@element).parse unless property_present?(:url) + ip << ImpliedProperty::Photo.new(@element).parse unless property_present?(:photo) ip.compact.each do |property| save_property_name(property.method_name) define_method(property.method_name) diff --git a/lib/microformats2/property/date_time.rb b/lib/microformats2/property/date_time.rb index d304fc0..c95576e 100644 --- a/lib/microformats2/property/date_time.rb +++ b/lib/microformats2/property/date_time.rb @@ -2,9 +2,21 @@ module Microformats2 module Property class DateTime < Foundation def value - ::DateTime.parse(super) + ::DateTime.parse(string_value) rescue ArgumentError => e - super + string_value + end + + def string_value + @string_value ||= value_class_pattern || element_value || text_value + end + + def to_hash + if formats.empty? + string_value.to_s + else + { value: string_value.to_s }.merge(formats.first.to_hash) + end end protected diff --git a/lib/microformats2/property/foundation.rb b/lib/microformats2/property/foundation.rb index 2e38713..71f37f7 100644 --- a/lib/microformats2/property/foundation.rb +++ b/lib/microformats2/property/foundation.rb @@ -41,7 +41,7 @@ module Microformats2 end def element_value - @element.attribute(attribute).to_s if attribute + @element.attribute(attribute).to_s if attribute && @element.attribute(attribute) end def text_value diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-0.html b/spec/support/cases/microformats.org/microformats-2/microformats-2-0.html similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-0.html rename to spec/support/cases/microformats.org/microformats-2/microformats-2-0.html diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-0.js b/spec/support/cases/microformats.org/microformats-2/microformats-2-0.js similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-0.js rename to spec/support/cases/microformats.org/microformats-2/microformats-2-0.js diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-1.html b/spec/support/cases/microformats.org/microformats-2/microformats-2-1.html similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-1.html rename to spec/support/cases/microformats.org/microformats-2/microformats-2-1.html diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-1.js b/spec/support/cases/microformats.org/microformats-2/microformats-2-1.js similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-1.js rename to spec/support/cases/microformats.org/microformats-2/microformats-2-1.js diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-6.html b/spec/support/cases/microformats.org/microformats-2/microformats-2-6.html similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-6.html rename to spec/support/cases/microformats.org/microformats-2/microformats-2-6.html diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-6.js b/spec/support/cases/microformats.org/microformats-2/microformats-2-6.js similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-6.js rename to spec/support/cases/microformats.org/microformats-2/microformats-2-6.js diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-7.html b/spec/support/cases/microformats.org/microformats-2/microformats-2-7.html similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-7.html rename to spec/support/cases/microformats.org/microformats-2/microformats-2-7.html diff --git a/spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-7.js b/spec/support/cases/microformats.org/microformats-2/microformats-2-7.js similarity index 100% rename from spec/support/cases/microformats.org/microformats-2/unimplemented/microformats-2-7.js rename to spec/support/cases/microformats.org/microformats-2/microformats-2-7.js