couchrest_session_store 0.1.2 → 0.1.3

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 (3) hide show
  1. data/Rakefile +7 -0
  2. data/lib/couchrest_session_store.rb +9 -1
  3. metadata +34 -2
data/Rakefile CHANGED
@@ -1,2 +1,9 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+ require 'rake/testtask'
4
+
5
+ task default: [:test]
6
+
7
+ Rake::TestTask.new do |t|
8
+ t.pattern = "test/*_test.rb"
9
+ end
@@ -87,13 +87,21 @@ class CouchRestSessionStore < ActionDispatch::Session::AbstractStore
87
87
  def build_or_update_doc(sid, session, marshal_data)
88
88
  marshal_data = true if marshal_data.nil?
89
89
  doc = secure_get(sid)
90
- doc.clear.merge! data_for_doc(session, marshal_data)
90
+ update_doc doc, data_for_doc(session, marshal_data)
91
91
  return doc
92
92
  rescue RestClient::ResourceNotFound
93
93
  data = data_for_doc(session, marshal_data).merge({"_id" => sid})
94
94
  return CouchRest::Document.new(data)
95
95
  end
96
96
 
97
+ def update_doc(doc, data)
98
+ # clean up old data but leave id and revision intact
99
+ doc.reject! do |k,v|
100
+ k[0] != '_'
101
+ end
102
+ doc.merge! data
103
+ end
104
+
97
105
  def data_for_doc(session, marshal_data)
98
106
  if marshal_data
99
107
  { "data" => self.class.marshal(session) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couchrest_session_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-03 00:00:00.000000000 Z
12
+ date: 2013-07-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: couchrest
@@ -59,6 +59,38 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: minitest
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
62
94
  description: A Rails Session Store based on CouchRest Model
63
95
  email:
64
96
  - azul@leap.se