sequel-rails 0.9.16 → 1.1.1

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 (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