mofo 0.2.8 → 0.2.9

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/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
- version = '0.2.8'
4
+ version = '0.2.9'
5
5
 
6
6
  ENV['RUBY_FLAGS'] = ""
7
7
 
data/lib/microformat.rb CHANGED
@@ -16,7 +16,7 @@ class Microformat
16
16
  @options ||= target.is_a?(Hash) ? target : {}
17
17
  [:first, :all].each { |key| target = @options[key] if @options[key] }
18
18
 
19
- extract_base_url! target, @options
19
+ extract_base_url! target
20
20
 
21
21
  @doc = build_doc(@options[:text] ? @options : target)
22
22
 
@@ -270,7 +270,7 @@ class Microformat
270
270
  when 'a' then element['href']
271
271
  when 'object' then element['value']
272
272
  end
273
- url[/^http/] ? url : @base_url.to_s + url if url.respond_to?(:[])
273
+ url[/^http/] ? url : @options[:base_url].to_s + url if url.respond_to?(:[])
274
274
  elsif target.is_a? Array
275
275
  target.inject(nil) do |found, klass|
276
276
  klass = klass.respond_to?(:find) ? klass : nil
@@ -278,7 +278,7 @@ class Microformat
278
278
  found || parse_element(element, klass)
279
279
  end
280
280
  elsif target.is_a? Class
281
- target.find({:first => element}.merge(@options))
281
+ target.find(@options.merge(:first => element))
282
282
  else
283
283
  value = case element.name
284
284
  when 'abbr' then element['title']
@@ -293,10 +293,9 @@ class Microformat
293
293
  value.is_a?(Hash) ? OpenStruct.new(value) : value
294
294
  end
295
295
 
296
- def extract_base_url!(target, options)
297
- @base_url = nil
298
- @base_url ||= options[:base] || options[:url]
299
- @base_url ||= target[/^(http:\/\/[^\/]+)/] if target.respond_to?(:scan)
296
+ def extract_base_url!(target)
297
+ @options[:base_url] ||= @options[:base] || @options[:url]
298
+ @options[:base_url] ||= target[/^(http:\/\/[^\/]+)/] if target.respond_to?(:scan)
300
299
  end
301
300
  end
302
301
 
@@ -9,11 +9,11 @@ class Microformat
9
9
  end
10
10
 
11
11
  def self.find_occurences(doc)
12
- @from ? doc/from_as_xpath : super(doc)
12
+ @from ? doc/from_as_xpath : super
13
13
  end
14
14
 
15
15
  def self.build_class(tag)
16
- new(tag.innerText)
16
+ new(tag.innerText || '')
17
17
  end
18
18
 
19
19
  def self.from(options)
data/lib/mofo/adr.rb CHANGED
@@ -1,9 +1,10 @@
1
1
  # => http://microformats.org/wiki/adr
2
2
  require 'microformat'
3
+ require 'microformat/simple'
3
4
 
4
5
  class Adr < Microformat
5
6
  one :post_office_box, :extended_address, :street_address,
6
- :locality, :region, :postal_code, :country_name, :value
7
+ :locality, :region, :country_name, :value, :postal_code => Simple
7
8
 
8
9
  many :type
9
10
  end
@@ -58,6 +58,9 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
58
58
  Cell: <span class="tel"><span class="type" style="display:none;">cell</span> <span class="value">707-555-4756</span></span><br>
59
59
 
60
60
 
61
+ <div class="adr">
62
+ Zip: <span class="postal-code">01234</span>
63
+ </div>
61
64
 
62
65
 
63
66
  </div><!-- /vcard -->
data/test/hcard_test.rb CHANGED
@@ -102,6 +102,10 @@ context "The parsed Bob hCard object" do
102
102
  $bob.n.family_name.should.equal 'Smith'
103
103
  end
104
104
 
105
+ specify "should have a valid postal code" do
106
+ $bob.adr.postal_code.should.equal '01234'
107
+ end
108
+
105
109
  specify "should have a valid url" do
106
110
  $bob.url.should.equal "http://nubhub.com/bob"
107
111
  end
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: mofo
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.8
6
+ version: 0.2.9
7
7
  date: 2007-08-03 00:00:00 -07:00
8
8
  summary: mofo is a ruby microformat parser
9
9
  require_paths: