sequel-rails 0.9.11 → 0.9.12
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/.travis.yml +24 -41
- data/History.md +8 -0
- data/README.md +38 -3
- data/ci/rails-3.2.gemfile +3 -0
- data/ci/rails-5.0.gemfile +25 -0
- data/lib/action_dispatch/middleware/session/sequel_store.rb +1 -1
- data/lib/generators/sequel/migration/migration_generator.rb +32 -16
- data/lib/sequel_rails.rb +23 -0
- data/lib/sequel_rails/configuration.rb +5 -4
- data/lib/sequel_rails/db_config.rb +19 -19
- data/lib/sequel_rails/railtie.rb +19 -9
- data/lib/sequel_rails/railties/controller_runtime.rb +2 -1
- data/lib/sequel_rails/railties/database.rake +30 -30
- data/lib/sequel_rails/railties/log_subscriber.rb +4 -2
- data/lib/sequel_rails/railties/spring_support.rb +13 -0
- data/lib/sequel_rails/sequel/database/active_support_notification.rb +2 -2
- data/lib/sequel_rails/shellwords.rb +1 -1
- data/lib/sequel_rails/storage.rb +1 -1
- data/lib/sequel_rails/storage/abstract.rb +3 -4
- data/lib/sequel_rails/storage/postgres.rb +0 -1
- data/lib/sequel_rails/version.rb +1 -1
- data/rubocop-todo.yml +9 -0
- data/sequel-rails.gemspec +3 -3
- data/spec/internal/config/database.yml +6 -0
- data/spec/internal/db/migrate/1273253849_add_twitter_handle_to_users.rb +0 -2
- data/spec/lib/generators/sequel/migration_spec.rb +0 -1
- data/spec/lib/generators/sequel/session_migration_spec.rb +0 -1
- data/spec/lib/sequel_rails/configuration_spec.rb +12 -27
- data/spec/lib/sequel_rails/db_config_spec.rb +26 -20
- data/spec/lib/sequel_rails/railtie_spec.rb +4 -4
- data/spec/lib/sequel_rails/railties/database_rake_spec.rb +18 -19
- data/spec/lib/sequel_rails/storage/postgres_spec.rb +1 -1
- metadata +15 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f373b19d13b5acc804458b3a6402e1ad71a5480b
|
4
|
+
data.tar.gz: d204a4d3aa6756161d9cc94b8dcf8733b65722da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06590d5d6130a9ef1a8c81928b6e3cea9fd7aedd85115e133bf2d81a27ef21446e15b9040611a6cedf2a44edee1a555c3e639ed168a8aacaa6821c64cdca40a7
|
7
|
+
data.tar.gz: c244b95d90081edf5fe865ceedaf7b712b3445177a088d0eba8430c0726331945fa52d0550204aa9741973ffa7159d354e0261bf7a02b96bf18159f486be0caf
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
@@ -6,10 +6,12 @@ rvm:
|
|
6
6
|
- 1.8.7
|
7
7
|
- 1.9.3
|
8
8
|
- 2.0.0
|
9
|
-
- 2.1
|
10
|
-
- 2.2
|
9
|
+
- 2.1.8
|
10
|
+
- 2.2.4
|
11
|
+
- 2.3.0
|
11
12
|
- jruby-18mode
|
12
13
|
- jruby-19mode
|
14
|
+
- jruby-9.0.1.0
|
13
15
|
env:
|
14
16
|
- SEQUEL='~> 3.0'
|
15
17
|
- SEQUEL='~> 4.0'
|
@@ -18,68 +20,49 @@ gemfile:
|
|
18
20
|
- ci/rails-4.0.gemfile
|
19
21
|
- ci/rails-4.1.gemfile
|
20
22
|
- ci/rails-4.2.gemfile
|
23
|
+
- ci/rails-5.0.gemfile
|
21
24
|
matrix:
|
25
|
+
allow_failures:
|
26
|
+
- gemfile: ci/rails-5.0.gemfile
|
22
27
|
exclude:
|
23
|
-
- rvm: 2.2
|
28
|
+
- rvm: 2.2.4
|
24
29
|
gemfile: ci/rails-3.2.gemfile
|
25
|
-
|
26
|
-
|
30
|
+
- rvm: 2.3.0
|
31
|
+
gemfile: ci/rails-3.2.gemfile
|
32
|
+
- rvm: jruby-9.0.1.0
|
27
33
|
gemfile: ci/rails-3.2.gemfile
|
28
|
-
env: SEQUEL='~> 4.0'
|
29
|
-
- rvm: ree
|
30
|
-
gemfile: ci/rails-4.0.gemfile
|
31
|
-
env: SEQUEL='~> 3.0'
|
32
34
|
- rvm: ree
|
33
35
|
gemfile: ci/rails-4.0.gemfile
|
34
|
-
env: SEQUEL='~> 4.0'
|
35
|
-
- rvm: 1.8.7
|
36
|
-
gemfile: ci/rails-4.0.gemfile
|
37
|
-
env: SEQUEL='~> 3.0'
|
38
36
|
- rvm: 1.8.7
|
39
37
|
gemfile: ci/rails-4.0.gemfile
|
40
|
-
env: SEQUEL='~> 4.0'
|
41
38
|
- rvm: jruby-18mode
|
42
39
|
gemfile: ci/rails-4.0.gemfile
|
43
|
-
env: SEQUEL='~> 3.0'
|
44
|
-
- rvm: jruby-18mode
|
45
|
-
gemfile: ci/rails-4.0.gemfile
|
46
|
-
env: SEQUEL='~> 4.0'
|
47
40
|
- rvm: ree
|
48
41
|
gemfile: ci/rails-4.1.gemfile
|
49
|
-
env: SEQUEL='~> 3.0'
|
50
|
-
- rvm: ree
|
51
|
-
gemfile: ci/rails-4.1.gemfile
|
52
|
-
env: SEQUEL='~> 4.0'
|
53
|
-
- rvm: 1.8.7
|
54
|
-
gemfile: ci/rails-4.1.gemfile
|
55
|
-
env: SEQUEL='~> 3.0'
|
56
42
|
- rvm: 1.8.7
|
57
43
|
gemfile: ci/rails-4.1.gemfile
|
58
|
-
env: SEQUEL='~> 4.0'
|
59
|
-
- rvm: jruby-18mode
|
60
|
-
gemfile: ci/rails-4.1.gemfile
|
61
|
-
env: SEQUEL='~> 3.0'
|
62
44
|
- rvm: jruby-18mode
|
63
45
|
gemfile: ci/rails-4.1.gemfile
|
64
|
-
env: SEQUEL='~> 4.0'
|
65
|
-
- rvm: ree
|
66
|
-
gemfile: ci/rails-4.2.gemfile
|
67
|
-
env: SEQUEL='~> 3.0'
|
68
46
|
- rvm: ree
|
69
47
|
gemfile: ci/rails-4.2.gemfile
|
70
|
-
env: SEQUEL='~> 4.0'
|
71
48
|
- rvm: 1.8.7
|
72
49
|
gemfile: ci/rails-4.2.gemfile
|
73
|
-
env: SEQUEL='~> 3.0'
|
74
|
-
- rvm: 1.8.7
|
75
|
-
gemfile: ci/rails-4.2.gemfile
|
76
|
-
env: SEQUEL='~> 4.0'
|
77
50
|
- rvm: jruby-18mode
|
78
51
|
gemfile: ci/rails-4.2.gemfile
|
79
|
-
|
52
|
+
- rvm: ree
|
53
|
+
gemfile: ci/rails-5.0.gemfile
|
54
|
+
- rvm: 1.8.7
|
55
|
+
gemfile: ci/rails-5.0.gemfile
|
80
56
|
- rvm: jruby-18mode
|
81
|
-
gemfile: ci/rails-
|
82
|
-
|
57
|
+
gemfile: ci/rails-5.0.gemfile
|
58
|
+
- rvm: jruby-19mode
|
59
|
+
gemfile: ci/rails-5.0.gemfile
|
60
|
+
- rvm: 1.9.3
|
61
|
+
gemfile: ci/rails-5.0.gemfile
|
62
|
+
- rvm: 2.0.0
|
63
|
+
gemfile: ci/rails-5.0.gemfile
|
64
|
+
- rvm: 2.1.8
|
65
|
+
gemfile: ci/rails-5.0.gemfile
|
83
66
|
notifications:
|
84
67
|
email:
|
85
68
|
- jonathan.tron@metrilio.com
|
data/History.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.9.12 (2016-01-18)
|
2
|
+
===================
|
3
|
+
|
4
|
+
* Remove `-i` option from `pg_dump`, removed in PostgreSQL 9.5 (Joseph Halter)
|
5
|
+
* Add support for [Spring](https://github.com/rails/spring) (Jan Berdajs) [#99](https://github.com/TalentBox/sequel-rails/pull/99)
|
6
|
+
* Allow `config.sequel.logger` to be overridden by environments [#98](https://github.com/TalentBox/sequel-rails/issues/98)
|
7
|
+
* Allow Rake tasks `db:` namespace to be reconfigured to something else (John Anderson) [#89](https://github.com/TalentBox/sequel-rails/pull/89)
|
8
|
+
|
1
9
|
0.9.11 (2015-03-13)
|
2
10
|
===================
|
3
11
|
|
data/README.md
CHANGED
@@ -57,6 +57,28 @@ require "action_mailer/railtie"
|
|
57
57
|
require "sprockets/railtie"
|
58
58
|
```
|
59
59
|
|
60
|
+
Then you need to get rid of `ActiveRecord` configurations, that is if you
|
61
|
+
didn't generate the new app with `-O` (or the long form `--skip-active-record`):
|
62
|
+
|
63
|
+
`config/application.rb` and `config/environments/*.rb`
|
64
|
+
|
65
|
+
For example in a fresh `Rails 4.2.4`, you would need to remove those lines:
|
66
|
+
|
67
|
+
```
|
68
|
+
config/application.rb
|
69
|
+
line 27: config.active_record.raise_in_transactional_callbacks = true
|
70
|
+
```
|
71
|
+
|
72
|
+
```
|
73
|
+
config/environments/development.rb
|
74
|
+
line 23: config.active_record.migration_error = :page_load
|
75
|
+
```
|
76
|
+
|
77
|
+
```
|
78
|
+
config/environments/production.rb
|
79
|
+
line 78: config.active_record.dump_schema_after_migration = false
|
80
|
+
```
|
81
|
+
|
60
82
|
Starting with sequel-rails 0.4.0.pre3 we don't change default Sequel behaviour
|
61
83
|
nor include any plugin by default, if you want to get back the previous
|
62
84
|
behaviour, you can create a new initializer (eg: `config/initializers/sequel.rb`)
|
@@ -149,12 +171,22 @@ You can configure some options with the usual rails mechanism, in
|
|
149
171
|
config.sequel.max_connections = 16
|
150
172
|
config.sequel.search_path = %w(mine public)
|
151
173
|
|
152
|
-
# Configure whether database's rake tasks will be loaded or not
|
174
|
+
# Configure whether database's rake tasks will be loaded or not.
|
175
|
+
#
|
176
|
+
# If passed a String or Symbol, this will replace the `db:` namespace for
|
177
|
+
# the database's Rake tasks.
|
178
|
+
#
|
179
|
+
# ex: config.sequel.load_database_tasks = :sequel
|
180
|
+
# will results in `rake db:migrate` to become `rake sequel:migrate`
|
181
|
+
#
|
153
182
|
# Defaults to true
|
154
183
|
config.sequel.load_database_tasks = false
|
155
184
|
|
156
185
|
# This setting disabled the automatic connect after Rails init
|
157
186
|
config.sequel.skip_connect = true
|
187
|
+
|
188
|
+
# If you want to use a specific logger
|
189
|
+
config.sequel.logger = MyLogger.new($stdout)
|
158
190
|
```
|
159
191
|
|
160
192
|
The connection settings are read from the file `config/database.yml` and is
|
@@ -327,7 +359,7 @@ Previous maintainer
|
|
327
359
|
Contributors
|
328
360
|
============
|
329
361
|
|
330
|
-
Improvements
|
362
|
+
Improvements have been made by those awesome contributors:
|
331
363
|
|
332
364
|
* Benjamin Atkin (benatkin)
|
333
365
|
* Gabor Ratky (rgabo)
|
@@ -354,11 +386,14 @@ Improvements has been made by those awesome contributors:
|
|
354
386
|
* Nico Rieck (gix)
|
355
387
|
* Alexander Birkner (BirknerAlex)
|
356
388
|
* kr3ssh (kressh)
|
389
|
+
* John Anderson (djellemah)
|
390
|
+
* Larivact (Larivact)
|
391
|
+
* Jan Berdajs (mrbrdo)
|
357
392
|
|
358
393
|
Credits
|
359
394
|
=======
|
360
395
|
|
361
|
-
The [dm-rails](http://github.com/datamapper/dm-rails) team wrote most of the original code, I just sequel-ized it, but since then most of it
|
396
|
+
The [dm-rails](http://github.com/datamapper/dm-rails) team wrote most of the original code, I just sequel-ized it, but since then most of it has been either adapted or rewritten.
|
362
397
|
|
363
398
|
Copyright
|
364
399
|
=========
|
data/ci/rails-3.2.gemfile
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gem 'railties', '~> 5.0.0.beta1'
|
4
|
+
gem 'activemodel', '~> 5.0.0.beta1'
|
5
|
+
|
6
|
+
gemspec :path => '../'
|
7
|
+
|
8
|
+
gem 'sequel', "#{ENV['SEQUEL']}"
|
9
|
+
|
10
|
+
gem 'fakefs', '0.5.3', :require => 'fakefs/safe'
|
11
|
+
|
12
|
+
# MRI/Rubinius Adapter Dependencies
|
13
|
+
platform :ruby do
|
14
|
+
gem 'pg'
|
15
|
+
gem 'mysql'
|
16
|
+
gem 'mysql2'
|
17
|
+
gem 'sqlite3'
|
18
|
+
end
|
19
|
+
|
20
|
+
# JRuby Adapter Dependencies
|
21
|
+
platform :jruby do
|
22
|
+
gem 'jdbc-sqlite3'
|
23
|
+
gem 'jdbc-mysql'
|
24
|
+
gem 'jdbc-postgres'
|
25
|
+
end
|
@@ -7,7 +7,7 @@ module ActionDispatch
|
|
7
7
|
module Session
|
8
8
|
class SequelStore < AbstractStore
|
9
9
|
SESSION_RECORD_KEY = 'rack.session.record'.freeze
|
10
|
-
ENV_SESSION_OPTIONS_KEY =
|
10
|
+
ENV_SESSION_OPTIONS_KEY = 'rack.session.options'.freeze
|
11
11
|
|
12
12
|
cattr_accessor :session_class
|
13
13
|
def self.session_class
|
@@ -23,27 +23,43 @@ module Sequel
|
|
23
23
|
|
24
24
|
def set_local_assigns!
|
25
25
|
if file_name =~ /^(add|drop|remove)_.*_(?:to|from)_(.*)/
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
column_action = Regexp.last_match[1]
|
27
|
+
set_alter!(
|
28
|
+
Regexp.last_match[2].pluralize,
|
29
|
+
column_action,
|
30
|
+
column_action == 'add'
|
31
|
+
)
|
30
32
|
elsif file_name =~ /^(create|drop)_(.*)$/
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
table_action = Regexp.last_match[1]
|
34
|
+
set_other!(
|
35
|
+
Regexp.last_match[2].pluralize,
|
36
|
+
table_action,
|
37
|
+
table_action == 'create'
|
38
|
+
)
|
35
39
|
else
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
@use_change = false
|
43
|
-
@column_action = 'add'
|
40
|
+
table_name = if file_name =~ /^(alter)_(.*)/
|
41
|
+
Regexp.last_match[2].pluralize
|
42
|
+
else
|
43
|
+
file_name.pluralize
|
44
|
+
end
|
45
|
+
set_alter! table_name, 'add', false
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
49
|
+
def set_other!(table_name, table_action, use_change)
|
50
|
+
@table_name = table_name
|
51
|
+
@table_action = table_action
|
52
|
+
@column_action = 'add'
|
53
|
+
@use_change = use_change
|
54
|
+
end
|
55
|
+
|
56
|
+
def set_alter!(table_name, column_action, use_change)
|
57
|
+
@table_action = 'alter'
|
58
|
+
@table_name = table_name
|
59
|
+
@column_action = column_action == 'add' ? 'add' : 'drop'
|
60
|
+
@use_change = use_change
|
61
|
+
end
|
62
|
+
|
47
63
|
def validate_file_name!
|
48
64
|
fail IllegalMigrationNameError file_name unless file_name =~ /^[_a-z0-9]+$/
|
49
65
|
end
|
data/lib/sequel_rails.rb
CHANGED
@@ -6,4 +6,27 @@ module SequelRails
|
|
6
6
|
def self.jruby?
|
7
7
|
(defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby') || defined?(JRUBY_VERSION)
|
8
8
|
end
|
9
|
+
|
10
|
+
if Hash.public_instance_methods.include? :deep_symbolize_keys
|
11
|
+
def self.deep_symbolize_keys(hash)
|
12
|
+
hash.deep_symbolize_keys
|
13
|
+
end
|
14
|
+
else
|
15
|
+
def self.deep_symbolize_keys(hash)
|
16
|
+
h = {}
|
17
|
+
hash.each { |key, value| h[key.to_sym] = deep_symbolize_keys_map(value) }
|
18
|
+
h
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.deep_symbolize_keys_map(value)
|
22
|
+
case value
|
23
|
+
when Hash
|
24
|
+
deep_symbolize_keys(value)
|
25
|
+
when Array
|
26
|
+
value.map { |v| deep_symbolize_keys_map(v) }
|
27
|
+
else
|
28
|
+
value
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
9
32
|
end
|
@@ -22,7 +22,7 @@ module SequelRails
|
|
22
22
|
super
|
23
23
|
self.root = Rails.root
|
24
24
|
self.raw = nil
|
25
|
-
self.logger =
|
25
|
+
self.logger = nil
|
26
26
|
self.migration_dir = nil
|
27
27
|
self.schema_dump = default_schema_dump
|
28
28
|
self.load_database_tasks = true
|
@@ -39,7 +39,8 @@ module SequelRails
|
|
39
39
|
# default config - use just the environment variable
|
40
40
|
Hash.new normalize_repository_config({})
|
41
41
|
) do |normalized, environment|
|
42
|
-
name
|
42
|
+
name = environment.first
|
43
|
+
config = environment.last
|
43
44
|
normalized[name] = normalize_repository_config(config)
|
44
45
|
normalized
|
45
46
|
end
|
@@ -54,9 +55,9 @@ module SequelRails
|
|
54
55
|
end
|
55
56
|
|
56
57
|
if normalized_config['url']
|
57
|
-
::Sequel.connect normalized_config['url'], normalized_config
|
58
|
+
::Sequel.connect normalized_config['url'], SequelRails.deep_symbolize_keys(normalized_config)
|
58
59
|
else
|
59
|
-
::Sequel.connect normalized_config
|
60
|
+
::Sequel.connect SequelRails.deep_symbolize_keys(normalized_config)
|
60
61
|
end.tap { after_connect.call if after_connect.respond_to?(:call) }
|
61
62
|
end
|
62
63
|
|
@@ -25,7 +25,7 @@ module SequelRails
|
|
25
25
|
# the gsub transforms foo:/bar
|
26
26
|
# (which jdbc doesn't like)
|
27
27
|
# into foo:///bar
|
28
|
-
self[:url] || make_url.to_s.gsub(
|
28
|
+
self[:url] || make_url.to_s.gsub(%r{:/(?=\w)}, ':///')
|
29
29
|
end
|
30
30
|
|
31
31
|
private
|
@@ -48,18 +48,19 @@ module SequelRails
|
|
48
48
|
|
49
49
|
def normalize_db(root)
|
50
50
|
return unless include? :adapter
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
return unless root
|
52
|
+
return unless adapter.include?('sqlite') && database != ':memory:'
|
53
|
+
# sqlite expects path as the database name
|
54
|
+
self[:database] = File.expand_path database.to_s, root
|
55
55
|
end
|
56
56
|
|
57
57
|
def make_url
|
58
58
|
if adapter =~ /^(jdbc|do):/
|
59
59
|
scheme, subadapter = adapter.split ':'
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
URI::Generic.build(
|
61
|
+
:scheme => scheme,
|
62
|
+
:opaque => build_url(to_hash.merge 'adapter' => subadapter).to_s
|
63
|
+
)
|
63
64
|
else
|
64
65
|
build_url to_hash
|
65
66
|
end
|
@@ -67,11 +68,9 @@ module SequelRails
|
|
67
68
|
|
68
69
|
def build_url(cfg)
|
69
70
|
if (adapter = cfg['adapter']) =~ /sqlite/ &&
|
70
|
-
|
71
|
+
(database = cfg['database']) =~ /^:/
|
71
72
|
# magic sqlite databases
|
72
|
-
return URI::Generic.build
|
73
|
-
:scheme => adapter,
|
74
|
-
:opaque => database
|
73
|
+
return URI::Generic.build(:scheme => adapter, :opaque => database)
|
75
74
|
end
|
76
75
|
|
77
76
|
# these four are handled separately
|
@@ -84,17 +83,18 @@ module SequelRails
|
|
84
83
|
end
|
85
84
|
|
86
85
|
path = cfg['database'].to_s
|
87
|
-
path = "/#{path}" if path =~
|
86
|
+
path = "/#{path}" if path =~ %r{^(?!/)}
|
88
87
|
|
89
88
|
q = URI.encode_www_form(params)
|
90
89
|
q = nil if q.empty?
|
91
90
|
|
92
|
-
URI::Generic.build
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
91
|
+
URI::Generic.build(
|
92
|
+
:scheme => cfg['adapter'],
|
93
|
+
:host => cfg['host'],
|
94
|
+
:port => cfg['port'],
|
95
|
+
:path => path,
|
96
|
+
:query => q
|
97
|
+
)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
end
|