<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>CHANGELOG</filename>
    </added>
    <added>
      <filename>MANIFEST</filename>
    </added>
    <added>
      <filename>README.rdoc</filename>
    </added>
    <added>
      <filename>johnson.gemspec</filename>
    </added>
    <added>
      <filename>lib/hoe.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,24 +1,24 @@
-require &quot;rubygems&quot;
-require &quot;hoe&quot;
-require 'erb'
+require &quot;erb&quot;
+
+require &quot;./lib/hoe.rb&quot;
 require &quot;./lib/johnson/version.rb&quot;
 
 # what sort of extension are we building?
 kind = Config::CONFIG[&quot;DLEXT&quot;]
 
-CROSS = ENV['CROSS']
+CROSS = ENV[&quot;CROSS&quot;]
 LIBJS = FileList[&quot;vendor/spidermonkey/#{CROSS || ''}*.OBJ/libjs.{#{kind},so}&quot;].first || :libjs
 
 GENERATED_NODE = &quot;ext/spidermonkey/immutable_node.c&quot;
 
-Hoe.new(&quot;johnson&quot;, Johnson::VERSION) do |p|
+HOE = Hoe.new(&quot;johnson&quot;, Johnson::VERSION) do |p|
+  p.author         = [&quot;John Barnette&quot;, &quot;Aaron Patterson&quot;, &quot;Yehuda Katz&quot;, &quot;Matthew Draper&quot;]
+  p.changes        = p.paragraphs_of(&quot;CHANGELOG&quot;, 0..1).join(&quot;\n\n&quot;)
+  p.description    = p.paragraphs_of(&quot;README.rdoc&quot;, 2..5).join(&quot;\n\n&quot;)
+  p.email          = &quot;johnson-talk@googlegroups.com&quot;
   p.rubyforge_name = &quot;johnson&quot;
-  p.author = [&quot;John Barnette&quot; &quot;Aaron Patterson&quot;, &quot;Yehuda Katz&quot;, &quot;Matthew Draper&quot;]
-  p.email = [&quot;johnson-talk@googlegroups.com&quot;, &quot;jbarnette@rubyforge.org&quot;]
-  p.summary = &quot;Johnson wraps JavaScript in a loving Ruby embrace.&quot;
-  p.description = p.paragraphs_of(&quot;README.txt&quot;, 2..5).join(&quot;\n\n&quot;)
-  p.url = p.paragraphs_of(&quot;README.txt&quot;, 0).first.split(/\n/)[1..-1]
-  p.changes = p.paragraphs_of(&quot;History.txt&quot;, 0..1).join(&quot;\n\n&quot;)
+  p.description    = &quot;Johnson wraps JavaScript in a loving Ruby embrace.&quot;
+  p.url            = &quot;http://github.com/jbarnette/johnson/wikis&quot;
 
   p.clean_globs = [
     &quot;lib/johnson/spidermonkey.#{kind}&quot;,
@@ -28,15 +28,23 @@ Hoe.new(&quot;johnson&quot;, Johnson::VERSION) do |p|
     &quot;vendor/spidermonkey/**/*.OBJ&quot;]
 
   p.test_globs = [&quot;test/**/*_test.rb&quot;]
-
   p.spec_extras = { :extensions =&gt; [&quot;Rakefile&quot;] }
+  p.extra_deps = [&quot;rake&quot;]
+end
 
-  p.extra_deps = ['rake']
+namespace :gem do
+  namespace :spec do
+    task :generate do
+      File.open(&quot;johnson.gemspec&quot;, &quot;w&quot;) do |f|
+        f.puts(HOE.spec.to_ruby)
+      end
+    end
+  end
 end
 
 namespace :test do
   Rake::TestTask.new(&quot;todo&quot;) do |t|
-    t.test_files = FileList['todo/**/*_test.rb']
+    t.test_files = FileList[&quot;todo/**/*_test.rb&quot;]
     t.verbose = true
   end
   
@@ -60,9 +68,6 @@ Rake::Task[:check_manifest].prerequisites &lt;&lt; GENERATED_NODE
 task :build =&gt; :extensions
 task :extension =&gt; :build
 
-# gem depends on the native extension actually building
-Rake::Task[:gem].prerequisites &lt;&lt; :extensions
-
 task :extensions =&gt; [&quot;lib/johnson/spidermonkey.#{kind}&quot;]
 
 namespace :extensions do
@@ -130,7 +135,7 @@ end
 
 def jsops
   ops = []
-  File.open('vendor/spidermonkey/jsopcode.tbl', 'rb') { |f|
+  File.open(&quot;vendor/spidermonkey/jsopcode.tbl&quot;, &quot;rb&quot;) { |f|
     f.each_line do |line|
       if line =~ /^OPDEF\((\w+),/
         ops &lt;&lt; $1
@@ -142,10 +147,10 @@ end
 
 def tokens
   toks = []
-  File.open('vendor/spidermonkey/jsscan.h', 'rb') { |f|
+  File.open(&quot;vendor/spidermonkey/jsscan.h&quot;, &quot;rb&quot;) { |f|
     f.each_line do |line|
       line.scan(/TOK_\w+/).each do |token|
-        next if token == 'TOK_ERROR'
+        next if token == &quot;TOK_ERROR&quot;
         toks &lt;&lt; token
       end
     end
@@ -154,8 +159,8 @@ def tokens
 end
 
 file GENERATED_NODE =&gt; [&quot;ext/spidermonkey/immutable_node.c.erb&quot;, &quot;vendor/spidermonkey/jsopcode.tbl&quot;, &quot;vendor/spidermonkey/jsscan.h&quot;] do |t|
-  template = ERB.new(File.open(t.prerequisites.first, 'rb') { |x| x.read })
-  File.open(GENERATED_NODE, 'wb') { |f|
+  template = ERB.new(File.open(t.prerequisites.first, &quot;rb&quot;) { |x| x.read })
+  File.open(GENERATED_NODE, &quot;wb&quot;) { |f|
     f.write template.result(binding)
   }
 end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
 module Johnson #:nodoc:
-  VERSION = &quot;1.0.0&quot;
+  # FIXME: Don't add the timestamp for &quot;release&quot; versions
+  VERSION = &quot;1.0.0.#{Time.now.strftime(&quot;%Y%m%d%H%M&quot;)}&quot;.freeze
 end</diff>
      <filename>lib/johnson/version.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>History.txt</filename>
    </removed>
    <removed>
      <filename>Manifest.txt</filename>
    </removed>
    <removed>
      <filename>README.txt</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>26d4d614720232a5193aed79cc4d6ba070a195c4</id>
    </parent>
  </parents>
  <author>
    <name>John Barnette</name>
    <email>jbarnette@gmail.com</email>
  </author>
  <url>http://github.com/jbarnette/johnson/commit/d881eb3eb5c534396ae5a2d272d71ef627b53336</url>
  <id>d881eb3eb5c534396ae5a2d272d71ef627b53336</id>
  <committed-date>2008-06-23T22:40:18-07:00</committed-date>
  <authored-date>2008-06-23T22:40:18-07:00</authored-date>
  <message>Build system and versioning tweaks.

- Vendored Hoe (in lib/hoe.rb) and changed a few file names around.
- Removed a useless gem-build dependency.
- Made Johnson::VERSION contain a datestamp, at least for the moment.
- Generated an initial gemspec for Github.
- Added a gem:spec:generate task.</message>
  <tree>8a4a12d9690c2d34af2469f7ebf6241743f3511b</tree>
  <committer>
    <name>John Barnette</name>
    <email>jbarnette@gmail.com</email>
  </committer>
</commit>
