merb_sequel 1.0.0 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +20 -0
- data/README.rdoc +139 -0
- data/Rakefile +39 -68
- data/lib/generators/templates/migration/schema/migrations/%file_name%.rb +3 -3
- data/lib/generators/templates/resource_controller/app/controllers/%file_name%.rb +11 -8
- data/lib/merb/orms/sequel/connection.rb +10 -1
- data/lib/merb/orms/sequel/model.rb +38 -0
- data/lib/merb/session/sequel_session.rb +20 -41
- data/lib/merb_sequel.rb +64 -11
- data/lib/merb_sequel/merbtasks.rb +52 -9
- data/lib/merb_sequel/rspec/sequel.rb +5 -0
- data/lib/merb_sequel/version.rb +5 -0
- data/spec/config/database.yml +11 -0
- data/spec/log/merb_test.log +1224 -0
- data/spec/log/test.log +0 -0
- data/spec/merb_sequel_session_spec.rb +53 -0
- data/spec/merb_sequel_spec.rb +15 -0
- data/spec/rspec/sequel_spec.rb +18 -0
- data/spec/sequel_ext_spec.rb +33 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_controller.rb +20 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/spec_model.rb +13 -0
- data/spec/test.db +0 -0
- metadata +56 -43
- data/README +0 -49
- data/lib/sequel_ext/model.rb +0 -7
data/CHANGELOG
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
== 1.0.9 "Get official" 2009-11-10
|
2
|
+
|
3
|
+
* Moved to gihub.com/merb and to merb_sequel
|
4
|
+
* Added Merb::Sequel::VERSION constant
|
5
|
+
* Moved to jeweler to match with Merb
|
6
|
+
|
7
|
+
== 1.0.8
|
8
|
+
|
9
|
+
* Dropped support for Sequel versions < 2.7.0
|
10
|
+
|
11
|
+
== 1.0.7
|
12
|
+
|
13
|
+
* Add support for ActiveModel via active_model plugin for Sequel > 3.5.0 or
|
14
|
+
Merb::Orms::Sequel::Model::ActiveModelCompatibility module. Added
|
15
|
+
:load_activemodel_compatibility configuration option to handle ActiveModel
|
16
|
+
compatibility loading. See README for
|
17
|
+
more information.
|
18
|
+
* Removed Merb::Orms::Sequel::ModelExtensions in favour to Merb::Orms::Sequel::Model::ActiveModelCompatibility
|
19
|
+
* Added spec.opts
|
20
|
+
* Fixing session storage
|
data/README.rdoc
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
= merb_sequel
|
2
|
+
|
3
|
+
A plug-in for the Merb framework that provides support for Sequel models.
|
4
|
+
|
5
|
+
This is fork of the code in the official merb-plugins
|
6
|
+
(http://github.com/wycats/merb-plugins) repository. I did separate repository
|
7
|
+
and Gem to allow faster and more independent release cycle to keep up with the
|
8
|
+
Sequel monthly releases.
|
9
|
+
|
10
|
+
Plug-in is compatible with Merb 0.9.9 and higher and Sequel 1.4.0 and
|
11
|
+
higher including 2.x.x and <b>3.x.x</b>.
|
12
|
+
|
13
|
+
<b>Any issues please report to http://github.com/pk/merb_sequel/issues</b>.
|
14
|
+
|
15
|
+
|
16
|
+
== Install
|
17
|
+
Since version 1.0.6 I've moved gem hosting to Gemcutter. So now you need
|
18
|
+
to install gem with:
|
19
|
+
|
20
|
+
gem install pk-merb_sequel --source http://gemcutter.org
|
21
|
+
|
22
|
+
For versions <= 1.0.5 I used GitHub:
|
23
|
+
|
24
|
+
gem install pk-merb_sequel --source http://gems.github.com
|
25
|
+
|
26
|
+
|
27
|
+
=== Merb < 1.1
|
28
|
+
Add pk-merb_sequel as a dependency to your <b>config/dependencies.rb</b>:
|
29
|
+
|
30
|
+
dependency 'pk-merb_sequel', :require_as => 'merb_sequel'
|
31
|
+
|
32
|
+
<b>Because of Merb < 1.1 ORM plugin loading mechanism you neeed to change init.rb</b>:
|
33
|
+
|
34
|
+
use_orm :sequel
|
35
|
+
|
36
|
+
to
|
37
|
+
|
38
|
+
Merb.orm = :sequel
|
39
|
+
|
40
|
+
If you don't do this Merb will complain that there is no merb_sequel gem also
|
41
|
+
if you have merb_sequel installed it will load your system wide gem instead of
|
42
|
+
the pk-merb_sequel gem.
|
43
|
+
|
44
|
+
|
45
|
+
=== Merb >= 1.1, add it as a dependency to your <b>Gemfile</b>:
|
46
|
+
|
47
|
+
gem 'pk-merb_sequel', :require_as => 'merb_sequel'
|
48
|
+
|
49
|
+
Add Sequel as you ORM of choice to init.rb:
|
50
|
+
|
51
|
+
use_orm :sequel
|
52
|
+
|
53
|
+
|
54
|
+
== Compatibility
|
55
|
+
|
56
|
+
=== Ruby 1.8.7:
|
57
|
+
Sequel 2.11.0:: All pass
|
58
|
+
Sequel 2.12.0:: All pass
|
59
|
+
Sequel 3.0.0:: All pass
|
60
|
+
Sequel 3.5.0:: All pass
|
61
|
+
|
62
|
+
=== Ruby 1.9.1:
|
63
|
+
Sequel 2.11.0:: All pass except session spec failing due to Marshall issues.
|
64
|
+
Sequel 2.12.0:: All pass except session spec failing due to Marshall issues.
|
65
|
+
Sequel 3.0.0:: All pass except session spec failing due to Marshall issues.
|
66
|
+
Sequel 3.5.0:: All pass except session spec failing due to Marshall issues.
|
67
|
+
|
68
|
+
=== ActiveModel compatibility
|
69
|
+
In Merb > 1.0.13 we use ActiveModel interface for the ORM plugins. merb_sequel
|
70
|
+
now supports this for all versions of Sequel by including compatibilit layers
|
71
|
+
by default or loading active model plugin when using Sequel > 3.5.0
|
72
|
+
|
73
|
+
You can use configuration to not load compatibility layer:
|
74
|
+
Merb::Plugins.config[:merb_sequel][:load_activemodel_compatibility] = false
|
75
|
+
|
76
|
+
== RSpec transactional examples
|
77
|
+
|
78
|
+
If you want to cut significantly runtime of your test suite which is using
|
79
|
+
Sequel you can enable transactional examples. Just add following line to
|
80
|
+
your spec_helper.rb or any spec you want to be transactional:
|
81
|
+
|
82
|
+
require 'merb_sequel/rspec/sequel'
|
83
|
+
|
84
|
+
Now <b>each example is wrapped in a Sequel transaction and when example finishes
|
85
|
+
Sequel::Error::Rollback is raised which cause transaction to rollback</b>.
|
86
|
+
|
87
|
+
== Connection options & Settings
|
88
|
+
|
89
|
+
Settings:
|
90
|
+
|
91
|
+
* :load_activemodel_compatibility. By default is set to true. If set to false, ActiveModelCompatibility is not loaded.
|
92
|
+
|
93
|
+
Merb Sequel plug-in uses config/database.yml for connection configuration.
|
94
|
+
|
95
|
+
Options are:
|
96
|
+
|
97
|
+
* adapter. :sqlite is assumed by default.
|
98
|
+
* database, default is "hey_dude_configure_your_database". In case of SQLite this
|
99
|
+
should be either :memory: or file path for SQLite.
|
100
|
+
* db_type: default is nil. Use "mssql" to connect to MSSQL using ODBC.
|
101
|
+
* encoding or charset, default is utf8.
|
102
|
+
* host. localhost is assumed by default.
|
103
|
+
* logger default is Merb.logger
|
104
|
+
* password. <b>WARNING: default password is an empty string</b>.
|
105
|
+
* socket Use socket to connect to DB.
|
106
|
+
* username or user, default is an empty string
|
107
|
+
|
108
|
+
|
109
|
+
== Generators
|
110
|
+
|
111
|
+
After you install the plug-in, merb-gen can generate Sequel models for you:
|
112
|
+
|
113
|
+
merb-gen model --orm=sequel Article
|
114
|
+
|
115
|
+
same with the resources
|
116
|
+
|
117
|
+
merb-gen resource --orm=sequel Article
|
118
|
+
|
119
|
+
|
120
|
+
<b>Note that if you have specified that you use Sequel in init.rb or environment
|
121
|
+
specific init file (for instance, environments/development.rb)
|
122
|
+
via use_orm :sequel, you don't need to specify --orm option explicitly when
|
123
|
+
using merb-gen</b>.
|
124
|
+
|
125
|
+
|
126
|
+
== Contributors
|
127
|
+
|
128
|
+
Originally written by Duane Johnson (canadaduane at gmail.com).
|
129
|
+
|
130
|
+
Contributions by:
|
131
|
+
* Wayne E. Seguin
|
132
|
+
* Lance Carlson
|
133
|
+
* Jacob Dunphy
|
134
|
+
* Lori Holden
|
135
|
+
* Pavel Kunc
|
136
|
+
* e-mac
|
137
|
+
* Piotr Usewicz
|
138
|
+
|
139
|
+
Maintained by Pavel Kunc (pavel.kunc at gmail.com)
|
data/Rakefile
CHANGED
@@ -1,77 +1,48 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
|
4
|
-
|
5
|
-
require 'merb-core/
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
s.rubyforge_project = RUBY_FORGE_PROJECT
|
29
|
-
s.name = GEM_NAME
|
30
|
-
s.version = GEM_VERSION
|
31
|
-
s.platform = Gem::Platform::RUBY
|
32
|
-
s.has_rdoc = true
|
33
|
-
s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
|
34
|
-
s.summary = PROJECT_SUMMARY
|
35
|
-
s.description = PROJECT_DESCRIPTION
|
36
|
-
s.author = GEM_AUTHOR
|
37
|
-
s.email = GEM_EMAIL
|
38
|
-
s.homepage = PROJECT_URL
|
39
|
-
s.add_dependency("merb-core", ">= 0.9.9")
|
40
|
-
s.add_dependency("sequel", ">= 1.4.0")
|
41
|
-
s.files = %w(LICENSE README Rakefile TODO Generators) + Dir.glob("{lib}/**/*")
|
42
|
-
end
|
43
|
-
|
44
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
45
|
-
pkg.gem_spec = spec
|
46
|
-
end
|
1
|
+
require "rubygems"
|
2
|
+
require "rake"
|
3
|
+
|
4
|
+
# Assume a typical dev checkout to fetch the current merb-core version
|
5
|
+
require File.expand_path('../../merb/merb-core/lib/merb-core/version', __FILE__)
|
6
|
+
|
7
|
+
# Load this library's version information
|
8
|
+
require File.expand_path('../lib/merb_sequel/version', __FILE__)
|
9
|
+
|
10
|
+
begin
|
11
|
+
require 'jeweler'
|
12
|
+
|
13
|
+
Jeweler::Tasks.new do |gemspec|
|
14
|
+
gemspec.version = Merb::Sequel::VERSION
|
15
|
+
gemspec.name = "merb_sequel"
|
16
|
+
gemspec.description = "Merb plugin that provides support for Sequel"
|
17
|
+
gemspec.summary = "Merb plugin that provides support for Sequel"
|
18
|
+
gemspec.authors = [ "Wayne E. Seguin", "Lance Carlson", "Lori Holden", "Pavel Kunc" ]
|
19
|
+
gemspec.email = "wayneeseguin@gmail.com, lancecarlson@gmail.com, email@loriholden.com, pavel.kunc@gmail.com"
|
20
|
+
gemspec.homepage = "http://github.com/merb/merb_sequel"
|
21
|
+
gemspec.files = %w(CHANGELOG LICENSE Rakefile README.rdoc TODO Generators) + Dir['{lib,spec}/**/*']
|
22
|
+
# Runtime dependencies
|
23
|
+
gemspec.add_dependency "merb-core", ">= 0.9.9"
|
24
|
+
gemspec.add_dependency "sequel", ">= 2.7.0"
|
25
|
+
# Development dependencies
|
26
|
+
gemspec.add_development_dependency "rspec", ">= 1.2.9"
|
27
|
+
end
|
47
28
|
|
48
|
-
|
49
|
-
task :install do
|
50
|
-
Merb::RakeHelper.install(GEM_NAME, :version => GEM_VERSION)
|
51
|
-
end
|
29
|
+
Jeweler::GemcutterTasks.new
|
52
30
|
|
53
|
-
|
54
|
-
|
55
|
-
Merb::RakeHelper.uninstall(GEM_NAME, :version => GEM_VERSION)
|
31
|
+
rescue LoadError
|
32
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
56
33
|
end
|
57
34
|
|
58
|
-
|
59
|
-
|
60
|
-
File.
|
61
|
-
|
62
|
-
|
35
|
+
require 'spec/rake/spectask'
|
36
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
37
|
+
spec.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
|
38
|
+
spec.libs << 'lib' << 'spec'
|
39
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
63
40
|
end
|
64
41
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
if ENV["TASK"]
|
70
|
-
ENV["TASK"].split(',').map { |task| "spec/**/#{task}_spec.rb" }
|
71
|
-
else
|
72
|
-
FileList['spec/**/*_spec.rb']
|
73
|
-
end
|
74
|
-
end
|
42
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
43
|
+
spec.libs << 'lib' << 'spec'
|
44
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
45
|
+
spec.rcov = true
|
75
46
|
end
|
76
47
|
|
77
48
|
desc 'Default: run spec examples'
|
@@ -1,6 +1,6 @@
|
|
1
|
-
# For details on Sequel migrations see
|
2
|
-
# http://sequel.rubyforge.org/
|
3
|
-
# http://sequel.rubyforge.org/rdoc/classes/Sequel/
|
1
|
+
# For details on Sequel migrations see:
|
2
|
+
# * http://sequel.rubyforge.org/
|
3
|
+
# * http://sequel.rubyforge.org/rdoc-plugins/classes/Sequel/Migration.html
|
4
4
|
|
5
5
|
class <%= class_name %> < Sequel::Migration
|
6
6
|
|
@@ -25,9 +25,10 @@ class <%= class_name %> < Application
|
|
25
25
|
# POST /<%= resource_path %>
|
26
26
|
def create
|
27
27
|
@<%= singular_model %> = <%= model_class_name %>.new(params[:<%= singular_model %>])
|
28
|
-
|
28
|
+
begin
|
29
|
+
@<%= singular_model %>.save
|
29
30
|
redirect url(:<%= (modules.collect{|m| m.downcase} << singular_model).join("_") %>, @<%= singular_model %>)
|
30
|
-
|
31
|
+
rescue Sequel::ValidationFailed
|
31
32
|
render :new
|
32
33
|
end
|
33
34
|
end
|
@@ -44,10 +45,11 @@ class <%= class_name %> < Application
|
|
44
45
|
def update
|
45
46
|
@<%= singular_model %> = <%= model_class_name %>[params[:id]]
|
46
47
|
raise NotFound unless @<%= singular_model %>
|
47
|
-
|
48
|
+
begin
|
49
|
+
@<%= singular_model %>.update(params[:<%= singular_model %>])
|
48
50
|
redirect url(:<%= (modules.collect{|m| m.downcase} << singular_model).join("_") %>, @<%= singular_model %>)
|
49
|
-
|
50
|
-
|
51
|
+
rescue Sequel::ValidationFailed
|
52
|
+
render :edit
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
@@ -55,12 +57,13 @@ class <%= class_name %> < Application
|
|
55
57
|
def destroy
|
56
58
|
@<%= singular_model %> = <%= model_class_name %>[params[:id]]
|
57
59
|
raise NotFound unless @<%= singular_model %>
|
58
|
-
|
60
|
+
begin
|
61
|
+
@<%= singular_model %>.destroy
|
59
62
|
redirect url(:<%= (modules.collect{|m| m.downcase} << singular_model).join("_") %>s)
|
60
|
-
|
63
|
+
rescue Sequel::Error
|
61
64
|
raise BadRequest
|
62
65
|
end
|
63
66
|
end
|
64
67
|
|
65
68
|
end
|
66
|
-
<% end -%>
|
69
|
+
<% end -%>
|
@@ -10,6 +10,14 @@ module Merb
|
|
10
10
|
def config_file() Merb.dir_for(:config) / "database.yml" end
|
11
11
|
def sample_dest() Merb.dir_for(:config) / "database.yml.sample" end
|
12
12
|
def sample_source() File.dirname(__FILE__) / "database.yml.sample" end
|
13
|
+
|
14
|
+
# Determine if we use Sequel 3 or not
|
15
|
+
#
|
16
|
+
# ==== Returns
|
17
|
+
# Bool:: True if using Sequel >= 2.12.0 or False
|
18
|
+
def new_sequel?
|
19
|
+
!!(/^(2.12|3)/ =~ ::Sequel.version)
|
20
|
+
end
|
13
21
|
|
14
22
|
def copy_sample_config
|
15
23
|
FileUtils.cp sample_source, sample_dest unless File.exists?(sample_dest)
|
@@ -19,7 +27,7 @@ module Merb
|
|
19
27
|
@config ||= begin
|
20
28
|
# Convert string keys to symbols
|
21
29
|
full_config = Erubis.load_yaml_file(config_file)
|
22
|
-
config =
|
30
|
+
config = Merb::Plugins.config[:merb_sequel]
|
23
31
|
(full_config[Merb.environment.to_sym] || full_config[Merb.environment] || full_config[:development]).each do |key, value|
|
24
32
|
config[key.to_sym] = value
|
25
33
|
end
|
@@ -66,6 +74,7 @@ module Merb
|
|
66
74
|
options[:database] = config[:database] || "hey_dude_configure_your_database"
|
67
75
|
# MSSQL support
|
68
76
|
options[:db_type] = config[:db_type] if config[:db_type]
|
77
|
+
options[:socket] = config[:socket] if config[:socket]
|
69
78
|
options[:logger] = Merb.logger
|
70
79
|
options
|
71
80
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Merb
|
2
|
+
module Orms
|
3
|
+
module Sequel
|
4
|
+
module Model
|
5
|
+
|
6
|
+
# This code has been taken from Sequel 3.5.0
|
7
|
+
# Sequel::Plugins::ActiveModel
|
8
|
+
# http://sequel.rubyforge.org/rdoc-plugins/classes/Sequel/Plugins/ActiveModel.html
|
9
|
+
module ActiveModelCompatibility
|
10
|
+
# Record that an object was destroyed, for later use by
|
11
|
+
# destroyed?
|
12
|
+
def after_destroy
|
13
|
+
super
|
14
|
+
@destroyed = true
|
15
|
+
end
|
16
|
+
|
17
|
+
# Whether the object was destroyed by destroy. Not true
|
18
|
+
# for objects that were deleted.
|
19
|
+
def destroyed?
|
20
|
+
@destroyed == true
|
21
|
+
end
|
22
|
+
|
23
|
+
# An alias for new?
|
24
|
+
def new_record?
|
25
|
+
new?
|
26
|
+
end
|
27
|
+
|
28
|
+
# With the ActiveModel plugin, Sequel model objects are already
|
29
|
+
# compliant, so this returns self.
|
30
|
+
def to_model
|
31
|
+
self
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'sequel'
|
2
|
+
require 'sequel/extensions/migration' if Merb::Orms::Sequel.new_sequel?
|
2
3
|
require 'merb-core/dispatch/session'
|
3
|
-
require 'base64'
|
4
4
|
|
5
5
|
module Merb
|
6
6
|
|
7
|
-
Merb::Plugins.config[:merb_sequel][:session_table_name] ||=
|
7
|
+
Merb::Plugins.config[:merb_sequel][:session_table_name] ||= 'sessions'
|
8
8
|
|
9
9
|
# Default session migration run if a sessions table does not yet exist.
|
10
10
|
#
|
@@ -48,18 +48,26 @@ module Merb
|
|
48
48
|
# ContainerSession:: The session corresponding to the ID.
|
49
49
|
def retrieve_session(session_id)
|
50
50
|
if item = find(:session_id => session_id)
|
51
|
-
item.data
|
51
|
+
Marshal.load(item.data.unpack('m').first)
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
55
|
# ==== Parameters
|
56
56
|
# session_id<String>:: ID of the session to set.
|
57
57
|
# data<ContainerSession>:: The session to set.
|
58
|
-
def store_session(session_id,
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
def store_session(session_id, session_data)
|
59
|
+
session_data = session_data.empty? ? nil : [Marshal.dump(session_data)].pack('m')
|
60
|
+
begin
|
61
|
+
if item = self.find(:session_id => session_id)
|
62
|
+
item.update(:data => session_data)
|
63
|
+
else
|
64
|
+
item = self.new(:session_id => session_id,
|
65
|
+
:data => session_data,
|
66
|
+
:created_at => Time.now)
|
67
|
+
item.save
|
68
|
+
end
|
69
|
+
rescue => e
|
70
|
+
Merb.logger.error("#{e.message} when trying to save #{session_data}")
|
63
71
|
end
|
64
72
|
end
|
65
73
|
|
@@ -70,49 +78,20 @@ module Merb
|
|
70
78
|
item.delete
|
71
79
|
end
|
72
80
|
end
|
73
|
-
|
74
|
-
# ==== Returns
|
75
|
-
# Integer:: The maximum length of the 'data' column.
|
76
|
-
def data_column_size_limit
|
77
|
-
512 # TODO - figure out how much space we actually have
|
78
|
-
end
|
79
|
-
|
80
|
-
alias :create_table! :create_table
|
81
|
-
alias :drop_table! :drop_table
|
82
|
-
end
|
83
|
-
|
84
|
-
# Lazy-unserialize session state.
|
85
|
-
def data
|
86
|
-
@data ||= (@values[:data] ? Marshal.load(@values[:data]) : {})
|
87
|
-
end
|
88
|
-
|
89
|
-
# Virtual attribute writer - override.
|
90
|
-
def data=(hsh)
|
91
|
-
@data = hsh if hsh.is_a?(Hash)
|
92
|
-
end
|
93
|
-
|
94
|
-
# Has the session been loaded yet?
|
95
|
-
def loaded?
|
96
|
-
!!@data
|
97
|
-
end
|
98
81
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
82
|
+
unless Merb::Orms::Sequel.new_sequel?
|
83
|
+
alias :create_table! :create_table
|
84
|
+
alias :drop_table! :drop_table
|
85
|
+
end
|
104
86
|
end
|
105
|
-
|
106
87
|
end
|
107
88
|
|
108
89
|
class SequelSession < SessionStoreContainer
|
109
|
-
|
110
90
|
# The session store type
|
111
91
|
self.session_store_type = :sequel
|
112
92
|
|
113
93
|
# The store object is the model class itself
|
114
94
|
self.store = SequelSessionStore
|
115
|
-
|
116
95
|
end
|
117
96
|
|
118
97
|
end
|