README.md in authentication-0.0.1 vs README.md in authentication-0.0.2
- old
+ new
@@ -1,21 +1,36 @@
# Authentication [<img src="https://secure.travis-ci.org/fujimura/authentication.png"/>](http://travis-ci.org/fujimura/authentication) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/fujimura/authentication)
## Minimalist authentication library for Ruby
-## How to use
+## Install
-See an [example](https://github.com/fujimura/authentication-rails-example) or [spec](https://github.com/fujimura/authentication/blob/master/spec/authentication_spec.rb)
+```
+$ gem install authentication
+```
-## Requirements
+or add ```gem 'authentication'``` to your Gemfile.
-* Included class should have a method called `find_current_user` which returns the user object.
-* Included class should have a method called `session` method which returns Hash-like object.
+## How to use in a Rails app
+0. Include `Authentication` to your controller.
+1. Define `#find_current_user` in your controller.
+2. That's all. You can use the method below in the controller:
+ - `#login!` and `#logout!` to log in/out.
+ - `#current_user` and `#current_user_id` to get current user or its id.
+ - `#logged_in?` to ask logged in or not.
+
+[Example](https://github.com/fujimura/authentication_rails_example) and [spec](https://github.com/fujimura/authentication/blob/master/spec/lib/authentication_spec.rb) might be also helpful.
+
+## Advanced usage
+
+Under the hood, methods above(`current_user` etc.) are delegated to the instance of `Authentication::Authenticator`, which is built for "current_user". So, it's possible to create custom authenticator for a client which isn't a current user.
+
## Side-effects
-* ```session[:current_user_id]``` in included module will be changed.
-* ```@current_user``` in included module will be changed.
+* ```session[:current_user_id]``` of the class includes `Authentication` will be changed.
+* The class includes `Authentication` will include `Forwardable`.
+* The class includes `Authentication` will have a method called `current_user_authenticator`.
## Goal
The goal of this library is to provide standard authorization mechanism for web application with minimal dependency by short and concise code which can be understand easily.