sinatra-authentication-oran 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +33 -0
 - data/History.txt +4 -0
 - data/Manifest +26 -0
 - data/Rakefile +43 -0
 - data/TODO +53 -0
 - data/UNLICENSE +24 -0
 - data/example/database.yml +3 -0
 - data/example/dm_extend_app.rb +26 -0
 - data/example/dm_sinbook.rb +56 -0
 - data/example/extend_views/edit.haml +42 -0
 - data/example/extend_views/index.haml +31 -0
 - data/example/extend_views/login.haml +21 -0
 - data/example/extend_views/show.haml +9 -0
 - data/example/extend_views/signup.haml +30 -0
 - data/example/mm_app.rb +22 -0
 - data/example/tc_app.rb +16 -0
 - data/example/tc_sinbook.rb +62 -0
 - data/lib/models/abstract_user.rb +95 -0
 - data/lib/models/activerecord_user.rb +56 -0
 - data/lib/models/ar_adapter.rb +66 -0
 - data/lib/models/datamapper_user.rb +43 -0
 - data/lib/models/dm_adapter.rb +61 -0
 - data/lib/models/mm_adapter.rb +65 -0
 - data/lib/models/mongoid_adapter.rb +67 -0
 - data/lib/models/mongoid_user.rb +42 -0
 - data/lib/models/mongomapper_user.rb +38 -0
 - data/lib/models/rufus_tokyo_user.rb +206 -0
 - data/lib/models/sequel_adapter.rb +68 -0
 - data/lib/models/sequel_user.rb +53 -0
 - data/lib/models/tc_adapter.rb +101 -0
 - data/lib/sinatra-authentication-o.rb +305 -0
 - data/lib/sinatra-authentication.rb +305 -0
 - data/lib/sinatra-authentication/models.rb +5 -0
 - data/lib/views/edit.haml +45 -0
 - data/lib/views/edit.slim +46 -0
 - data/lib/views/index.haml +29 -0
 - data/lib/views/index.slim +30 -0
 - data/lib/views/login.haml +24 -0
 - data/lib/views/login.slim +25 -0
 - data/lib/views/show.haml +9 -0
 - data/lib/views/show.slim +10 -0
 - data/lib/views/signup.haml +28 -0
 - data/lib/views/signup.slim +33 -0
 - data/readme.markdown +295 -0
 - data/sinatra-authentication-oran.gemspec +137 -0
 - data/spec/run_all_specs.rb +8 -0
 - data/spec/unit/ar_model_spec.rb +3 -0
 - data/spec/unit/dm_model_spec.rb +3 -0
 - data/spec/unit/mm_model_spec.rb +3 -0
 - data/spec/unit/mongoid_model_spec.rb +3 -0
 - data/spec/unit/sequel_model_spec.rb +10 -0
 - data/spec/unit/tc_model_spec.rb +3 -0
 - data/spec/unit/user_specs.rb +119 -0
 - data/test/activerecord_test.rb +5 -0
 - data/test/datamapper_test.rb +5 -0
 - data/test/lib/ar_app.rb +27 -0
 - data/test/lib/dm_app.rb +20 -0
 - data/test/lib/dm_extend_app.rb +27 -0
 - data/test/lib/dm_sinbook.rb +54 -0
 - data/test/lib/extend_views/edit.haml +46 -0
 - data/test/lib/extend_views/index.haml +31 -0
 - data/test/lib/extend_views/login.haml +21 -0
 - data/test/lib/extend_views/show.haml +9 -0
 - data/test/lib/extend_views/signup.haml +29 -0
 - data/test/lib/helper.rb +16 -0
 - data/test/lib/mm_app.rb +24 -0
 - data/test/lib/mongoid_app.rb +28 -0
 - data/test/lib/sequel_app.rb +21 -0
 - data/test/lib/tc_app.rb +17 -0
 - data/test/lib/tc_sinbook.rb +61 -0
 - data/test/mongoid_test.rb +5 -0
 - data/test/mongomapper_test.rb +40 -0
 - data/test/route_tests.rb +29 -0
 - data/test/rufus_tokyo_test.rb +5 -0
 - data/test/sequel_test.rb +5 -0
 - metadata +220 -0
 
| 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #sinatra_authentication
         
     | 
| 
      
 2 
     | 
    
         
            +
              #sinatra_authentication_flash= session[:flash]
         
     | 
| 
      
 3 
     | 
    
         
            +
              %h1
         
     | 
| 
      
 4 
     | 
    
         
            +
                Edit
         
     | 
| 
      
 5 
     | 
    
         
            +
                - if @user.id == current_user.id
         
     | 
| 
      
 6 
     | 
    
         
            +
                  account
         
     | 
| 
      
 7 
     | 
    
         
            +
                - else
         
     | 
| 
      
 8 
     | 
    
         
            +
                  - if @user.email
         
     | 
| 
      
 9 
     | 
    
         
            +
                    = @user.email
         
     | 
| 
      
 10 
     | 
    
         
            +
                  - elsif @user.fb_uid
         
     | 
| 
      
 11 
     | 
    
         
            +
                    <fb:name uid=#{@user.fb_uid} linked='false' />
         
     | 
| 
      
 12 
     | 
    
         
            +
                  - else
         
     | 
| 
      
 13 
     | 
    
         
            +
                    account
         
     | 
| 
      
 14 
     | 
    
         
            +
              %form{:action => "/users/#{@user.id}/edit", :method => "post"}
         
     | 
| 
      
 15 
     | 
    
         
            +
                .field
         
     | 
| 
      
 16 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 17 
     | 
    
         
            +
                    %label{:for => "user_email"} Email
         
     | 
| 
      
 18 
     | 
    
         
            +
                  %input{ :id => "user_email", :name => "user[email]", :size => 30, :type => "text", :value => @user.email }
         
     | 
| 
      
 19 
     | 
    
         
            +
                .field
         
     | 
| 
      
 20 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 21 
     | 
    
         
            +
                    %label{:for => "user_email"} Name
         
     | 
| 
      
 22 
     | 
    
         
            +
                  %input{ :id => "user_email", :name => "user[name]", :size => 30, :type => "text", :value => @user.name }
         
     | 
| 
      
 23 
     | 
    
         
            +
                .field
         
     | 
| 
      
 24 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 25 
     | 
    
         
            +
                    %label{:for => "user_password"} New password
         
     | 
| 
      
 26 
     | 
    
         
            +
                  %input{ :id => "user_password", :name => "user[password]", :size => 30, :type => "password" }
         
     | 
| 
      
 27 
     | 
    
         
            +
                .field
         
     | 
| 
      
 28 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 29 
     | 
    
         
            +
                    %label{:for => "user_password_confirmation"} Confirm
         
     | 
| 
      
 30 
     | 
    
         
            +
                  %input{ :id => "user_password_confirmation", :name => "user[password_confirmation]", :size => 30, :type => "password" }
         
     | 
| 
      
 31 
     | 
    
         
            +
                -# don't render permission field if admin and editing yourself so you don't shoot yourself in the foot
         
     | 
| 
      
 32 
     | 
    
         
            +
                - if current_user.admin? && current_user.id != @user.id
         
     | 
| 
      
 33 
     | 
    
         
            +
                  .field
         
     | 
| 
      
 34 
     | 
    
         
            +
                    .label
         
     | 
| 
      
 35 
     | 
    
         
            +
                      %label{:for => 'permission_level'}  Permission level
         
     | 
| 
      
 36 
     | 
    
         
            +
                    %select{ :id => "permission_level", :name => "user[permission_level]" }
         
     | 
| 
      
 37 
     | 
    
         
            +
                      %option{:value => -1, :selected => @user.admin?}
         
     | 
| 
      
 38 
     | 
    
         
            +
                        Admin
         
     | 
| 
      
 39 
     | 
    
         
            +
                      %option{:value => 1, :selected => @user.permission_level == 1}
         
     | 
| 
      
 40 
     | 
    
         
            +
                        Authenticated user
         
     | 
| 
      
 41 
     | 
    
         
            +
                .buttons
         
     | 
| 
      
 42 
     | 
    
         
            +
                  %input{ :value => "Update", :type => "submit" }
         
     | 
| 
      
 43 
     | 
    
         
            +
                  - if Sinatra.const_defined?('FacebookObject')
         
     | 
| 
      
 44 
     | 
    
         
            +
                    - unless @user.fb_uid
         
     | 
| 
      
 45 
     | 
    
         
            +
                      |
         
     | 
| 
      
 46 
     | 
    
         
            +
                      = render_facebook_connect_link('Link account with Facebook')
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #sinatra_authentication
         
     | 
| 
      
 2 
     | 
    
         
            +
              %h1.page_title Users
         
     | 
| 
      
 3 
     | 
    
         
            +
              %table
         
     | 
| 
      
 4 
     | 
    
         
            +
                %tr
         
     | 
| 
      
 5 
     | 
    
         
            +
                  %th
         
     | 
| 
      
 6 
     | 
    
         
            +
                  - if current_user.admin?
         
     | 
| 
      
 7 
     | 
    
         
            +
                    %th permission level
         
     | 
| 
      
 8 
     | 
    
         
            +
                - @users.each do |user|
         
     | 
| 
      
 9 
     | 
    
         
            +
                  %tr
         
     | 
| 
      
 10 
     | 
    
         
            +
                    %td
         
     | 
| 
      
 11 
     | 
    
         
            +
                      - if user.email
         
     | 
| 
      
 12 
     | 
    
         
            +
                        = user.email
         
     | 
| 
      
 13 
     | 
    
         
            +
                      - elsif user.fb_uid
         
     | 
| 
      
 14 
     | 
    
         
            +
                        <fb:name uid=#{user.fb_uid} />
         
     | 
| 
      
 15 
     | 
    
         
            +
                      - else
         
     | 
| 
      
 16 
     | 
    
         
            +
                        "user #{user.id}"
         
     | 
| 
      
 17 
     | 
    
         
            +
                    - if current_user.admin?
         
     | 
| 
      
 18 
     | 
    
         
            +
                      %td= user.permission_level
         
     | 
| 
      
 19 
     | 
    
         
            +
                    %td
         
     | 
| 
      
 20 
     | 
    
         
            +
                      = user.name
         
     | 
| 
      
 21 
     | 
    
         
            +
                    %td
         
     | 
| 
      
 22 
     | 
    
         
            +
                      %a{:href => "/users/#{user.id}"} show
         
     | 
| 
      
 23 
     | 
    
         
            +
                    - if current_user.admin?
         
     | 
| 
      
 24 
     | 
    
         
            +
                      %td
         
     | 
| 
      
 25 
     | 
    
         
            +
                        %a{:href => "/users/#{user.id}/edit"} edit
         
     | 
| 
      
 26 
     | 
    
         
            +
                      %td
         
     | 
| 
      
 27 
     | 
    
         
            +
                        -# this doesn't work for tk
         
     | 
| 
      
 28 
     | 
    
         
            +
                        - if !user.site_admin?
         
     | 
| 
      
 29 
     | 
    
         
            +
                          %a{:href => "/users/#{user.id}/delete", :onclick => "return confirm('you sure?')"} delete
         
     | 
| 
      
 30 
     | 
    
         
            +
                        - else
         
     | 
| 
      
 31 
     | 
    
         
            +
                          site admin
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #sinatra_authentication
         
     | 
| 
      
 2 
     | 
    
         
            +
              #sinatra_authentication_flash= session[:flash]
         
     | 
| 
      
 3 
     | 
    
         
            +
              %h1.page_title Login
         
     | 
| 
      
 4 
     | 
    
         
            +
              %form{:action => "/login", :method => "post"}
         
     | 
| 
      
 5 
     | 
    
         
            +
                .field
         
     | 
| 
      
 6 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 7 
     | 
    
         
            +
                    %label{:for => "user_email'"} Email
         
     | 
| 
      
 8 
     | 
    
         
            +
                  %input{:id => "user_email", :name => "email", :size => 30, :type => "text"}
         
     | 
| 
      
 9 
     | 
    
         
            +
                .field
         
     | 
| 
      
 10 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 11 
     | 
    
         
            +
                    %label{:for => "user_password"} Password
         
     | 
| 
      
 12 
     | 
    
         
            +
                  %input{:id => "user_password", :name => "password", :size => 30, :type => "password"}
         
     | 
| 
      
 13 
     | 
    
         
            +
                .buttons
         
     | 
| 
      
 14 
     | 
    
         
            +
                  %input{:value => "login", :type => "submit"}
         
     | 
| 
      
 15 
     | 
    
         
            +
                  %a{:href => "/signup", :class => 'sinatra_authentication_link'}
         
     | 
| 
      
 16 
     | 
    
         
            +
                    Signup
         
     | 
| 
      
 17 
     | 
    
         
            +
                - if Sinatra.const_defined?('FacebookObject')
         
     | 
| 
      
 18 
     | 
    
         
            +
                  .third_party_signup
         
     | 
| 
      
 19 
     | 
    
         
            +
                    %h3.section_title One click login:
         
     | 
| 
      
 20 
     | 
    
         
            +
                    .login_link.facebook_login
         
     | 
| 
      
 21 
     | 
    
         
            +
                      = render_facebook_connect_link('Login using facebook', :size => 'large')
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #sinatra_authentication
         
     | 
| 
      
 2 
     | 
    
         
            +
              #sinatra_authentication_flash= session[:flash]
         
     | 
| 
      
 3 
     | 
    
         
            +
              %h1.page_title Signup
         
     | 
| 
      
 4 
     | 
    
         
            +
              %form{:action => "/signup", :method => "post"}
         
     | 
| 
      
 5 
     | 
    
         
            +
                .field
         
     | 
| 
      
 6 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 7 
     | 
    
         
            +
                    %label{:for => "user_email"} Email
         
     | 
| 
      
 8 
     | 
    
         
            +
                  %input{ :id => "user_email", :name => "user[email]", :size => 30, :type => "text" }
         
     | 
| 
      
 9 
     | 
    
         
            +
                .field
         
     | 
| 
      
 10 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 11 
     | 
    
         
            +
                    %label{:for => "user_name"} Name
         
     | 
| 
      
 12 
     | 
    
         
            +
                  %input{ :id => "user_name", :name => "user[name]", :size => 30, :type => "text" }
         
     | 
| 
      
 13 
     | 
    
         
            +
                .field
         
     | 
| 
      
 14 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 15 
     | 
    
         
            +
                    %label{:for => "user_password"} Password
         
     | 
| 
      
 16 
     | 
    
         
            +
                  %input{ :id => "user_password", :name => "user[password]", :size => 30, :type => "password" }
         
     | 
| 
      
 17 
     | 
    
         
            +
                .field
         
     | 
| 
      
 18 
     | 
    
         
            +
                  .label
         
     | 
| 
      
 19 
     | 
    
         
            +
                    %label{:for => "user_password_confirmation"} Confirm Password
         
     | 
| 
      
 20 
     | 
    
         
            +
                  %input{ :id => "user_password_confirmation", :name => "user[password_confirmation]", :size => 30, :type => "password" }
         
     | 
| 
      
 21 
     | 
    
         
            +
                .buttons
         
     | 
| 
      
 22 
     | 
    
         
            +
                  %input{ :value => "Create account", :type => "submit" }
         
     | 
| 
      
 23 
     | 
    
         
            +
                  %a{:href => "/login", :class => 'sinatra_authentication_link'}
         
     | 
| 
      
 24 
     | 
    
         
            +
                    Login
         
     | 
| 
      
 25 
     | 
    
         
            +
                - if Sinatra.const_defined?('FacebookObject')
         
     | 
| 
      
 26 
     | 
    
         
            +
                  .third_party_signup
         
     | 
| 
      
 27 
     | 
    
         
            +
                    %h3.section_title One click signup:
         
     | 
| 
      
 28 
     | 
    
         
            +
                    .login_link.facebook_login
         
     | 
| 
      
 29 
     | 
    
         
            +
                      = render_facebook_connect_link('Signup using facebook', :size => 'large')
         
     | 
    
        data/test/lib/helper.rb
    ADDED
    
    | 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'haml'
         
     | 
| 
      
 2 
     | 
    
         
            +
            TEMPLATE = :haml
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            class TestHelper
         
     | 
| 
      
 5 
     | 
    
         
            +
              def self.gen_user
         
     | 
| 
      
 6 
     | 
    
         
            +
                {'user[email]' => 'yodawg@gmail.com', 'user[password]' => 'password', 'user[password_confirmation]' => 'password'}
         
     | 
| 
      
 7 
     | 
    
         
            +
              end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              def self.gen_user_for_model
         
     | 
| 
      
 10 
     | 
    
         
            +
                {:email => 'yodawg@gmail.com', :password => 'password', :password_confirmation => 'password'}
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            def app
         
     | 
| 
      
 15 
     | 
    
         
            +
              Sinatra::Application
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
    
        data/test/lib/mm_app.rb
    ADDED
    
    | 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'sinatra'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rack-flash'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'mongo_mapper'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            #logger = Logger.new($stdout)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #MongoMapper.connection = Mongo::Connection.new('db.mongohq.com', 27017, :logger => logger)
         
     | 
| 
      
 8 
     | 
    
         
            +
            #MongoMapper.database = "fdbk"
         
     | 
| 
      
 9 
     | 
    
         
            +
            #MongoMapper.database.authenticate(ENV['mongohq_user'], ENV['mongohq_pass'])
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), '../../lib/sinatra-authentication')
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            MongoMapper.database = "sinatraauthtest"
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            use Rack::Session::Cookie, :secret => "heyhihello"
         
     | 
| 
      
 16 
     | 
    
         
            +
            use Rack::Flash
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            set :environment, 'development'
         
     | 
| 
      
 19 
     | 
    
         
            +
            set :public_folder, 'public'
         
     | 
| 
      
 20 
     | 
    
         
            +
            set :views,  'views'
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            get '/' do
         
     | 
| 
      
 23 
     | 
    
         
            +
              send TEMPLATE, "= render_login_logout", :layout => :layout
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'sinatra'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rack-flash'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'mongoid'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            #logger = Logger.new($stdout)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #MongoMapper.connection = Mongo::Connection.new('db.mongohq.com', 27017, :logger => logger)
         
     | 
| 
      
 8 
     | 
    
         
            +
            #MongoMapper.database = "fdbk"
         
     | 
| 
      
 9 
     | 
    
         
            +
            #MongoMapper.database.authenticate(ENV['mongohq_user'], ENV['mongohq_pass'])
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), '../../lib/sinatra-authentication')
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Mongoid.configure do |config|
         
     | 
| 
      
 14 
     | 
    
         
            +
              name = "sinatraauth_test"
         
     | 
| 
      
 15 
     | 
    
         
            +
              host = "localhost"
         
     | 
| 
      
 16 
     | 
    
         
            +
              config.master = Mongo::Connection.new.db(name)
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            use Rack::Session::Cookie, :secret => "heyhihello"
         
     | 
| 
      
 20 
     | 
    
         
            +
            use Rack::Flash
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            set :environment, 'development'
         
     | 
| 
      
 23 
     | 
    
         
            +
            set :public, 'public'
         
     | 
| 
      
 24 
     | 
    
         
            +
            set :views,  'views'
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            get '/' do
         
     | 
| 
      
 27 
     | 
    
         
            +
              send TEMPLATE, "= render_login_logout", :layout => :layout
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'sinatra'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'sequel'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'rack-flash'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            #DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/test.db")
         
     | 
| 
      
 7 
     | 
    
         
            +
            #DataMapper.auto_migrate!
         
     | 
| 
      
 8 
     | 
    
         
            +
            DB = Sequel.sqlite(:database => 'test.db')
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), '../../lib/sinatra-authentication')
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            use Rack::Session::Cookie, :secret => "heyhihello"
         
     | 
| 
      
 13 
     | 
    
         
            +
            use Rack::Flash
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            set :environment, 'development'
         
     | 
| 
      
 16 
     | 
    
         
            +
            set :public, 'public'
         
     | 
| 
      
 17 
     | 
    
         
            +
            set :views,  'views'
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            get '/' do
         
     | 
| 
      
 20 
     | 
    
         
            +
              send TEMPLATE, "= render_login_logout", :layout => :layout 
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
    
        data/test/lib/tc_app.rb
    ADDED
    
    | 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'sinatra'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rufus/tokyo'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'rack-flash'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), '../../lib/sinatra-authentication')
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            use Rack::Session::Cookie, :secret => "heyhihello"
         
     | 
| 
      
 8 
     | 
    
         
            +
            use Rack::Flash
         
     | 
| 
      
 9 
     | 
    
         
            +
            TcUserTable.cabinet_path = File.dirname(__FILE__)
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            set :environment, 'development'
         
     | 
| 
      
 12 
     | 
    
         
            +
            set :public, 'public'
         
     | 
| 
      
 13 
     | 
    
         
            +
            set :views,  'views'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            get '/' do
         
     | 
| 
      
 16 
     | 
    
         
            +
              send TEMPLATE, "= render_login_logout", :layout => :layout
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,61 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'sinbook'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rufus/tokyo'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'sinatra'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), '../../lib/sinatra-authentication')
         
     | 
| 
      
 6 
     | 
    
         
            +
             
         
     | 
| 
      
 7 
     | 
    
         
            +
            use Rack::Session::Cookie, :secret => "heyhihello"
         
     | 
| 
      
 8 
     | 
    
         
            +
            TcUserTable.cabinet_path = File.dirname(__FILE__)
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            facebook do
         
     | 
| 
      
 11 
     | 
    
         
            +
              api_key 'aa2db1b96cb7b57f0c5b1d4d3d8f0a22'
         
     | 
| 
      
 12 
     | 
    
         
            +
              secret '21d94ee63969ae3b3f833689838ca00f'
         
     | 
| 
      
 13 
     | 
    
         
            +
              app_id 48652736613
         
     | 
| 
      
 14 
     | 
    
         
            +
              url 'peoplewithjetpacks.com:4568/'
         
     | 
| 
      
 15 
     | 
    
         
            +
              callback 'peoplewithjetpacks.com:4568/'
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            set :port, 4568
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            get '/' do
         
     | 
| 
      
 21 
     | 
    
         
            +
              send TEMPLATE, :main
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            get '/test' do
         
     | 
| 
      
 25 
     | 
    
         
            +
              login_required
         
     | 
| 
      
 26 
     | 
    
         
            +
              'hihihi'
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            __END__
         
     | 
| 
      
 30 
     | 
    
         
            +
             
         
     | 
| 
      
 31 
     | 
    
         
            +
            @@ layout
         
     | 
| 
      
 32 
     | 
    
         
            +
            %html{:xmlns=>"http://www.w3.org/1999/xhtml", :'xmlns:fb'=>"http://www.facebook.com/2008/fbml"}
         
     | 
| 
      
 33 
     | 
    
         
            +
              %head
         
     | 
| 
      
 34 
     | 
    
         
            +
                %title Welcome to my Facebook Connect website!
         
     | 
| 
      
 35 
     | 
    
         
            +
                %script{:type => 'text/javascript', :src => 'http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US'}
         
     | 
| 
      
 36 
     | 
    
         
            +
                %script{:type => 'text/javascript', :src => 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'}
         
     | 
| 
      
 37 
     | 
    
         
            +
                :javascript
         
     | 
| 
      
 38 
     | 
    
         
            +
                  $(document).ready(function(){
         
     | 
| 
      
 39 
     | 
    
         
            +
                    /* test facebook crap works with ajax */
         
     | 
| 
      
 40 
     | 
    
         
            +
                    $('.sinatra-authentication-login').click(function(){
         
     | 
| 
      
 41 
     | 
    
         
            +
                      $.get($(this).attr('href'), {}, function(data){
         
     | 
| 
      
 42 
     | 
    
         
            +
                        $('#test_box').html(data);
         
     | 
| 
      
 43 
     | 
    
         
            +
                      });
         
     | 
| 
      
 44 
     | 
    
         
            +
                      return false;
         
     | 
| 
      
 45 
     | 
    
         
            +
                    });
         
     | 
| 
      
 46 
     | 
    
         
            +
                  });
         
     | 
| 
      
 47 
     | 
    
         
            +
              %body
         
     | 
| 
      
 48 
     | 
    
         
            +
                = render_login_logout
         
     | 
| 
      
 49 
     | 
    
         
            +
                = yield
         
     | 
| 
      
 50 
     | 
    
         
            +
                :javascript
         
     | 
| 
      
 51 
     | 
    
         
            +
                  FB.init("#{fb.api_key}", "/receiver")
         
     | 
| 
      
 52 
     | 
    
         
            +
                #test_box
         
     | 
| 
      
 53 
     | 
    
         
            +
             
         
     | 
| 
      
 54 
     | 
    
         
            +
            @@ main
         
     | 
| 
      
 55 
     | 
    
         
            +
            - if fb[:user]
         
     | 
| 
      
 56 
     | 
    
         
            +
              Hi,
         
     | 
| 
      
 57 
     | 
    
         
            +
              %fb:profile-pic{:uid => fb[:user]}
         
     | 
| 
      
 58 
     | 
    
         
            +
              %fb:name{:uid => fb[:user], :useyou => 'false', :firstnameonly => 'true'}
         
     | 
| 
      
 59 
     | 
    
         
            +
              !
         
     | 
| 
      
 60 
     | 
    
         
            +
              %br/
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'lib/mm_app'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'lib/helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'test/unit'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'rack/test'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'route_tests'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            #Test::Unit::TestCase.send :include, Rack::Test::Methods
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            #class SinatraAuthMongoMapperTest < Test::Unit::TestCase
         
     | 
| 
      
 10 
     | 
    
         
            +
            #  include Rack::Test::Methods
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
            #  def app
         
     | 
| 
      
 13 
     | 
    
         
            +
            #    TestApp
         
     | 
| 
      
 14 
     | 
    
         
            +
            #  end
         
     | 
| 
      
 15 
     | 
    
         
            +
            #
         
     | 
| 
      
 16 
     | 
    
         
            +
            #  def setup
         
     | 
| 
      
 17 
     | 
    
         
            +
            #    post '/signup', TestHelper.gen_user
         
     | 
| 
      
 18 
     | 
    
         
            +
            #    follow_redirect!
         
     | 
| 
      
 19 
     | 
    
         
            +
            #    get '/logout'
         
     | 
| 
      
 20 
     | 
    
         
            +
             # end
         
     | 
| 
      
 21 
     | 
    
         
            +
            #
         
     | 
| 
      
 22 
     | 
    
         
            +
            #  def test_should_login
         
     | 
| 
      
 23 
     | 
    
         
            +
            #    post '/login', {'email' => TestHelper.gen_user['user[email]'], 'password' => TestHelper.gen_user['user[password]']}
         
     | 
| 
      
 24 
     | 
    
         
            +
            #    follow_redirect!
         
     | 
| 
      
 25 
     | 
    
         
            +
            #
         
     | 
| 
      
 26 
     | 
    
         
            +
            #    assert_equal 'http://example.org/', last_request.url
         
     | 
| 
      
 27 
     | 
    
         
            +
            #    #assert cookie_jar['user']
         
     | 
| 
      
 28 
     | 
    
         
            +
            #    assert last_request.env['rack.session'][:user]
         
     | 
| 
      
 29 
     | 
    
         
            +
            #    assert last_response.ok?
         
     | 
| 
      
 30 
     | 
    
         
            +
            #  end
         
     | 
| 
      
 31 
     | 
    
         
            +
            #
         
     | 
| 
      
 32 
     | 
    
         
            +
            #  def test_should_logout
         
     | 
| 
      
 33 
     | 
    
         
            +
            #    post '/login', {'email' => TestHelper.gen_user['user[email]'], 'password' => TestHelper.gen_user['user[password]']}
         
     | 
| 
      
 34 
     | 
    
         
            +
            #    get '/logout'
         
     | 
| 
      
 35 
     | 
    
         
            +
            #    follow_redirect!
         
     | 
| 
      
 36 
     | 
    
         
            +
            #
         
     | 
| 
      
 37 
     | 
    
         
            +
            #    assert !last_request.env['rack.session'][:user]
         
     | 
| 
      
 38 
     | 
    
         
            +
            #    assert_equal 'http://example.org/', last_request.url
         
     | 
| 
      
 39 
     | 
    
         
            +
            #  end
         
     | 
| 
      
 40 
     | 
    
         
            +
            #end
         
     | 
    
        data/test/route_tests.rb
    ADDED
    
    | 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Test::Unit::TestCase.send :include, Rack::Test::Methods
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class SinatraAuthDataMapperTest < Test::Unit::TestCase
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 6 
     | 
    
         
            +
                post '/signup', TestHelper.gen_user
         
     | 
| 
      
 7 
     | 
    
         
            +
                follow_redirect!
         
     | 
| 
      
 8 
     | 
    
         
            +
                get '/logout'
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              def test_should_login
         
     | 
| 
      
 12 
     | 
    
         
            +
                post '/login', {'email' => TestHelper.gen_user['user[email]'], 'password' => TestHelper.gen_user['user[password]']}
         
     | 
| 
      
 13 
     | 
    
         
            +
                follow_redirect!
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                assert_equal 'http://example.org/', last_request.url
         
     | 
| 
      
 16 
     | 
    
         
            +
                #assert cookie_jar['user']
         
     | 
| 
      
 17 
     | 
    
         
            +
                assert last_request.env['rack.session'][:user]
         
     | 
| 
      
 18 
     | 
    
         
            +
                assert last_response.ok?
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              def test_should_logout
         
     | 
| 
      
 22 
     | 
    
         
            +
                post '/login', {'email' => TestHelper.gen_user['user[email]'], 'password' => TestHelper.gen_user['user[password]']}
         
     | 
| 
      
 23 
     | 
    
         
            +
                get '/logout'
         
     | 
| 
      
 24 
     | 
    
         
            +
                follow_redirect!
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                assert !last_request.env['rack.session'][:user]
         
     | 
| 
      
 27 
     | 
    
         
            +
                assert_equal 'http://example.org/', last_request.url
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
    
        data/test/sequel_test.rb
    ADDED
    
    
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,220 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: sinatra-authentication-oran
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
      
 6 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 8 
     | 
    
         
            +
            - oranzhang
         
     | 
| 
      
 9 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 10 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-12-08 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: sinatra-authentication-oran
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &22608396 !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 18 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 19 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 20 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 22 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 23 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *22608396
         
     | 
| 
      
 25 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 26 
     | 
    
         
            +
              name: sinatra
         
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &22608012 !ruby/object:Gem::Requirement
         
     | 
| 
      
 28 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 29 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 30 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 31 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 33 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 34 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *22608012
         
     | 
| 
      
 36 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 37 
     | 
    
         
            +
              name: dm-core
         
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &22607604 !ruby/object:Gem::Requirement
         
     | 
| 
      
 39 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 40 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 41 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 42 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 43 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 44 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 45 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *22607604
         
     | 
| 
      
 47 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 48 
     | 
    
         
            +
              name: dm-migrations
         
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &22607136 !ruby/object:Gem::Requirement
         
     | 
| 
      
 50 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 55 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 56 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *22607136
         
     | 
| 
      
 58 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 59 
     | 
    
         
            +
              name: dm-validations
         
     | 
| 
      
 60 
     | 
    
         
            +
              requirement: &22606692 !ruby/object:Gem::Requirement
         
     | 
| 
      
 61 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 62 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 63 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 64 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 65 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 66 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 67 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 68 
     | 
    
         
            +
              version_requirements: *22606692
         
     | 
| 
      
 69 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 70 
     | 
    
         
            +
              name: dm-timestamps
         
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: &22606368 !ruby/object:Gem::Requirement
         
     | 
| 
      
 72 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 73 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 74 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 75 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 76 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 77 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 78 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 79 
     | 
    
         
            +
              version_requirements: *22606368
         
     | 
| 
      
 80 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 81 
     | 
    
         
            +
              name: rufus-tokyo
         
     | 
| 
      
 82 
     | 
    
         
            +
              requirement: &22606032 !ruby/object:Gem::Requirement
         
     | 
| 
      
 83 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 84 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 85 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 86 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 87 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 88 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 89 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 90 
     | 
    
         
            +
              version_requirements: *22606032
         
     | 
| 
      
 91 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 92 
     | 
    
         
            +
              name: sinbook
         
     | 
| 
      
 93 
     | 
    
         
            +
              requirement: &22605576 !ruby/object:Gem::Requirement
         
     | 
| 
      
 94 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 95 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 96 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 97 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 98 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 99 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 100 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 101 
     | 
    
         
            +
              version_requirements: *22605576
         
     | 
| 
      
 102 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 103 
     | 
    
         
            +
              name: rack-flash3
         
     | 
| 
      
 104 
     | 
    
         
            +
              requirement: &22604892 !ruby/object:Gem::Requirement
         
     | 
| 
      
 105 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 106 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 107 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 108 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 109 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 110 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 111 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 112 
     | 
    
         
            +
              version_requirements: *22604892
         
     | 
| 
      
 113 
     | 
    
         
            +
            description: Simple authentication plugin for sinatra.
         
     | 
| 
      
 114 
     | 
    
         
            +
            email: 423794590@qq.com
         
     | 
| 
      
 115 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 116 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 117 
     | 
    
         
            +
            extra_rdoc_files:
         
     | 
| 
      
 118 
     | 
    
         
            +
            - TODO
         
     | 
| 
      
 119 
     | 
    
         
            +
            - readme.markdown
         
     | 
| 
      
 120 
     | 
    
         
            +
            files:
         
     | 
| 
      
 121 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 122 
     | 
    
         
            +
            - History.txt
         
     | 
| 
      
 123 
     | 
    
         
            +
            - Manifest
         
     | 
| 
      
 124 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 125 
     | 
    
         
            +
            - TODO
         
     | 
| 
      
 126 
     | 
    
         
            +
            - UNLICENSE
         
     | 
| 
      
 127 
     | 
    
         
            +
            - example/database.yml
         
     | 
| 
      
 128 
     | 
    
         
            +
            - example/dm_extend_app.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - example/dm_sinbook.rb
         
     | 
| 
      
 130 
     | 
    
         
            +
            - example/extend_views/edit.haml
         
     | 
| 
      
 131 
     | 
    
         
            +
            - example/extend_views/index.haml
         
     | 
| 
      
 132 
     | 
    
         
            +
            - example/extend_views/login.haml
         
     | 
| 
      
 133 
     | 
    
         
            +
            - example/extend_views/show.haml
         
     | 
| 
      
 134 
     | 
    
         
            +
            - example/extend_views/signup.haml
         
     | 
| 
      
 135 
     | 
    
         
            +
            - example/mm_app.rb
         
     | 
| 
      
 136 
     | 
    
         
            +
            - example/tc_app.rb
         
     | 
| 
      
 137 
     | 
    
         
            +
            - example/tc_sinbook.rb
         
     | 
| 
      
 138 
     | 
    
         
            +
            - lib/models/abstract_user.rb
         
     | 
| 
      
 139 
     | 
    
         
            +
            - lib/models/activerecord_user.rb
         
     | 
| 
      
 140 
     | 
    
         
            +
            - lib/models/ar_adapter.rb
         
     | 
| 
      
 141 
     | 
    
         
            +
            - lib/models/datamapper_user.rb
         
     | 
| 
      
 142 
     | 
    
         
            +
            - lib/models/dm_adapter.rb
         
     | 
| 
      
 143 
     | 
    
         
            +
            - lib/models/mm_adapter.rb
         
     | 
| 
      
 144 
     | 
    
         
            +
            - lib/models/mongoid_adapter.rb
         
     | 
| 
      
 145 
     | 
    
         
            +
            - lib/models/mongoid_user.rb
         
     | 
| 
      
 146 
     | 
    
         
            +
            - lib/models/mongomapper_user.rb
         
     | 
| 
      
 147 
     | 
    
         
            +
            - lib/models/rufus_tokyo_user.rb
         
     | 
| 
      
 148 
     | 
    
         
            +
            - lib/models/sequel_adapter.rb
         
     | 
| 
      
 149 
     | 
    
         
            +
            - lib/models/sequel_user.rb
         
     | 
| 
      
 150 
     | 
    
         
            +
            - lib/models/tc_adapter.rb
         
     | 
| 
      
 151 
     | 
    
         
            +
            - lib/sinatra-authentication-o.rb
         
     | 
| 
      
 152 
     | 
    
         
            +
            - lib/sinatra-authentication.rb
         
     | 
| 
      
 153 
     | 
    
         
            +
            - lib/sinatra-authentication/models.rb
         
     | 
| 
      
 154 
     | 
    
         
            +
            - lib/views/edit.haml
         
     | 
| 
      
 155 
     | 
    
         
            +
            - lib/views/edit.slim
         
     | 
| 
      
 156 
     | 
    
         
            +
            - lib/views/index.haml
         
     | 
| 
      
 157 
     | 
    
         
            +
            - lib/views/index.slim
         
     | 
| 
      
 158 
     | 
    
         
            +
            - lib/views/login.haml
         
     | 
| 
      
 159 
     | 
    
         
            +
            - lib/views/login.slim
         
     | 
| 
      
 160 
     | 
    
         
            +
            - lib/views/show.haml
         
     | 
| 
      
 161 
     | 
    
         
            +
            - lib/views/show.slim
         
     | 
| 
      
 162 
     | 
    
         
            +
            - lib/views/signup.haml
         
     | 
| 
      
 163 
     | 
    
         
            +
            - lib/views/signup.slim
         
     | 
| 
      
 164 
     | 
    
         
            +
            - readme.markdown
         
     | 
| 
      
 165 
     | 
    
         
            +
            - sinatra-authentication-oran.gemspec
         
     | 
| 
      
 166 
     | 
    
         
            +
            - spec/run_all_specs.rb
         
     | 
| 
      
 167 
     | 
    
         
            +
            - spec/unit/ar_model_spec.rb
         
     | 
| 
      
 168 
     | 
    
         
            +
            - spec/unit/dm_model_spec.rb
         
     | 
| 
      
 169 
     | 
    
         
            +
            - spec/unit/mm_model_spec.rb
         
     | 
| 
      
 170 
     | 
    
         
            +
            - spec/unit/mongoid_model_spec.rb
         
     | 
| 
      
 171 
     | 
    
         
            +
            - spec/unit/sequel_model_spec.rb
         
     | 
| 
      
 172 
     | 
    
         
            +
            - spec/unit/tc_model_spec.rb
         
     | 
| 
      
 173 
     | 
    
         
            +
            - spec/unit/user_specs.rb
         
     | 
| 
      
 174 
     | 
    
         
            +
            - test/activerecord_test.rb
         
     | 
| 
      
 175 
     | 
    
         
            +
            - test/datamapper_test.rb
         
     | 
| 
      
 176 
     | 
    
         
            +
            - test/lib/ar_app.rb
         
     | 
| 
      
 177 
     | 
    
         
            +
            - test/lib/dm_app.rb
         
     | 
| 
      
 178 
     | 
    
         
            +
            - test/lib/dm_extend_app.rb
         
     | 
| 
      
 179 
     | 
    
         
            +
            - test/lib/dm_sinbook.rb
         
     | 
| 
      
 180 
     | 
    
         
            +
            - test/lib/extend_views/edit.haml
         
     | 
| 
      
 181 
     | 
    
         
            +
            - test/lib/extend_views/index.haml
         
     | 
| 
      
 182 
     | 
    
         
            +
            - test/lib/extend_views/login.haml
         
     | 
| 
      
 183 
     | 
    
         
            +
            - test/lib/extend_views/show.haml
         
     | 
| 
      
 184 
     | 
    
         
            +
            - test/lib/extend_views/signup.haml
         
     | 
| 
      
 185 
     | 
    
         
            +
            - test/lib/helper.rb
         
     | 
| 
      
 186 
     | 
    
         
            +
            - test/lib/mm_app.rb
         
     | 
| 
      
 187 
     | 
    
         
            +
            - test/lib/mongoid_app.rb
         
     | 
| 
      
 188 
     | 
    
         
            +
            - test/lib/sequel_app.rb
         
     | 
| 
      
 189 
     | 
    
         
            +
            - test/lib/tc_app.rb
         
     | 
| 
      
 190 
     | 
    
         
            +
            - test/lib/tc_sinbook.rb
         
     | 
| 
      
 191 
     | 
    
         
            +
            - test/mongoid_test.rb
         
     | 
| 
      
 192 
     | 
    
         
            +
            - test/mongomapper_test.rb
         
     | 
| 
      
 193 
     | 
    
         
            +
            - test/route_tests.rb
         
     | 
| 
      
 194 
     | 
    
         
            +
            - test/rufus_tokyo_test.rb
         
     | 
| 
      
 195 
     | 
    
         
            +
            - test/sequel_test.rb
         
     | 
| 
      
 196 
     | 
    
         
            +
            homepage: https://github.com/oranzhang/sinatra-authentication
         
     | 
| 
      
 197 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 198 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 199 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 200 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 201 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 202 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 203 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 204 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 205 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 206 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 207 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 208 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 209 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 210 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 211 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 212 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 213 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 214 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 215 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 216 
     | 
    
         
            +
            rubygems_version: 1.8.16
         
     | 
| 
      
 217 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 218 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 219 
     | 
    
         
            +
            summary: Simple authentication plugin for sinatra.
         
     | 
| 
      
 220 
     | 
    
         
            +
            test_files: []
         
     |