mongo_session_store 1.1.2 → 2.0.0.pre

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/README.md CHANGED
@@ -6,32 +6,46 @@ This is a fork of the DataMapper session store, modified to work with MongoMappe
6
6
 
7
7
  ## Installation
8
8
 
9
+ The current version is only compatible with Rails 3
10
+
9
11
  gem install mongo_session_store
10
12
 
13
+ However if you want to use it with Rails 2.3.x, you just have to install the latest 1.x version
14
+
15
+ gem install mongo_session_store --version=1.1.2
16
+
11
17
  ## Usage with MongoMapper
12
18
 
13
- In config/environment.rb:
19
+ In your Gemfile:
14
20
 
15
- config.gem "mongo_mapper"
16
- config.gem "mongo_session_store"
21
+ gem "mongo_mapper-rails3", :require => "mongo_mapper"
22
+ gem "mongo_session_store"
17
23
 
18
- In the session_store initializer:
24
+ In the session_store initializer (config/initializers/session_store.rb):
19
25
 
20
26
  require "mongo_session_store/mongo_mapper"
21
27
  ActionController::Base.session_store = :mongo_mapper_store
22
28
 
23
29
  ## Usage with Mongoid
24
30
 
25
- In config/environment.rb:
31
+ In your Gemfile:
26
32
 
27
- config.gem "mongoid"
28
- config.gem "mongo_session_store"
33
+ gem "mongoid"
34
+ gem "mongo_session_store"
29
35
 
30
- In the session_store initializer:
36
+ In the session_store initializer (config/initializers/session_store.rb):
31
37
 
32
38
  require "mongo_session_store/mongoid"
33
39
  ActionController::Base.session_store = :mongoid_store
34
40
 
41
+ ## Contributors
42
+
43
+ * Nicolas Mérouze
44
+ * Chris Brickley
45
+ * Tony Pitale
46
+ * Nicola Racco
47
+ * Matt Powell
48
+
35
49
  ## License
36
50
 
37
51
  Copyright (c) 2010 Nicolas Mérouze
@@ -1,6 +1,6 @@
1
1
  require 'mongo_mapper'
2
2
 
3
- module ActionController
3
+ module ActionDispatch
4
4
  module Session
5
5
  class MongoMapperStore < AbstractStore
6
6
 
@@ -9,7 +9,7 @@ module ActionController
9
9
  key :data, String, :default => [Marshal.dump({})].pack("m*")
10
10
  timestamps!
11
11
 
12
- ensure_index :updated_at
12
+ ensure_index :updated_at if MongoMapper.class_variables.include? '@@database'
13
13
  end
14
14
 
15
15
  # The class used for session storage.
@@ -20,7 +20,7 @@ module ActionController
20
20
 
21
21
  private
22
22
  def generate_sid
23
- Mongo::ObjectID.new
23
+ BSON::ObjectID.new
24
24
  end
25
25
 
26
26
  def get_session(env, sid)
@@ -33,14 +33,16 @@ module ActionController
33
33
  def set_session(env, sid, session_data)
34
34
  record = env[SESSION_RECORD_KEY] ||= find_session(sid)
35
35
  record.data = pack(session_data)
36
- #per rack spec: Should return true or false dependant on whether or not the session was saved or not.
37
- record.save ? true : false
36
+ # Rack spec dictates that set_session should return true or false
37
+ # depending on whether or not the session was saved or not.
38
+ # However, ActionPack seems to want a session id instead.
39
+ record.save ? sid : false
38
40
  end
39
41
 
40
42
  def find_session(id)
41
43
  @@session_class.find(id) ||
42
44
  @@session_class.new(:id=>id)
43
- rescue Mongo::InvalidObjectID
45
+ rescue BSON::InvalidObjectID
44
46
  @@session_class.new(:id => generate_sid)
45
47
  end
46
48
 
@@ -1,6 +1,6 @@
1
1
  require 'mongoid'
2
2
 
3
- module ActionController
3
+ module ActionDispatch
4
4
  module Session
5
5
  class MongoidStore < AbstractStore
6
6
 
@@ -20,7 +20,7 @@ module ActionController
20
20
 
21
21
  private
22
22
  def generate_sid
23
- Mongo::ObjectID.new
23
+ BSON::ObjectID.new
24
24
  end
25
25
 
26
26
  def get_session(env, sid)
@@ -33,13 +33,16 @@ module ActionController
33
33
  def set_session(env, sid, session_data)
34
34
  record = env[SESSION_RECORD_KEY] ||= find_session(sid)
35
35
  record.data = pack(session_data)
36
- #per rack spec: Should return true or false dependant on whether or not the session was saved or not.
37
- record.save ? true : false
36
+ # Rack spec dictates that set_session should return true or false
37
+ # depending on whether or not the session was saved or not.
38
+ # However, ActionPack seems to want a session id instead.
39
+ record.save ? sid : false
38
40
  end
39
41
 
40
42
  def find_session(id)
41
- @@session_class.find(id) ||
42
- @@session_class.new(:id=>id)
43
+ id = BSON::ObjectID.from_string(id.to_s)
44
+ @@session_class.first(:conditions => { :_id => id }) ||
45
+ @@session_class.new(:id => id)
43
46
  end
44
47
 
45
48
  def pack(data)
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_session_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ prerelease: true
5
+ segments:
6
+ - 2
7
+ - 0
8
+ - 0
9
+ - pre
10
+ version: 2.0.0.pre
5
11
  platform: ruby
6
12
  authors:
7
13
  - "Nicolas M\xC3\xA9rouze"
@@ -11,39 +17,49 @@ autorequire:
11
17
  bindir: bin
12
18
  cert_chain: []
13
19
 
14
- date: 2010-03-05 00:00:00 +01:00
20
+ date: 2010-06-04 00:00:00 +02:00
15
21
  default_executable:
16
22
  dependencies:
17
23
  - !ruby/object:Gem::Dependency
18
24
  name: actionpack
19
- type: :runtime
20
- version_requirement:
21
- version_requirements: !ruby/object:Gem::Requirement
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
22
27
  requirements:
23
28
  - - ~>
24
29
  - !ruby/object:Gem::Version
25
- version: "2.3"
26
- version:
30
+ segments:
31
+ - 3
32
+ - 0
33
+ version: "3.0"
34
+ type: :runtime
35
+ version_requirements: *id001
27
36
  - !ruby/object:Gem::Dependency
28
- name: mongo_mapper
29
- type: :development
30
- version_requirement:
31
- version_requirements: !ruby/object:Gem::Requirement
37
+ name: mongo_mapper-rails3
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
32
40
  requirements:
33
41
  - - ">="
34
42
  - !ruby/object:Gem::Version
35
- version: 0.6.1
36
- version:
43
+ segments:
44
+ - 0
45
+ - 7
46
+ - 2
47
+ version: 0.7.2
48
+ type: :development
49
+ version_requirements: *id002
37
50
  - !ruby/object:Gem::Dependency
38
51
  name: mongoid
39
- type: :development
40
- version_requirement:
41
- version_requirements: !ruby/object:Gem::Requirement
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
42
54
  requirements:
43
55
  - - ~>
44
56
  - !ruby/object:Gem::Version
45
- version: "1.0"
46
- version:
57
+ segments:
58
+ - 2
59
+ - 0
60
+ version: "2.0"
61
+ type: :development
62
+ version_requirements: *id003
47
63
  description:
48
64
  email: nicolas.merouze@gmail.com
49
65
  executables: []
@@ -70,18 +86,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
70
86
  requirements:
71
87
  - - ">="
72
88
  - !ruby/object:Gem::Version
89
+ segments:
90
+ - 0
73
91
  version: "0"
74
- version:
75
92
  required_rubygems_version: !ruby/object:Gem::Requirement
76
93
  requirements:
77
- - - ">="
94
+ - - ">"
78
95
  - !ruby/object:Gem::Version
79
- version: "0"
80
- version:
96
+ segments:
97
+ - 1
98
+ - 3
99
+ - 1
100
+ version: 1.3.1
81
101
  requirements: []
82
102
 
83
103
  rubyforge_project:
84
- rubygems_version: 1.3.5
104
+ rubygems_version: 1.3.6
85
105
  signing_key:
86
106
  specification_version: 3
87
107
  summary: Rails session store class implemented for MongoMapper and Mongoid