rack_warden 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Zjc4YzFlOTkwNzRhN2EyNjVmZWJjZDZmOGEzZTZjNjY5NmE1YjQ3OA==
5
+ data.tar.gz: !binary |-
6
+ NzFlMzJjNmE5ZGM5ZGRhYzVkYmZhNzRmMDFlY2ExODkzMTM0MzhmYQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZmVhMmMyMmI1MTI0NDRmNmEwYzA1YWQ0MTE2YjdiM2M3NGI0OTQwM2VmNDgz
10
+ ZTY5MGVlOGJlODY4ZjM3ZDBlNWI0YTE0MmQxN2QwN2Y1Y2I2MmI2ZmVmZjc1
11
+ NzIwNGFiNTM1MzBiZTM0MWI5YWIxY2VkMDYyNmM5ZjFjZjgxYTI=
12
+ data.tar.gz: !binary |-
13
+ NzgyMWUwMzcwYWIzYTZkMjJkODdmODY4ZTkzYzlmYTE5OWNkMmY1NTJhOTZk
14
+ YTEwNTgwMTUwYjhiNDQyMzQwYmEyYTZhMzY2YzA0OTIxYjMzYzk2YjIzMWJl
15
+ NWM4Y2E4NzcxZmY4ZTgzYjMzNjU5ZmJkN2JlYjA4MjE4ZGYyMzk=
data/lib/rack_warden.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module RackWarden
2
2
  # Incase you are using this library without the gem loaded.
3
3
  PATH = File.expand_path(File.dirname(__FILE__))
4
- puts "RW PATH #{PATH}"
4
+ #puts "RW PATH #{PATH}"
5
5
  $LOAD_PATH.unshift(PATH) unless $LOAD_PATH.include?(PATH)
6
6
  end
7
7
 
@@ -11,13 +11,7 @@ require 'bcrypt'
11
11
  require 'data_mapper'
12
12
  require 'warden'
13
13
  require 'open-uri'
14
-
15
- # gem 'data_mapper'
16
- # gem 'dm-sqlite-adapter'
17
- # gem 'warden'
18
-
19
- # require "rack_warden/app"
20
- # require "rack_warden/version"
14
+ require 'yaml'
21
15
 
22
16
  module RackWarden
23
17
  autoload :App, 'rack_warden/app'
@@ -29,4 +23,28 @@ module RackWarden
29
23
  autoload :Sinatra, 'rack_warden/frameworks/sinatra'
30
24
  autoload :Rails, 'rack_warden/frameworks/rails'
31
25
  end
26
+
27
+ # Make this module a pseudo-class appropriate for middlware stack. Use RackWarden for older rails apps (rather than 'RackWarden::App')
28
+ def self.new(*args)
29
+ App.new(*args)
30
+ end
31
+
32
+
33
+ # Utility to get middleware stack. Maybe temporary.
34
+ def self.middleware_classes(app=nil)
35
+ r = [app || Rack::Builder.parse_file(File.join(Dir.pwd, 'config.ru')).first]
36
+
37
+ while ((next_app = r.last.instance_variable_get(:@app)) != nil)
38
+ r << next_app
39
+ end
40
+
41
+ r.map{|e| e.instance_variable_defined?(:@app) ? e.class : e }
42
+ end
43
+ #app = Rack::Builder.parse_file('config.ru').first
44
+ #puts middleware_classes(app).inspect
45
+
46
+ def self.settings
47
+ App.settings
48
+ end
49
+
32
50
  end
@@ -14,14 +14,24 @@ module RackWarden
14
14
  set :recaptcha, Hash.new
15
15
  set :require_login, nil
16
16
  set :allow_public_signup, false
17
- set :log_path, File.join(Dir.pwd, 'log', 'rack_warden.log')
17
+ set :log_path, "#{Dir.pwd}/log/rack_warden.#{settings.environment}.log"
18
18
  set :user_table_name, nil
19
+ set :views, File.expand_path("../views/", __FILE__) unless views
20
+ set :initialized, false
19
21
 
20
22
  # Load config from file, if any exist.
21
23
  Hash.new.tap do |hash|
22
- config_files.each {|c| hash.merge! Psych.load_file(c) rescue nil}
24
+ config_files.each {|c| puts File.join(Dir.pwd, c); hash.merge!(YAML.load_file(File.join(Dir.pwd, c))) rescue nil}
23
25
  set hash
24
26
  end
27
+
28
+ begin
29
+ enable :logging
30
+ set :log_file, File.new(settings.log_path, 'a+')
31
+ settings.log_file.sync = true
32
+ use Rack::CommonLogger, settings.log_file
33
+ rescue
34
+ end
25
35
 
26
36
 
27
37
  # WBR - This will receive params and a block from the parent "use" statement.
@@ -30,32 +40,35 @@ module RackWarden
30
40
  # when you call "use RackWarden::App"
31
41
  # Example:
32
42
  #
33
- # use RackWarden::App :layout=>:'my_layout' do |rack_warden_instance, parent_app_instance|
43
+ # use RackWarden::App :layout=>:'my_layout' do |rack_warden_instance, app|
34
44
  # set :myvar, 'something'
35
45
  # end
36
46
  #
37
47
  def initialize(parent_app_instance=nil, *args, &block)
48
+ #@app = parent_app_instance
49
+ super(parent_app_instance, &Proc.new{})
38
50
  initialization_args = args.dup
39
- puts "RW INITIALIZE middleware instance [parent_app_instance, self, args, block]: #{[parent_app_instance, self, args, block]}"
51
+ #puts "RW INITIALIZE middleware instance [app, self, args, block]: #{[app, self, args, block]}"
52
+ puts "RW new instance with parent: #{@app}"
40
53
  # extract options.
41
54
  opts = args.last.is_a?(Hash) ? args.pop : {}
42
- rack_warden_app_class = self.class
43
- if parent_app_instance
44
- puts "RW has parent: #{parent_app_instance}"
55
+ #settings = self.class
56
+ if app && !settings.initialized
57
+ puts "RW initializing settings"
45
58
 
46
59
  # Save original views from opts.
47
- #rack_warden_app_class.set(:original_views, opts.has_key?(:views) ? rack_warden_app_class.views : nil)
48
- rack_warden_app_class.set(:original_views, rack_warden_app_class.views)
60
+ #settings.set(:original_views, opts.has_key?(:views) ? settings.views : nil)
61
+ settings.set(:original_views, settings.views)
49
62
 
50
63
  # Set app settings with remainder of opts.
51
- rack_warden_app_class.set opts if opts.any?
64
+ settings.set opts if opts.any?
52
65
 
53
66
  # Eval the use-block from the parent app, in context of this app.
54
- rack_warden_app_class.instance_exec(self, parent_instance, &block) if block_given?
67
+ settings.instance_exec(self, app, &block) if block_given?
55
68
 
56
69
  # Do framework setup.
57
70
  framework_module = Frameworks::Base.select_framework(binding)
58
- puts "RW framework_module #{framework_module}"
71
+ puts "RW selected framework module #{framework_module}"
59
72
  if framework_module
60
73
  framework_module.setup_framework
61
74
 
@@ -68,16 +81,17 @@ module RackWarden
68
81
  #new_views << original_views if original_views
69
82
  #self.class.set(:views => [new_views, Array(self.class.views)].flatten.compact.uniq) if new_views.any?
70
83
 
71
- new_views.unshift rack_warden_app_class.original_views
72
- new_views.unshift framework_module.views_path unless rack_warden_app_class.views==false
73
- new_views.unshift rack_warden_app_class.views
74
- rack_warden_app_class.set :views, new_views.flatten.compact.uniq
84
+ new_views.unshift settings.original_views
85
+ new_views.unshift framework_module.views_path unless settings.views==false
86
+ new_views.unshift settings.views
87
+ settings.set :views, new_views.flatten.compact.uniq
75
88
 
76
- puts "RW views: #{self.class.views}"
89
+ puts "RW compiled views: #{settings.views.inspect}"
77
90
  end
91
+ settings.set :initialized, true
78
92
  end
79
93
  # finally, send parent app to super, but don't send the use-block (thus the empty proc)
80
- super(parent_app_instance, &Proc.new{})
94
+ #super(app, &Proc.new{})
81
95
  end
82
96
 
83
97
  # For testing interception of request.
@@ -151,7 +165,7 @@ module RackWarden
151
165
  end
152
166
 
153
167
  def warden
154
- env['warden']
168
+ request.env['warden']
155
169
  end
156
170
 
157
171
  def current_user
@@ -221,7 +235,6 @@ module RackWarden
221
235
 
222
236
  flash(:rwarden)[:success] = warden.message || "Successful login"
223
237
 
224
- puts "RETURN_TO #{session[:return_to]}"
225
238
  if session[:return_to].nil?
226
239
  redirect url(settings.default_route, false)
227
240
  else
@@ -260,7 +273,8 @@ module RackWarden
260
273
  post '/auth/unauthenticated' do
261
274
  # I had to remove the condition, since it was not updating return path when it should have.
262
275
  session[:return_to] = env['warden.options'][:attempted_path] if !request.xhr? && !env['warden.options'][:attempted_path][/login|new|create/]
263
- puts "WARDEN ATTEMPTED PATH: #{env['warden.options'][:attempted_path]}"
276
+ puts "RW attempted path: #{env['warden.options'][:attempted_path]}"
277
+ puts "RW will return-to #{session[:return_to]}"
264
278
  puts warden
265
279
  # if User.count > 0
266
280
  flash(:rwarden)[:error] = warden.message || "Please login to continue"
@@ -277,6 +291,11 @@ module RackWarden
277
291
  erb :'rw_protected.html', :layout=>settings.layout
278
292
  end
279
293
 
294
+ get "/auth/dbinfo" do
295
+ warden.authenticate!
296
+ erb :'rw_dbinfo.html', :layout=>settings.layout
297
+ end
298
+
280
299
  get '/auth/admin' do
281
300
  warden.authenticate!
282
301
  erb :'rw_admin.html', :layout=>settings.layout
@@ -6,9 +6,8 @@ module RackWarden
6
6
  class << self
7
7
  # Select the framework of the parent app.
8
8
  def select_framework(env)
9
- puts "RW framework constants: #{Frameworks.constants}"
9
+ #puts "RW framework constants: #{Frameworks.constants}"
10
10
  Frameworks.constants.dup.tap{|_constants| _constants.delete(:Base)}.each do |c|
11
- puts "RW framework constant #{c}"
12
11
  r = Frameworks.const_get(c).framework_selector(env) #rescue nil
13
12
  return r if r
14
13
  end
@@ -30,6 +29,7 @@ module RackWarden
30
29
  # and runs the framework selector logic.
31
30
  # Returns the framework module or nil.
32
31
  def framework_selector(env)
32
+ #puts "RW testing framework #{self}"
33
33
  #puts "BASE.framework_selector #{self} env: #{env.eval 'self'} locals: #{env.eval 'local_variables'}"
34
34
  @initialization_args = env.eval 'initialization_args'
35
35
  @parent_app_instance = env.eval 'parent_app_instance'
@@ -5,8 +5,8 @@ module RackWarden
5
5
  extend Base
6
6
 
7
7
  def selector
8
- puts "RW Rails.selector parent_app.ancestors #{parent_app.ancestors}"
9
- parent_app.ancestors.find{|x| x.to_s[/Rails|ActionDispatch/]} #{|x| x.to_s=='ActionDispatch'}
8
+ #puts "RW Rails.selector parent_app.ancestors #{parent_app.ancestors}"
9
+ parent_app.ancestors.find{|x| x.to_s[/Rails|ActionDispatch/]} or defined?(Rails)
10
10
  end
11
11
 
12
12
  def views_path
@@ -14,11 +14,12 @@ module RackWarden
14
14
  end
15
15
 
16
16
  def setup_framework
17
- puts "RW Rails.setup_framework parent_app #{parent_app}"
17
+ #puts "RW setup_framework for rails"
18
18
  ApplicationController.send(:include, RackWarden::App::RackWardenHelpers)
19
19
 
20
20
  # Define class method 'require_login' on framework controller.
21
- #parent_app_class.instance_eval do #This seems to work too.
21
+ #parent_app_class.instance_eval do
22
+ # Probably more reliable to use this.
22
23
  ApplicationController.instance_eval do
23
24
  def self.require_login(*args)
24
25
  before_filter(:require_login, *args) do
@@ -5,7 +5,7 @@ module RackWarden
5
5
  extend Base
6
6
 
7
7
  def selector
8
- puts "RW Sinatra.selector parent_app.ancestors #{parent_app.ancestors}"
8
+ #puts "RW Sinatra.selector parent_app.ancestors #{parent_app.ancestors}"
9
9
  parent_app.ancestors.find{|x| x.to_s=='Sinatra::Base'}
10
10
  end
11
11
 
@@ -14,15 +14,15 @@ module RackWarden
14
14
  end
15
15
 
16
16
  def setup_framework
17
- puts "RW Sinatra.setup_framework parent_app #{parent_app}"
17
+ #puts "RW setup_framework for sinatra"
18
18
  parent_app.helpers(RackWarden::App::RackWardenHelpers)
19
19
 
20
20
  # Define class method 'require_login' on framework controller.
21
21
  parent_app.instance_eval do
22
22
  def self.require_login(*args)
23
- puts "RW class #{self}.require_login #{args}"
23
+ #puts "RW class #{self}.require_login #{args}"
24
24
  before(*args) do
25
- puts "RW instance #{self}.require_login #{request.path_info}"
25
+ #puts "RW instance #{self}.require_login #{request.path_info}"
26
26
  require_login
27
27
  end
28
28
  end
@@ -3,27 +3,35 @@ module RackWarden
3
3
 
4
4
  # Best guess at framework database settings.
5
5
  def self.get_database_config
6
+ #puts ActiveRecord::Base.configurations[(RackWarden::App.environment || :development).to_s].to_yaml
7
+ #conf = case
6
8
  case
9
+ when App.database_config.to_s.downcase == 'file'; "sqlite3:///#{Dir.pwd}/rack_warden.sqlite3.db"
7
10
  when App.database_config.to_s.downcase == 'auto';
8
11
  (ActiveRecord::Base.connection_config rescue nil) ||
12
+ (ActiveRecord::Base.configurations[(RackWarden::App.environment || :development).to_s] rescue nil) ||
9
13
  (DataMapper.repository(:default).adapter[:options] rescue nil) ||
10
14
  App.database_default
11
15
  when App.database_config; App.database_config
12
16
  else App.database_default
13
17
  end
18
+ #... sort out environment HERE
19
+ #conf = RackWarden::App.environment || :development).to_s
14
20
  end
15
21
 
16
- puts "RW DataMapper using log_path #{App.log_path}"
17
- DataMapper::Logger.new(App.log_path)
22
+ #puts "RW DataMapper using log_path #{App.log_path}"
23
+ ### CAUTION - There may be a file conflict between this and rack::commonlogger.
24
+ DataMapper::Logger.new(settings.log_file) #$stdout) #App.log_path)
25
+
18
26
 
19
- puts "RW get_database_config #{get_database_config}"
20
27
  DataMapper.setup(:default, get_database_config)
21
28
  # Do DataMapper.repository.adapter to get connection info for this connection.
29
+ puts "RW DataMapper.setup #{DataMapper.repository.adapter}"
22
30
 
23
- puts "RW requiring model files in #{File.join(File.dirname(__FILE__), 'models/*')}"
24
- Dir.glob(File.join(File.dirname(__FILE__), 'models/*')).each {|f| puts f; require f}
31
+ #puts "RW requiring model files in #{File.join(File.dirname(__FILE__), 'models/*')}"
32
+ Dir.glob(File.join(File.dirname(__FILE__), 'models/*')).each {|f| require f}
25
33
 
26
- puts "RW DataMapper.finalize"
34
+ #puts "RW DataMapper.finalize"
27
35
  # Tell DataMapper the models are done being defined
28
36
  DataMapper.finalize
29
37
 
@@ -31,6 +39,7 @@ module RackWarden
31
39
  # Update the database to match the properties of User.
32
40
  DataMapper.auto_upgrade!
33
41
 
34
- puts "RW DataMapper repository #{DataMapper.repository.adapter.options}"
42
+ # Careful! This will expose sensitive db login info.
43
+ #puts "RW DataMapper repository #{DataMapper.repository.adapter.options}"
35
44
 
36
45
  end # module
@@ -1,3 +1,3 @@
1
1
  module RackWarden
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -0,0 +1,9 @@
1
+ <p>
2
+ <h2>RackWarden db info</h2>
3
+ </p>
4
+
5
+ <p>
6
+ <%= DataMapper.repository.adapter.select('select * from SQLITE_MASTER').to_yaml.gsub(/\n|\r/, '<br>').gsub(/ /, '&nbsp;&nbsp;') %>
7
+ <br><br>
8
+ <%= DataMapper.repository.adapter.to_yaml.gsub(/\n|\r/, '<br>') %>
9
+ </p>
@@ -1,9 +1,3 @@
1
1
  <p>
2
2
  <h2>Protected Page Example</h2>
3
3
  </p>
4
-
5
- <p>
6
- <%= DataMapper.repository.adapter.to_yaml.gsub(/\n|\r/, '<br>') %>
7
- <%= DataMapper.repository.adapter.select('select * from SQLITE_MASTER').to_yaml.gsub(/\n|\r/, '<br>').gsub(/ /, '&nbsp;&nbsp;') %>
8
-
9
- </p>
data/rack_warden.gemspec CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency "sinatra-flash"
30
30
  spec.add_dependency "bcrypt"
31
31
  spec.add_dependency "data_mapper"
32
+ spec.add_dependency "sqlite3"
32
33
  spec.add_dependency "dm-sqlite-adapter"
33
34
  spec.add_dependency "warden"
34
35
  end
metadata CHANGED
@@ -1,174 +1,177 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rack_warden
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 7
10
- version: 0.0.7
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - William Richardson
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2015-01-07 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- hash: 1
27
- segments:
28
- - 1
29
- - 7
30
- version: "1.7"
31
- prerelease: false
32
- requirement: *id001
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
33
14
  name: bundler
34
- type: :development
35
- - !ruby/object:Gem::Dependency
36
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
- none: false
38
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
39
17
  - - ~>
40
- - !ruby/object:Gem::Version
41
- hash: 35
42
- segments:
43
- - 10
44
- - 0
45
- version: "10.0"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
46
21
  prerelease: false
47
- requirement: *id002
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
48
28
  name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
49
34
  type: :development
50
- - !ruby/object:Gem::Dependency
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
60
35
  prerelease: false
61
- requirement: *id003
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
62
42
  name: tux
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
63
48
  type: :development
64
- - !ruby/object:Gem::Dependency
65
- version_requirements: &id004 !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
74
49
  prerelease: false
75
- requirement: *id004
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
76
56
  name: thin
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
77
62
  type: :development
78
- - !ruby/object:Gem::Dependency
79
- version_requirements: &id005 !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
88
63
  prerelease: false
89
- requirement: *id005
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
90
70
  name: sinatra
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
91
76
  type: :runtime
92
- - !ruby/object:Gem::Dependency
93
- version_requirements: &id006 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- hash: 3
99
- segments:
100
- - 0
101
- version: "0"
102
77
  prerelease: false
103
- requirement: *id006
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
104
84
  name: sinatra-flash
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
105
90
  type: :runtime
106
- - !ruby/object:Gem::Dependency
107
- version_requirements: &id007 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- hash: 3
113
- segments:
114
- - 0
115
- version: "0"
116
91
  prerelease: false
117
- requirement: *id007
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
118
98
  name: bcrypt
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
119
104
  type: :runtime
120
- - !ruby/object:Gem::Dependency
121
- version_requirements: &id008 !ruby/object:Gem::Requirement
122
- none: false
123
- requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- hash: 3
127
- segments:
128
- - 0
129
- version: "0"
130
105
  prerelease: false
131
- requirement: *id008
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
132
112
  name: data_mapper
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
133
118
  type: :runtime
134
- - !ruby/object:Gem::Dependency
135
- version_requirements: &id009 !ruby/object:Gem::Requirement
136
- none: false
137
- requirements:
138
- - - ">="
139
- - !ruby/object:Gem::Version
140
- hash: 3
141
- segments:
142
- - 0
143
- version: "0"
144
119
  prerelease: false
145
- requirement: *id009
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sqlite3
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
146
140
  name: dm-sqlite-adapter
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
147
146
  type: :runtime
148
- - !ruby/object:Gem::Dependency
149
- version_requirements: &id010 !ruby/object:Gem::Requirement
150
- none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- hash: 3
155
- segments:
156
- - 0
157
- version: "0"
158
147
  prerelease: false
159
- requirement: *id010
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
160
154
  name: warden
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
161
160
  type: :runtime
162
- description: A warden/sinatra mini-app providing authentication and user management for any rack-based app.
163
- email:
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: A warden/sinatra mini-app providing authentication and user management
168
+ for any rack-based app.
169
+ email:
164
170
  - wbr@mac.com
165
171
  executables: []
166
-
167
172
  extensions: []
168
-
169
173
  extra_rdoc_files: []
170
-
171
- files:
174
+ files:
172
175
  - .gitignore
173
176
  - Gemfile
174
177
  - LICENSE.txt
@@ -184,44 +187,36 @@ files:
184
187
  - lib/rack_warden/models/user.rb
185
188
  - lib/rack_warden/version.rb
186
189
  - lib/rack_warden/views/rw_admin.html.erb
190
+ - lib/rack_warden/views/rw_dbinfo.html.erb
187
191
  - lib/rack_warden/views/rw_index.html.erb
188
192
  - lib/rack_warden/views/rw_layout.html.erb
189
193
  - lib/rack_warden/views/rw_login.html.erb
190
194
  - lib/rack_warden/views/rw_new_user.html.erb
191
195
  - lib/rack_warden/views/rw_protected.html.erb
192
196
  - rack_warden.gemspec
193
- homepage: ""
194
- licenses:
197
+ homepage: ''
198
+ licenses:
195
199
  - MIT
200
+ metadata: {}
196
201
  post_install_message:
197
202
  rdoc_options: []
198
-
199
- require_paths:
203
+ require_paths:
200
204
  - lib
201
- required_ruby_version: !ruby/object:Gem::Requirement
202
- none: false
203
- requirements:
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- hash: 3
207
- segments:
208
- - 0
209
- version: "0"
210
- required_rubygems_version: !ruby/object:Gem::Requirement
211
- none: false
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- hash: 3
216
- segments:
217
- - 0
218
- version: "0"
205
+ required_ruby_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ! '>='
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ required_rubygems_version: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
219
215
  requirements: []
220
-
221
216
  rubyforge_project:
222
- rubygems_version: 1.8.30
217
+ rubygems_version: 2.4.5
223
218
  signing_key:
224
- specification_version: 3
225
- summary: A warden/sinatra mini-app providing authentication and user management for any rack-based app
219
+ specification_version: 4
220
+ summary: A warden/sinatra mini-app providing authentication and user management for
221
+ any rack-based app
226
222
  test_files: []
227
-