mongo_rack 0.0.1 → 0.0.2
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/Rakefile +1 -1
- data/lib/core_ext/hash.rb +1 -1
- data/lib/mongo_rack.rb +2 -1
- data/spec/mongo_rack_spec.rb +39 -38
- data/spec/session_hash_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -2
- data/tasks/gem.rake +0 -1
- data/tasks/rdoc.rake +2 -3
- metadata +2 -13
- data/fred.rb +0 -26
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ PROJ.authors = 'Fernand Galiana'
|
|
19
19
|
PROJ.email = 'fernand.galiana@gmail.com'
|
20
20
|
PROJ.url = 'http://github.com/derailed/mongo_rack'
|
21
21
|
PROJ.summary = "Rackable mongoDB based session management"
|
22
|
-
PROJ.version = "0.0.
|
22
|
+
PROJ.version = "0.0.2"
|
23
23
|
PROJ.ruby_opts = %w[-W0]
|
24
24
|
PROJ.readme = 'README.rdoc'
|
25
25
|
PROJ.rcov.opts = ["--sort", "coverage", "-T"]
|
data/lib/core_ext/hash.rb
CHANGED
data/lib/mongo_rack.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rack/session/abstract/id'
|
2
2
|
require 'mongo'
|
3
|
-
require File.join( File.dirname(__FILE__), %w[mongo_rack session_hash.rb] )
|
3
|
+
require File.expand_path( File.join( File.dirname(__FILE__), %w[mongo_rack session_hash.rb] ) )
|
4
|
+
require File.expand_path( File.join( File.dirname(__FILE__), %w[core_ext hash.rb] ) )
|
4
5
|
|
5
6
|
module Rack
|
6
7
|
module Session
|
data/spec/mongo_rack_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
1
|
+
require File.expand_path( File.join( File.dirname(__FILE__), %w[spec_helper] ) )
|
2
2
|
|
3
3
|
describe Rack::Session::Mongo do
|
4
4
|
before :all do
|
@@ -158,50 +158,51 @@ describe Rack::Session::Mongo do
|
|
158
158
|
end
|
159
159
|
|
160
160
|
it "multithread: should cleanly merge sessions" do
|
161
|
-
|
161
|
+
pending do
|
162
|
+
@pool = Rack::Session::Mongo.new( @incrementor, :server => "localhost:27017/#{@db_name}/#{@cltn_name}", :pool_size => 10 )
|
162
163
|
|
163
|
-
|
164
|
+
req = Rack::MockRequest.new( @pool )
|
164
165
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
166
|
+
res = req.get('/')
|
167
|
+
res.body.should == '{"counter"=>1}'
|
168
|
+
cookie = res["Set-Cookie"]
|
169
|
+
sess_id = cookie[/#{@pool.key}=([^,;]+)/,1]
|
169
170
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
171
|
+
r = Array.new( 10 ) do
|
172
|
+
Thread.new( req ) do |run|
|
173
|
+
req.get( "/", "HTTP_COOKIE" => cookie, 'rack.multithread' => true )
|
174
|
+
end
|
175
|
+
end.reverse.map{ |t| t.join.value }
|
175
176
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
177
|
+
r.each do |res|
|
178
|
+
res['Set-Cookie'].should == cookie
|
179
|
+
res.body.should include( '"counter"=>2' )
|
180
|
+
end
|
180
181
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
182
|
+
drop_counter = proc do |env|
|
183
|
+
env['rack.session'].delete 'counter'
|
184
|
+
env['rack.session']['foo'] = 'bar'
|
185
|
+
[200, {'Content-Type'=>'text/plain'}, [env['rack.session'].inspect]]
|
186
|
+
end
|
187
|
+
tses = Rack::Utils::Context.new @pool, drop_counter
|
188
|
+
treq = Rack::MockRequest.new( tses )
|
188
189
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
190
|
+
tnum = 10
|
191
|
+
r = Array.new(tnum) do
|
192
|
+
Thread.new(treq) do |run|
|
193
|
+
run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
|
194
|
+
end
|
195
|
+
end.reverse.map{|t| t.join.value }
|
196
|
+
r.each do |res|
|
197
|
+
res['Set-Cookie'].should == cookie
|
198
|
+
res.body.should include('"foo"=>"bar"')
|
193
199
|
end
|
194
|
-
end.reverse.map{|t| t.join.value }
|
195
|
-
r.each do |res|
|
196
|
-
res['Set-Cookie'].should == cookie
|
197
|
-
res.body.should include('"foo"=>"bar"')
|
198
|
-
end
|
199
200
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
201
|
+
session = @pool.sessions.find_one( {:_id => sess_id } )
|
202
|
+
session['data'].size.should == 1
|
203
|
+
session['data']['counter'].should be_nil
|
204
|
+
session['data'].should == {"foo"=>"bar"}
|
205
|
+
end
|
206
|
+
end
|
206
207
|
end
|
207
208
|
end
|
data/spec/session_hash_spec.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
2
|
-
require File.join(File.dirname(__FILE__), %w[.. lib core_ext hash])
|
1
|
+
require File.expand_path( File.join( File.dirname(__FILE__), %w[spec_helper] ) )
|
2
|
+
require File.expand_path( File.join( File.dirname(__FILE__), %w[.. lib core_ext hash] ) )
|
3
3
|
|
4
4
|
describe MongoRack::SessionHash do
|
5
5
|
before :all do
|
data/spec/spec_helper.rb
CHANGED
@@ -3,7 +3,7 @@ require 'rack'
|
|
3
3
|
require 'rack/test'
|
4
4
|
require 'rack/response'
|
5
5
|
|
6
|
-
require File.join(File.dirname(__FILE__), %w[.. lib mongo_rack])
|
6
|
+
require File.expand_path( File.join( File.dirname(__FILE__), %w[.. lib mongo_rack] ) )
|
7
7
|
|
8
8
|
Spec::Runner.configure do |config|
|
9
9
|
end
|
@@ -12,7 +12,7 @@ def mongo_check( res, key, val )
|
|
12
12
|
session_id = res['Set-Cookie'].match( /^#{@session_key}=(.*?);.*?/ )[1]
|
13
13
|
ses = @sessions.find_one( { :_id => session_id } )
|
14
14
|
ses.should_not be_nil
|
15
|
-
ses['data'][key.to_s].should == val
|
15
|
+
ses['data'][key.to_s].should == val
|
16
16
|
end
|
17
17
|
|
18
18
|
def clear_sessions
|
data/tasks/gem.rake
CHANGED
@@ -51,7 +51,6 @@ class GemPackageTask < Rake::PackageTask
|
|
51
51
|
file "#{package_dir_path}/#{gem_file}" => [package_dir_path] + package_files + bones_files do
|
52
52
|
when_writing("Creating GEM") {
|
53
53
|
chdir(package_dir_path) do
|
54
|
-
puts gem_spec.inspect
|
55
54
|
Gem::Builder.new(gem_spec).build
|
56
55
|
verbose(true) {
|
57
56
|
mv gem_file, "../#{gem_file}"
|
data/tasks/rdoc.rake
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'rake/rdoctask'
|
2
|
-
require 'darkfish-rdoc'
|
3
2
|
|
4
3
|
namespace :doc do
|
5
4
|
|
@@ -27,8 +26,8 @@ namespace :doc do
|
|
27
26
|
|
28
27
|
rd.options << "-t #{title}"
|
29
28
|
rd.options << "-SHN"
|
30
|
-
rd.options << "-f"
|
31
|
-
rd.options << "darkfish"
|
29
|
+
# rd.options << "-f"
|
30
|
+
# rd.options << "darkfish"
|
32
31
|
rd.options.concat(rdoc.opts)
|
33
32
|
end
|
34
33
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo_rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernand Galiana
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-05 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,16 +42,6 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 0.18.1
|
44
44
|
version:
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: bones
|
47
|
-
type: :development
|
48
|
-
version_requirement:
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 2.5.1
|
54
|
-
version:
|
55
45
|
description: ""
|
56
46
|
email: fernand.galiana@gmail.com
|
57
47
|
executables: []
|
@@ -64,7 +54,6 @@ files:
|
|
64
54
|
- HISTORY
|
65
55
|
- README.rdoc
|
66
56
|
- Rakefile
|
67
|
-
- fred.rb
|
68
57
|
- lib/core_ext/hash.rb
|
69
58
|
- lib/mongo_rack.rb
|
70
59
|
- lib/mongo_rack/session_hash.rb
|
data/fred.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# tnum = 10
|
2
|
-
# r = Array.new(tnum) do
|
3
|
-
# Thread.new do
|
4
|
-
# puts "Making request"
|
5
|
-
# 10
|
6
|
-
# end
|
7
|
-
# end.reverse.map{|t| puts t.inspect;t.join; puts t.value }
|
8
|
-
#
|
9
|
-
# r.each do |res|
|
10
|
-
# puts "Checking request #{res}"
|
11
|
-
# end
|
12
|
-
|
13
|
-
|
14
|
-
a = Array.new( 10 ) do
|
15
|
-
Thread.new( 20 ) do |run|
|
16
|
-
puts "Blee + #{run}"
|
17
|
-
20
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
puts a.inspect
|
22
|
-
|
23
|
-
b = a.reverse.map{ |t| t.join.value }
|
24
|
-
|
25
|
-
puts "Here"
|
26
|
-
puts b.inspect
|