mofo 0.2.6 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ = 0.2.7
2
+ - Added Microformat.timeout = accessor for controlling how long you wanna wait.
3
+
1
4
  = 0.2.6
2
5
  - Added rel-license [Mark Murphy]
3
6
  - Performance optimization [Mark Murphy]
data/Rakefile CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
- version = '0.2.6'
5
- svn_repo = 'svn+ssh://chris@errtheblog.com/svn/projects/mofo'
4
+ version = '0.2.8'
5
+
6
+ ENV['RUBY_FLAGS'] = ""
6
7
 
7
8
  begin
8
9
  require 'echoe'
@@ -22,11 +23,3 @@ rescue LoadError => boom
22
23
  puts "You are missing a dependency required for meta-operations on this gem."
23
24
  puts "#{boom.to_s.capitalize}."
24
25
  end
25
-
26
- desc "Tag the current trunk with the current release version"
27
- task :tag do
28
- warn "WARNING: this will tag #{svn_repo}/trunk using the tag REL_#{version.gsub!('.','_')}"
29
- warn "If you do not wish to continue, you have 5 seconds to cancel by pressing CTRL-C..."
30
- 5.times { |i| print "#{5-i} "; $stdout.flush; sleep 1 }
31
- system %[svn copy #{svn_repo}/trunk #{svn_repo}/tags/REL_#{version} -m "Tagging the #{version} release"]
32
- end
data/lib/microformat.rb CHANGED
@@ -4,6 +4,7 @@ gem 'hpricot', '>=0.4.59'
4
4
  class Microformat
5
5
  module Base
6
6
  @@subclasses = Set.new
7
+ @@timeout = 5
7
8
 
8
9
  ##
9
10
  # The Gateway
@@ -58,6 +59,10 @@ class Microformat
58
59
  end
59
60
  end
60
61
 
62
+ def timeout=(timeout)
63
+ @@timeout = timeout
64
+ end
65
+
61
66
  protected
62
67
  ##
63
68
  # DSL Related
@@ -72,8 +77,11 @@ class Microformat
72
77
  def inherited(klass)
73
78
  @@subclasses << klass
74
79
  define_cute_class_name(klass)
75
- klass.instance_variable_set(:@container, klass.name.downcase)
76
- klass.instance_variable_set(:@attributes, Hash.new([]))
80
+ current_container = @container
81
+ klass.class_eval do
82
+ @container = current_container || name.downcase
83
+ @attributes = Hash.new { |h,k| h[k] = [] }
84
+ end
77
85
  end
78
86
 
79
87
  def define_cute_class_name(klass)
@@ -130,7 +138,7 @@ class Microformat
130
138
  case source
131
139
  when String, File, StringIO
132
140
  result = ''
133
- Timeout::timeout(3) { result = open(source) }
141
+ Timeout.timeout(@@timeout) { result = open(source) }
134
142
  Hpricot(result)
135
143
  when Hpricot, Hpricot::Elements
136
144
  source
@@ -304,6 +312,9 @@ end
304
312
  class InvalidMicroformat < Exception; end
305
313
  class MicroformatNotFound < Exception; end
306
314
 
315
+ # oh what the hell, let's do it
316
+ Mofo = Microformat
317
+
307
318
  # type & id are used a lot in uformats and deprecated in ruby. no loss.
308
319
  OpenStruct.class_eval { undef :type, :id }
309
320
  Symbol.class_eval { def no_bang() to_s.sub('!','').to_sym end }
data/lib/mofo/hentry.rb CHANGED
@@ -4,7 +4,7 @@ require 'mofo/hcard'
4
4
  require 'mofo/rel_tag'
5
5
 
6
6
  class HEntry < Microformat
7
- one :entry_title!, :entry_summary, :updated, :published,
7
+ one :entry_title, :entry_summary, :updated, :published,
8
8
  :author => HCard
9
9
 
10
10
  many :entry_content, :tags => RelTag
data/site/index.html CHANGED
@@ -22,6 +22,7 @@
22
22
  <h3>mofo</h3>
23
23
 
24
24
  <ul class="xoxo">
25
+ <!-- <li><a href="/try">Try It!</a></li> -->
25
26
  <li><a href="#" onclick="sc('get_started')">Get Started</a></li>
26
27
  <li><a href="#" onclick="sc('microwhozit')">Microwhozit?</a></li>
27
28
  <li><a href="#" onclick="sc('find')">Mofo#find</a></li>
@@ -363,16 +364,17 @@ $ ./script/plugin install -x svn://errtheblog.com/svn/projects/mofo
363
364
  <h3 id="touch">Get in Touch</h3>
364
365
 
365
366
  <ul>
366
- <li>Me: chris[at]ozmm[dot]org (chris wanstrath)</li>
367
- <li>Trac: <a href="http://require.errtheblog.com/projects/browser/mofo">http://require.errtheblog.com/projects/browser/mofo</a></li>
368
- <li>SVN: svn://errtheblog.com/svn/projects/mofo</li>
367
+ <li><strong>Google Group:</strong> <a href="http://groups.google.com/group/mofo-rb">http://groups.google.com/group/mofo-rb</a></li>
368
+ <li><strong>Me:</strong> chris[at]ozmm[dot]org (chris wanstrath)</li>
369
+ <li><strong>Trac:</strong> <a href="http://require.errtheblog.com/projects/browser/mofo">http://require.errtheblog.com/projects/browser/mofo</a></li>
370
+ <li><strong>SVN:</strong> svn://errtheblog.com/svn/projects/mofo</li>
369
371
  </ul>
370
372
  </div>
371
373
 
372
374
  <div id="footer">
373
375
  <hr />
374
376
  <p class="left">| <a href="http://jigsaw.w3.org/css-validator/">CSS</a> | <a href="http://validator.w3.org/check?uri=referer">XHTML 1.1</a> |</p>
375
- <p class="right">Designed by <a href="mailto:support@syndicateme.net">syndicateme.net</a>. Hosted by <a href="http://rubyforge.org">Rubyforge</a>. Birthed by <a href="http://errtheblog.com">Err</a>.</p>
377
+ <p class="right">Designed by <a href="mailto:support@syndicateme.net">syndicateme.net</a>. Logo'd by <a href="http://seaofclouds.com/">seaofclouds</a>. Hosted by <a href="http://rubyforge.org">Rubyforge</a>. Birthed by <a href="http://errtheblog.com">Err</a>.</p>
376
378
  <p>&nbsp;</p>
377
379
  </div>
378
380
  </div>
data/test/ext_test.rb CHANGED
@@ -67,3 +67,14 @@ context "Searching a page with multiple uformats using Microformat.find" do
67
67
  classes.should.include HCard
68
68
  end
69
69
  end
70
+
71
+ context "Mofo's timeout duration" do
72
+ specify "should be alterable" do
73
+ Timeout.expects(:timeout).at_least_once.with(5)
74
+ Microformat.find('random_file.html')
75
+
76
+ Microformat.timeout = 11
77
+ Timeout.expects(:timeout).at_least_once.with(11)
78
+ Microformat.find('random_file.html')
79
+ end
80
+ end
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require 'mofo/hcard'
3
+
4
+ module Formats
5
+ class Card < HCard
6
+ end
7
+ end
8
+
9
+ context "Subclassing an hCard" do
10
+ specify "should parse a page with an hcard" do
11
+ proc { Formats::Card.find(fixture(:fauxtank)) }.should.not.raise MicroformatNotFound
12
+ end
13
+
14
+ specify "should raise an error if no hcard is found in strict mode" do
15
+ proc { Formats::Card.find(fixture(:fake), :strict => true) }.should.raise MicroformatNotFound
16
+ end
17
+
18
+ specify "should return an empty array if no hcard is found" do
19
+ Formats::Card.find(fixture(:fake)).should.equal []
20
+ end
21
+
22
+ specify "should return nil if no hcard is found with :first" do
23
+ Formats::Card.find(:first => fixture(:fake)).should.equal nil
24
+ end
25
+
26
+ specify "should return nil if no hcard is found with :all" do
27
+ Formats::Card.find(:all => fixture(:fake)).should.equal []
28
+ end
29
+
30
+ specify "should accept a :text option" do
31
+ Formats::Card.find(:text => open(fixture(:fauxtank)).read).should.not.equal []
32
+ Formats::Card.find(:text => open(fixture(:fauxtank)).read).should.not.equal nil
33
+ end
34
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ 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.6
7
- date: 2007-05-07 00:00:00 -07:00
6
+ version: 0.2.8
7
+ date: 2007-08-03 00:00:00 -07:00
8
8
  summary: mofo is a ruby microformat parser
9
9
  require_paths:
10
10
  - lib
@@ -94,6 +94,7 @@ test_files:
94
94
  - test/hreview_test.rb
95
95
  - test/include_pattern_test.rb
96
96
  - test/reltag_test.rb
97
+ - test/subclass_test.rb
97
98
  - test/xfn_test.rb
98
99
  - test/xoxo_test.rb
99
100
  rdoc_options: []