mofo 0.2.8 → 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
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: