diff --git a/LICENSE b/LICENSE index bd2bcc3b8..edd355a72 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2009 Michael Bleigh +Copyright (c) 2010 Michael Bleigh and Intridea, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/README.markdown b/README.markdown index 4c466330a..3475e05e9 100644 --- a/README.markdown +++ b/README.markdown @@ -19,37 +19,50 @@ Grape APIs are Rack applications that are created by subclassing `Grape::API`. B def current_user @current_user ||= User.authorize!(env) end + + def authenticate! + error!('401 Unauthorized', 401) unless current_user + end end resource :statuses do - formats :rss, :atom - get :public_timeline do Tweet.limit(20) end get :home_timeline do + authenticate! current_user.home_timeline end + get '/show/:id' do + Tweet.find(params[:id]) + end + post :update do + authenticate! Tweet.create( + :user => current_user, :text => params[:status] ) end end end - # Rack endpoint - Twitter::API.statuses.timelines.get(:public_timeline) +This would create a Rack application that could be used like so (in a Rackup file): + + use Twitter::API - class Twitter::API::User < Grape::Resource::ActiveRecord - represents ::User - - property :status, lambda{|u| u.latest_status}, Twitter::API::Status - end +And would respond to the following routes: + + GET /1/statuses/public_timeline(.json) + GET /1/statuses/home_timeline(.json) + GET /1/statuses/show/:id(.json) + POST /1/statuses/update(.json) + +Serialization takes place automatically. For more detailed usage information, please visit the [Grape Wiki](http://github.com/intridea/grape/wiki). -== Note on Patches/Pull Requests +## Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. @@ -57,6 +70,6 @@ Grape APIs are Rack applications that are created by subclassing `Grape::API`. B * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. -== Copyright +## Copyright Copyright (c) 2010 Michael Bleigh and Intridea, Inc. See LICENSE for details. diff --git a/README.rdoc b/README.rdoc deleted file mode 100644 index 5c2c50e26..000000000 --- a/README.rdoc +++ /dev/null @@ -1,52 +0,0 @@ -= UNDER CONSTRUCTION. DO NOT USE - -= Grape - -Grape is a REST-like API micro-framework for Ruby. It is built to complement existing web application frameworks such as Rails and Sinatra by providing a simple DSL to easily provide APIs. It has built-in support for common conventions such as multiple formats, subdomain/prefix restriction, and versioning. - - class Twitter::API < Grape::Base - subdomain 'api' - version '1' - formats :xml, :json - authorization :oauth, User - - resource :statuses do - group :timelines do - formats :rss, :atom - - get :public_timeline do - optional :trim_user, Boolean - optional :include_entities, Boolean - - Tweet.limit(20) - end - - get :home_timeline do - authorized - - user.home_timeline - end - end - end - end - - # Rack endpoint - Twitter::API.statuses.timelines.get(:public_timeline) - - class Twitter::API::User < Grape::Resource::ActiveRecord - represents ::User - - property :status, lambda{|u| u.latest_status}, Twitter::API::Status - end - -== Note on Patches/Pull Requests - -* Fork the project. -* Make your feature addition or bug fix. -* Add tests for it. This is important so I don't break it in a future version unintentionally. -* Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) -* Send me a pull request. Bonus points for topic branches. - -== Copyright - -Copyright (c) 2010 Michael Bleigh and Intridea, Inc. See LICENSE for details.