sequel-rails 0.9.16 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +39 -60
  3. data/Gemfile +4 -13
  4. data/History.md +54 -0
  5. data/README.md +28 -10
  6. data/Rakefile +1 -1
  7. data/ci/rails-4.0.gemfile +3 -11
  8. data/ci/rails-4.1.gemfile +3 -11
  9. data/ci/rails-4.2.gemfile +3 -11
  10. data/ci/rails-5.0.gemfile +3 -3
  11. data/ci/rails-5.1.gemfile +28 -0
  12. data/ci/rails-5.2.gemfile +28 -0
  13. data/ci/rails-6.0.gemfile +28 -0
  14. data/lib/action_dispatch/middleware/session/sequel_store.rb +21 -9
  15. data/lib/generators/sequel.rb +7 -7
  16. data/lib/generators/sequel/migration/migration_generator.rb +1 -1
  17. data/lib/generators/sequel/migration/templates/migration.rb.erb +2 -0
  18. data/lib/generators/sequel/model/model_generator.rb +2 -1
  19. data/lib/generators/sequel/session_migration/session_migration_generator.rb +1 -1
  20. data/lib/sequel_rails/configuration.rb +7 -4
  21. data/lib/sequel_rails/db_config.rb +8 -4
  22. data/lib/sequel_rails/migrations.rb +23 -7
  23. data/lib/sequel_rails/railtie.rb +21 -5
  24. data/lib/sequel_rails/railties/database.rake +31 -6
  25. data/lib/sequel_rails/sequel/plugins/rails_extensions.rb +1 -1
  26. data/lib/sequel_rails/storage.rb +2 -4
  27. data/lib/sequel_rails/storage/abstract.rb +17 -5
  28. data/lib/sequel_rails/storage/jdbc.rb +2 -2
  29. data/lib/sequel_rails/storage/mysql.rb +1 -0
  30. data/lib/sequel_rails/storage/postgres.rb +7 -3
  31. data/lib/sequel_rails/version.rb +1 -1
  32. data/rubocop-todo.yml +4 -1
  33. data/sequel-rails.gemspec +13 -21
  34. data/spec/helpers/io.rb +1 -5
  35. data/spec/integration/sessions_controller_spec.rb +6 -1
  36. data/spec/lib/generators/sequel/migration_spec.rb +9 -1
  37. data/spec/lib/generators/sequel/session_migration_spec.rb +1 -1
  38. data/spec/lib/sequel_rails/configuration_spec.rb +78 -0
  39. data/spec/lib/sequel_rails/migrations_spec.rb +21 -4
  40. data/spec/lib/sequel_rails/railtie_spec.rb +1 -1
  41. data/spec/lib/sequel_rails/railties/database_rake_spec.rb +42 -0
  42. data/spec/lib/sequel_rails/storage/mysql_spec.rb +1 -1
  43. data/spec/lib/sequel_rails/storage/postgres_spec.rb +1 -1
  44. data/spec/spec_helper.rb +5 -2
  45. metadata +29 -34
  46. data/ci/rails-3.2.gemfile +0 -42
@@ -123,7 +123,7 @@ describe SequelRails::Railtie do
123
123
  it 'initializing the application fails' do
124
124
  expect do
125
125
  configure_sequel!
126
- end.to raise_error
126
+ end.to raise_error RuntimeError, "Database not configured.\nPlease create config/database.yml or set DATABASE_URL in environment."
127
127
  end
128
128
  end
129
129
  end
@@ -99,4 +99,46 @@ describe 'Database rake tasks', :no_transaction => true do
99
99
  end
100
100
  end
101
101
  end
102
+
103
+ describe 'db:sessions:clear' do
104
+ let(:sessions) { Sequel::Model.db.from(:sessions) }
105
+
106
+ after { sessions.delete }
107
+
108
+ it 'truncates sessions table' do
109
+ sessions.insert session_id: 'foo', data: ''
110
+ sessions.insert session_id: 'bar', data: ''
111
+
112
+ Dir.chdir app_root do
113
+ expect { `rake db:sessions:clear` }.to change { sessions.count }.by(-2)
114
+ end
115
+ end
116
+ end
117
+
118
+ describe 'db:sessions:trim' do
119
+ let(:sessions) { Sequel::Model.db.from(:sessions) }
120
+
121
+ before do
122
+ sessions.insert session_id: 'foo', data: '', updated_at: (Date.today - 60).to_time
123
+ sessions.insert session_id: 'bar', data: '', updated_at: Date.today.to_time
124
+ end
125
+
126
+ after { sessions.delete }
127
+
128
+ it 'delete sessions before cutoff' do
129
+ Dir.chdir app_root do
130
+ expect { `rake db:sessions:trim` }.to change { sessions.count }.by(-1)
131
+ end
132
+ end
133
+
134
+ context 'with threshold' do
135
+ it 'delete sessions before cutoff' do
136
+ sessions.insert session_id: 'baz', data: '', updated_at: (Date.today - 44).to_time
137
+
138
+ Dir.chdir app_root do
139
+ expect { `rake db:sessions:trim[45]` }.to change { sessions.count }.by(-1)
140
+ end
141
+ end
142
+ end
143
+ end
102
144
  end
@@ -46,7 +46,7 @@ describe SequelRails::Storage::Mysql, :mysql do
46
46
  let(:dump_file_name) { 'dump.sql' }
47
47
  it 'uses the mysqldump command' do
48
48
  expect(subject).to receive(:`).with(
49
- "mysqldump --user\\=#{username} --password\\=#{password} --host\\=#{host} --port\\=#{port} --no-data --result-file\\=#{dump_file_name} #{database}"
49
+ "mysqldump --user\\=#{username} --password\\=#{password} --host\\=#{host} --port\\=#{port} --no-data --skip-dump-date --result-file\\=#{dump_file_name} #{database}"
50
50
  )
51
51
  subject._dump dump_file_name
52
52
  end
@@ -69,7 +69,7 @@ describe SequelRails::Storage::Postgres, :postgres do
69
69
  describe '#_drop' do
70
70
  it 'uses the dropdb command' do
71
71
  expect(subject).to receive(:`).with(
72
- "dropdb --username\\=#{username} --host\\=#{host} --port\\=#{port} #{database}"
72
+ "dropdb --username\\=#{username} --host\\=#{host} --port\\=#{port} --if-exists #{database}"
73
73
  )
74
74
  subject._drop
75
75
  end
@@ -26,8 +26,10 @@ RSpec.configure do |config|
26
26
  :en,
27
27
  'sequel' => {
28
28
  'models' => {
29
- 'user' => 'translated user' }
30
- })
29
+ 'user' => 'translated user'
30
+ }
31
+ }
32
+ )
31
33
  end
32
34
 
33
35
  config.around :each do |example|
@@ -51,6 +53,7 @@ end
51
53
  begin
52
54
  require 'sequel_rails/storage'
53
55
  require 'sequel/extensions/migration'
56
+ ::SequelRails.setup(Rails.env)
54
57
  load "#{Rails.root}/db/schema.rb.init"
55
58
  Sequel::Migration.descendants.first.apply Sequel::Model.db, :up
56
59
  rescue Sequel::DatabaseConnectionError => e
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.16
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brasten Sager (brasten)
8
8
  - Jonathan TRON
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-06-22 00:00:00.000000000 Z
12
+ date: 2020-06-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -17,42 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: 4.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: 4.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: railties
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 3.2.0
34
+ version: 4.0.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 3.2.0
41
+ version: 4.0.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: actionpack
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 3.2.0
48
+ version: 4.0.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 3.2.0
55
+ version: 4.0.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: sequel
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -62,7 +62,7 @@ dependencies:
62
62
  version: '3.28'
63
63
  - - "<"
64
64
  - !ruby/object:Gem::Version
65
- version: '5.0'
65
+ version: '6.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
@@ -72,7 +72,7 @@ dependencies:
72
72
  version: '3.28'
73
73
  - - "<"
74
74
  - !ruby/object:Gem::Version
75
- version: '5.0'
75
+ version: '6.0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: combustion
78
78
  requirement: !ruby/object:Gem::Requirement
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: 0.8.7
111
111
  - - "<"
112
112
  - !ruby/object:Gem::Version
113
- version: '11.0'
113
+ version: '12.1'
114
114
  type: :development
115
115
  prerelease: false
116
116
  version_requirements: !ruby/object:Gem::Requirement
@@ -120,69 +120,63 @@ dependencies:
120
120
  version: 0.8.7
121
121
  - - "<"
122
122
  - !ruby/object:Gem::Version
123
- version: '11.0'
123
+ version: '12.1'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rspec
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '3.1'
130
+ version: '3.7'
131
131
  type: :development
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '3.1'
137
+ version: '3.7'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: rspec-rails
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '3.1'
145
- - - "<"
146
- - !ruby/object:Gem::Version
147
- version: '3.3'
144
+ version: '3.7'
148
145
  type: :development
149
146
  prerelease: false
150
147
  version_requirements: !ruby/object:Gem::Requirement
151
148
  requirements:
152
149
  - - "~>"
153
150
  - !ruby/object:Gem::Version
154
- version: '3.1'
155
- - - "<"
156
- - !ruby/object:Gem::Version
157
- version: '3.3'
151
+ version: '3.7'
158
152
  - !ruby/object:Gem::Dependency
159
153
  name: rubocop
160
154
  requirement: !ruby/object:Gem::Requirement
161
155
  requirements:
162
156
  - - "~>"
163
157
  - !ruby/object:Gem::Version
164
- version: 0.33.0
158
+ version: 0.52.0
165
159
  type: :development
166
160
  prerelease: false
167
161
  version_requirements: !ruby/object:Gem::Requirement
168
162
  requirements:
169
163
  - - "~>"
170
164
  - !ruby/object:Gem::Version
171
- version: 0.33.0
165
+ version: 0.52.0
172
166
  - !ruby/object:Gem::Dependency
173
167
  name: ammeter
174
168
  requirement: !ruby/object:Gem::Requirement
175
169
  requirements:
176
170
  - - '='
177
171
  - !ruby/object:Gem::Version
178
- version: 1.1.3
172
+ version: 1.1.4
179
173
  type: :development
180
174
  prerelease: false
181
175
  version_requirements: !ruby/object:Gem::Requirement
182
176
  requirements:
183
177
  - - '='
184
178
  - !ruby/object:Gem::Version
185
- version: 1.1.3
179
+ version: 1.1.4
186
180
  - !ruby/object:Gem::Dependency
187
181
  name: test-unit
188
182
  requirement: !ruby/object:Gem::Requirement
@@ -216,11 +210,13 @@ files:
216
210
  - LICENSE
217
211
  - README.md
218
212
  - Rakefile
219
- - ci/rails-3.2.gemfile
220
213
  - ci/rails-4.0.gemfile
221
214
  - ci/rails-4.1.gemfile
222
215
  - ci/rails-4.2.gemfile
223
216
  - ci/rails-5.0.gemfile
217
+ - ci/rails-5.1.gemfile
218
+ - ci/rails-5.2.gemfile
219
+ - ci/rails-6.0.gemfile
224
220
  - config.ru
225
221
  - lib/action_dispatch/middleware/session/sequel_store.rb
226
222
  - lib/generators/sequel.rb
@@ -288,7 +284,7 @@ homepage: http://talentbox.github.io/sequel-rails/
288
284
  licenses:
289
285
  - MIT
290
286
  metadata: {}
291
- post_install_message:
287
+ post_install_message:
292
288
  rdoc_options:
293
289
  - "--charset=UTF-8"
294
290
  require_paths:
@@ -297,16 +293,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
297
293
  requirements:
298
294
  - - ">="
299
295
  - !ruby/object:Gem::Version
300
- version: '0'
296
+ version: 2.2.2
301
297
  required_rubygems_version: !ruby/object:Gem::Requirement
302
298
  requirements:
303
299
  - - ">="
304
300
  - !ruby/object:Gem::Version
305
- version: '0'
301
+ version: 1.8.11
306
302
  requirements: []
307
- rubyforge_project:
308
- rubygems_version: 2.5.1
309
- signing_key:
303
+ rubygems_version: 3.1.2
304
+ signing_key:
310
305
  specification_version: 4
311
306
  summary: Use Sequel with Rails (3.x and 4.x)
312
307
  test_files:
@@ -1,42 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'railties', '~> 3.2.13'
4
-
5
- gemspec :path => '../'
6
-
7
- gem 'sequel', "#{ENV['SEQUEL']}"
8
-
9
- gem 'fakefs', '0.5.3', :require => 'fakefs/safe'
10
-
11
- # activesupport has an undeclared dependency on tzinfo prior to 4.0.0
12
- gem 'tzinfo'
13
-
14
- if RUBY_VERSION < '1.9'
15
- gem 'i18n', '< 0.7.0'
16
- gem 'rake', '< 11.0.0'
17
- end
18
- if RUBY_VERSION < '2.0'
19
- gem 'rack-cache', "< 1.3.0"
20
- end
21
-
22
- # MRI/Rubinius Adapter Dependencies
23
- platform :ruby do
24
- case
25
- when RUBY_VERSION < '1.9'
26
- gem 'pg', '~> 0.17.1'
27
- when RUBY_VERSION < '2.0'
28
- gem 'pg', '~> 0.18.4'
29
- else
30
- gem 'pg'
31
- end
32
- gem 'mysql'
33
- gem 'mysql2'
34
- gem 'sqlite3'
35
- end
36
-
37
- # JRuby Adapter Dependencies
38
- platform :jruby do
39
- gem 'jdbc-sqlite3'
40
- gem 'jdbc-mysql'
41
- gem 'jdbc-postgres'
42
- end