README.md in dailycred-0.1.30 vs README.md in dailycred-0.1.31
- old
+ new
@@ -1,13 +1,113 @@
# Dailycred
-## Rails gem for instant authentication using Dailycred with Ruby on Rails
+## Introduction
-### Check out the documenation at [dailycred.com]("https://www.dailycred.com/docs/ruby")
+The Dailycred ruby gem is everything you need to get off the ground running with robust authentication. It includes an [omniauth](https://github.com/intridea/omniauth) provider and a generator to create necessary models and controllers. The generated authentication structure is inspired by [nifty-generators](https://github.com/ryanb/nifty-generators). To get started using Dailycred with Ruby on Rails, the first thing you need to do is add the dailycred gem to your gemfile:
+
+ gem 'dailycred'
+
+Make sure you've signed up for Dailycred, and head over to your [settings](https://www.dailycred.com/admin/settings) page to get your API keys. Once you've done that, head back to the command line and run:
+
+ bundle
+ rails g dailycred
+ rake db:migrate
+
+Thats it! You've successfully added authentication to your app, and you can start signing up users. Run `rails s` to start your
+ server, and point your browser to [http://localhost:3000/auth](http://localhost:3000/auth) and you'll see a pre-built page with links to sign up.
+
+Here's what the dailycred gem generates for you:
+
+* A few helper methods to `/app/controllers/application_controller.rb`.
+* An initializer file at `/config/initializers/omniauth.rb` which configures your dailycred API keys.
+* `/app/models/user.rb`, the User model.
+* A migration file to create the user table in your database.
+
+
+While this is enough to get off the ground running with user authentication, this setup is meant to be lightweight and flexible, so feel free to tinker with
+ any of the generated code to better match your needs.
+
+## Authenticating
+
+To protect a controller method from unauthorized users, use the 'authorize' helper method as a `before_filter`.
+
+ #before_filter :authenticate, :except => [:index] #don't authenticate some
+ #before_filter :authenticate, :only => [:create, :new] #only authenticate some
+ before_filter :authenticate #all methods
+
+There are a few other helper methods available:
+
+#### current_user
+
+Returns the current logged in user or nil. Example usage:
+
+ if !current_user.nil?
+ redirect_to :controller => 'welcome', :action => 'thanks'
+ end
+
+#### dailycred
+
+A helper for instantiating a dailycred client instance. Use as a `before_filter` to load a @dailycred instance variable, or just use it as a helper method. Example usage:
+
+As a before filter:
+
+ before_filter :dailycred
+
+ def index
+ @dailycred.event(current_user.uid, "New Task", @task.name)
+ end
+
+or just as a helper
+
+ def index
+ dailycred.event(current_user.uid, "New Task", @task.name)
+ end
+
+#### login_path
+
+A helper for linking to the authentication url. Usage:
+
+ <%= link_to 'sign up', login_path %>
+ # => <a href="/auth/dailycred">sign up</a>
+
+#### Logging out
+
+To logout a user, simply send them to `/auth/logout`.
+
+ <%= link_to 'logout', logout_path %>
+ # => <a href="/auth/logout">logout</a>
+
+## Dailycred API
+
+For reference, have a look at the [annotated source code.](https://www.dailycred.com/public/docs/ruby/lib/dailycred.html)
+
+For all API calls, you must first initalize a Dailycred client:
+
+ @dailycred = Dailycred.new "YOUR_CLIENT_ID", "your_secret_key", opts
+
+Where opts is an optional hash for passing options. After initializing your client, you can create events as well as tag and untag users:
+
+ @dailycred.event(current_user.uid, "New Task", @task.name) # user_id, key, value
+ @dailycred.tag(current_user.uid, "Failed Checkout") # user_id, key
+ @dailycred.untag(current_user.uid, "Failed Checkout") # user_id, key
+
+
+#### Configuration
+
+To specify where users should be redirected after authentication actions, setup configure an `after_auth` property on a `Rails.configuration.DAILYCRED_OPTIONS` variable. Example:
+
+ # configure where users should be redirected after authentication
+ #
+ # Rails.configuration.DAILYCRED_OPTIONS = {
+ # :after_auth => '/hello', #after login
+ # :after_unauth => '/goodbye' #after logout
+ # }
+
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request
+