<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -21,7 +21,7 @@
 #   Cheat Lake, a nearby resevoir
 #   Cheat Mountain, one of the highest mountains in the Alleghenies
 #
-%w[rubygems camping camping/db erb open-uri acts_as_versioned wrap diffr responder ambition].each { |f| require f }
+%w[rubygems camping camping/db erb open-uri acts_as_versioned wrap diffr responder ambition json].each { |f| require f }
 gem 'camping', '&gt;=1.4.152'
 
 Camping.goes :Cheat
@@ -66,6 +66,35 @@ module Cheat::Models
 end
 
 module Cheat::Controllers
+  class JsonAPIShow &lt; R '/j/(\w+)'
+    def get(title)
+      @headers['Content-Type'] = 'application/json'
+
+      sheet = Sheet.detect { |s| s.title == title }
+      return { 'Error!' =&gt; &quot;Cheat sheet `#{title}' not found.&quot; }.to_json unless sheet
+
+      return { sheet.title =&gt; sheet.body }.to_json
+    end
+  end
+
+  class JsonAPIRecent &lt; R '/jr'
+    def get
+      @headers['Content-Type'] = 'application/json'
+
+      sheets = Sheet.sort_by { |s| -s.created_at }.first(15).map(&amp;:title)
+      return { 'Recent Cheat Sheets' =&gt; sheets }.to_json
+    end
+  end
+
+  class JsonAPIAll &lt; R '/ja'
+    def get
+      @headers['Content-Type'] = 'application/json'
+
+      sheets = Sheet.sort_by(&amp;:title).map(&amp;:title)
+      return { 'All Cheat Sheets' =&gt; sheets }.to_json
+    end
+  end
+
   class APIShow &lt; R '/y/(\w+)'
     def get(title)
       @headers['Content-Type'] = 'text/plain'</diff>
      <filename>lib/site.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>6e1231bda1444594719e08974a91a0ba92696488</id>
    </parent>
  </parents>
  <author>
    <name>Shay Arnett</name>
    <email>shayarnett@gmail.com</email>
  </author>
  <url>http://github.com/shayarnett/cheat/commit/2eeb6607e74af45e793b3e344ad76f2b7411a50b</url>
  <id>2eeb6607e74af45e793b3e344ad76f2b7411a50b</id>
  <committed-date>2009-06-25T07:21:37-07:00</committed-date>
  <authored-date>2009-06-25T07:21:37-07:00</authored-date>
  <message>add JSON mirror of YAML api</message>
  <tree>922b27652917c5853615dd3036c03ec2692a8585</tree>
  <committer>
    <name>Shay Arnett</name>
    <email>shayarnett@gmail.com</email>
  </committer>
</commit>
