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.
Files changed (76) hide show
  1. data/Gemfile +33 -0
  2. data/History.txt +4 -0
  3. data/Manifest +26 -0
  4. data/Rakefile +43 -0
  5. data/TODO +53 -0
  6. data/UNLICENSE +24 -0
  7. data/example/database.yml +3 -0
  8. data/example/dm_extend_app.rb +26 -0
  9. data/example/dm_sinbook.rb +56 -0
  10. data/example/extend_views/edit.haml +42 -0
  11. data/example/extend_views/index.haml +31 -0
  12. data/example/extend_views/login.haml +21 -0
  13. data/example/extend_views/show.haml +9 -0
  14. data/example/extend_views/signup.haml +30 -0
  15. data/example/mm_app.rb +22 -0
  16. data/example/tc_app.rb +16 -0
  17. data/example/tc_sinbook.rb +62 -0
  18. data/lib/models/abstract_user.rb +95 -0
  19. data/lib/models/activerecord_user.rb +56 -0
  20. data/lib/models/ar_adapter.rb +66 -0
  21. data/lib/models/datamapper_user.rb +43 -0
  22. data/lib/models/dm_adapter.rb +61 -0
  23. data/lib/models/mm_adapter.rb +65 -0
  24. data/lib/models/mongoid_adapter.rb +67 -0
  25. data/lib/models/mongoid_user.rb +42 -0
  26. data/lib/models/mongomapper_user.rb +38 -0
  27. data/lib/models/rufus_tokyo_user.rb +206 -0
  28. data/lib/models/sequel_adapter.rb +68 -0
  29. data/lib/models/sequel_user.rb +53 -0
  30. data/lib/models/tc_adapter.rb +101 -0
  31. data/lib/sinatra-authentication-o.rb +305 -0
  32. data/lib/sinatra-authentication.rb +305 -0
  33. data/lib/sinatra-authentication/models.rb +5 -0
  34. data/lib/views/edit.haml +45 -0
  35. data/lib/views/edit.slim +46 -0
  36. data/lib/views/index.haml +29 -0
  37. data/lib/views/index.slim +30 -0
  38. data/lib/views/login.haml +24 -0
  39. data/lib/views/login.slim +25 -0
  40. data/lib/views/show.haml +9 -0
  41. data/lib/views/show.slim +10 -0
  42. data/lib/views/signup.haml +28 -0
  43. data/lib/views/signup.slim +33 -0
  44. data/readme.markdown +295 -0
  45. data/sinatra-authentication-oran.gemspec +137 -0
  46. data/spec/run_all_specs.rb +8 -0
  47. data/spec/unit/ar_model_spec.rb +3 -0
  48. data/spec/unit/dm_model_spec.rb +3 -0
  49. data/spec/unit/mm_model_spec.rb +3 -0
  50. data/spec/unit/mongoid_model_spec.rb +3 -0
  51. data/spec/unit/sequel_model_spec.rb +10 -0
  52. data/spec/unit/tc_model_spec.rb +3 -0
  53. data/spec/unit/user_specs.rb +119 -0
  54. data/test/activerecord_test.rb +5 -0
  55. data/test/datamapper_test.rb +5 -0
  56. data/test/lib/ar_app.rb +27 -0
  57. data/test/lib/dm_app.rb +20 -0
  58. data/test/lib/dm_extend_app.rb +27 -0
  59. data/test/lib/dm_sinbook.rb +54 -0
  60. data/test/lib/extend_views/edit.haml +46 -0
  61. data/test/lib/extend_views/index.haml +31 -0
  62. data/test/lib/extend_views/login.haml +21 -0
  63. data/test/lib/extend_views/show.haml +9 -0
  64. data/test/lib/extend_views/signup.haml +29 -0
  65. data/test/lib/helper.rb +16 -0
  66. data/test/lib/mm_app.rb +24 -0
  67. data/test/lib/mongoid_app.rb +28 -0
  68. data/test/lib/sequel_app.rb +21 -0
  69. data/test/lib/tc_app.rb +17 -0
  70. data/test/lib/tc_sinbook.rb +61 -0
  71. data/test/mongoid_test.rb +5 -0
  72. data/test/mongomapper_test.rb +40 -0
  73. data/test/route_tests.rb +29 -0
  74. data/test/rufus_tokyo_test.rb +5 -0
  75. data/test/sequel_test.rb +5 -0
  76. 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,9 @@
1
+ #sinatra_authentication
2
+ %h1.page_title
3
+ - if @user.email
4
+ = @user.email
5
+ - elsif @user.fb_uid
6
+ <fb:name uid=#{@user.fb_uid} linked='false' />
7
+ - if current_user.admin?
8
+ %h2 permission level
9
+ = @user.permission_level
@@ -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')
@@ -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
@@ -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
@@ -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,5 @@
1
+ require 'lib/mongoid_app'
2
+ require 'lib/helper'
3
+ require 'test/unit'
4
+ require 'rack/test'
5
+ require 'route_tests'
@@ -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
@@ -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
@@ -0,0 +1,5 @@
1
+ require 'lib/tc_app'
2
+ require 'lib/helper'
3
+ require 'test/unit'
4
+ require 'rack/test'
5
+ require 'route_tests'
@@ -0,0 +1,5 @@
1
+ require 'lib/sequel_app'
2
+ require 'lib/helper'
3
+ require 'test/unit'
4
+ require 'rack/test'
5
+ require 'route_tests'
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: []