sequel-rails 0.9.9 → 0.9.10
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/.gitignore +4 -0
- data/History.md +9 -0
- data/README.md +5 -0
- data/Rakefile +1 -0
- data/lib/sequel_rails/configuration.rb +1 -0
- data/lib/sequel_rails/migrations.rb +2 -11
- data/lib/sequel_rails/railtie.rb +8 -2
- data/lib/sequel_rails/storage/abstract.rb +51 -0
- data/lib/sequel_rails/storage/jdbc.rb +8 -0
- data/lib/sequel_rails/storage/postgres.rb +4 -0
- data/lib/sequel_rails/version.rb +1 -1
- data/spec/lib/sequel_rails/configuration_spec.rb +17 -0
- data/spec/lib/sequel_rails/railtie_spec.rb +9 -0
- data/spec/lib/sequel_rails/railties/database_rake_spec.rb +19 -7
- metadata +58 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eba946c66e7d9fa0575c3ca8be8d9b2814aea6f5
|
4
|
+
data.tar.gz: d2babb6feab008ba8a5351cdc8a8be90bad8b2d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51725615f608c37dca7faafb45abd22861438d3b26d428c37577062703c9d9a6712a0585c7af3f0967419d823ff70d3b53c38ccf269f3d76af1dbd3b99754a24
|
7
|
+
data.tar.gz: 0df87880f42c040b73b312f397b65e82411109db500043ed6ae32def27c59c397851284cc7ed0628d4d3cb3129dccd0e6bfa226d7160c2b1efa00647f8abdc8e
|
data/.gitignore
CHANGED
data/History.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
0.9.10 (2015-02-26)
|
2
|
+
===================
|
3
|
+
|
4
|
+
* Set `search_path` on PostgreSQL when dumping migration informations
|
5
|
+
[#86](https://github.com/TalentBox/sequel-rails/pull/86)
|
6
|
+
* Add `ActiveSupport.on_load :sequel` support (kr3ssh) [#85](https://github.com/TalentBox/sequel-rails/pull/85)
|
7
|
+
* Added option to skip connect after Rails initialize with new option
|
8
|
+
`config.sequel.skip_connect = true`. (Alexander Birkner) [#83](https://github.com/TalentBox/sequel-rails/pull/83)
|
9
|
+
|
1
10
|
0.9.9 (2015-01-04)
|
2
11
|
==================
|
3
12
|
|
data/README.md
CHANGED
@@ -152,6 +152,9 @@ You can configure some options with the usual rails mechanism, in
|
|
152
152
|
# Configure whether database's rake tasks will be loaded or not
|
153
153
|
# Defaults to true
|
154
154
|
config.sequel.load_database_tasks = false
|
155
|
+
|
156
|
+
# This setting disabled the automatic connect after Rails init
|
157
|
+
config.sequel.skip_connect = true
|
155
158
|
```
|
156
159
|
|
157
160
|
The connection settings are read from the file `config/database.yml` and is
|
@@ -349,6 +352,8 @@ Improvements has been made by those awesome contributors:
|
|
349
352
|
* a3gis (a3gis)
|
350
353
|
* Andrey Chernih (andreychernih)
|
351
354
|
* Nico Rieck (gix)
|
355
|
+
* Alexander Birkner (BirknerAlex)
|
356
|
+
* kr3ssh (kressh)
|
352
357
|
|
353
358
|
Credits
|
354
359
|
=======
|
data/Rakefile
CHANGED
@@ -18,23 +18,14 @@ module SequelRails
|
|
18
18
|
|
19
19
|
def dump_schema_information(opts = {})
|
20
20
|
sql = opts.fetch :sql
|
21
|
+
adapter = SequelRails::Storage.adapter_for(Rails.env)
|
21
22
|
db = ::Sequel::Model.db
|
22
23
|
res = ''
|
23
24
|
|
24
25
|
if available_migrations?
|
25
26
|
migrator_class = ::Sequel::Migrator.send(:migrator_class, migrations_dir)
|
26
27
|
migrator = migrator_class.new db, migrations_dir
|
27
|
-
|
28
|
-
inserts = migrator.ds.map do |hash|
|
29
|
-
insert = migrator.ds.insert_sql(hash)
|
30
|
-
sql ? "#{insert};" : " self << #{insert.inspect}"
|
31
|
-
end
|
32
|
-
|
33
|
-
if inserts.any?
|
34
|
-
res << "Sequel.migration do\n change do\n" unless sql
|
35
|
-
res << inserts.join("\n")
|
36
|
-
res << "\n end\nend\n" unless sql
|
37
|
-
end
|
28
|
+
res << adapter.schema_information_dump(migrator, sql)
|
38
29
|
end
|
39
30
|
res
|
40
31
|
end
|
data/lib/sequel_rails/railtie.rb
CHANGED
@@ -39,6 +39,10 @@ module SequelRails
|
|
39
39
|
load 'sequel_rails/railties/database.rake' if app.config.sequel.load_database_tasks
|
40
40
|
end
|
41
41
|
|
42
|
+
initializer 'sequel.load_hooks' do |app|
|
43
|
+
::ActiveSupport.run_load_hooks(:sequel, ::Sequel::Model)
|
44
|
+
end
|
45
|
+
|
42
46
|
initializer 'sequel.configuration' do |app|
|
43
47
|
configure_sequel app
|
44
48
|
end
|
@@ -56,8 +60,10 @@ module SequelRails
|
|
56
60
|
setup_controller_runtime
|
57
61
|
end
|
58
62
|
|
59
|
-
initializer 'sequel.connect' do |
|
60
|
-
|
63
|
+
initializer 'sequel.connect' do |app|
|
64
|
+
unless app.config.sequel[:skip_connect]
|
65
|
+
::SequelRails.setup ::Rails.env
|
66
|
+
end
|
61
67
|
end
|
62
68
|
|
63
69
|
# Support overwriting crucial steps in subclasses
|
@@ -69,6 +69,28 @@ module SequelRails
|
|
69
69
|
@collation ||= config['collation'] || ENV['COLLATION']
|
70
70
|
end
|
71
71
|
|
72
|
+
def search_path
|
73
|
+
@search_path ||= config['search_path'] || '"$user", public'
|
74
|
+
end
|
75
|
+
|
76
|
+
def schema_information_dump(migrator, sql_dump)
|
77
|
+
res = ''
|
78
|
+
inserts = schema_information_inserts(migrator, sql_dump)
|
79
|
+
if inserts.any?
|
80
|
+
res = inserts.join("\n")
|
81
|
+
unless sql_dump
|
82
|
+
res = <<-EOS.strip_heredoc
|
83
|
+
Sequel.migration do
|
84
|
+
change do
|
85
|
+
#{res}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
EOS
|
89
|
+
end
|
90
|
+
end
|
91
|
+
res
|
92
|
+
end
|
93
|
+
|
72
94
|
private
|
73
95
|
|
74
96
|
def add_option(commands, name, value)
|
@@ -92,6 +114,35 @@ module SequelRails
|
|
92
114
|
def safe_exec(args)
|
93
115
|
exec SequelRails::Shellwords.join(Array(args))
|
94
116
|
end
|
117
|
+
|
118
|
+
def schema_information_inserts(migrator, sql_dump)
|
119
|
+
migrator.ds.map do |hash|
|
120
|
+
insert = migrator.ds.insert_sql(hash)
|
121
|
+
sql_dump ? "#{insert};" : "self << #{insert.inspect}"
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def schema_information_dump_with_search_path(migrator, sql_dump)
|
126
|
+
res = ''
|
127
|
+
inserts = schema_information_inserts(migrator, sql_dump)
|
128
|
+
if inserts.any?
|
129
|
+
set_search_path_sql = "SET search_path TO #{search_path}"
|
130
|
+
res = inserts.join("\n")
|
131
|
+
if sql_dump
|
132
|
+
res = "#{set_search_path_sql};\n#{res}"
|
133
|
+
else
|
134
|
+
res = <<-EOS.strip_heredoc
|
135
|
+
Sequel.migration do
|
136
|
+
change do
|
137
|
+
self << #{set_search_path_sql.inspect}
|
138
|
+
#{res}
|
139
|
+
end
|
140
|
+
end
|
141
|
+
EOS
|
142
|
+
end
|
143
|
+
end
|
144
|
+
res
|
145
|
+
end
|
95
146
|
end
|
96
147
|
end
|
97
148
|
end
|
data/lib/sequel_rails/version.rb
CHANGED
@@ -83,6 +83,22 @@ describe SequelRails::Configuration do
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
describe '#skip_connect' do
|
87
|
+
subject { described_class.new }
|
88
|
+
|
89
|
+
it 'defaults to nil' do
|
90
|
+
expect(subject.skip_connect).to be nil
|
91
|
+
end
|
92
|
+
it 'can be assigned' do
|
93
|
+
subject.skip_connect = true
|
94
|
+
expect(subject.skip_connect).to be true
|
95
|
+
end
|
96
|
+
it 'can be set from merging another hash' do
|
97
|
+
subject.merge!(:skip_connect => true)
|
98
|
+
expect(subject.skip_connect).to be true
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
86
102
|
describe '#connect' do
|
87
103
|
let(:environments) do
|
88
104
|
{
|
@@ -347,5 +363,6 @@ describe SequelRails::Configuration do
|
|
347
363
|
subject.connect environment
|
348
364
|
end
|
349
365
|
end
|
366
|
+
|
350
367
|
end
|
351
368
|
end
|
@@ -127,4 +127,13 @@ describe SequelRails::Railtie do
|
|
127
127
|
end
|
128
128
|
end
|
129
129
|
end
|
130
|
+
|
131
|
+
it 'run load hooks for :sequel passing ::Sequel::Model' do
|
132
|
+
class_context = nil
|
133
|
+
::ActiveSupport.on_load :sequel do
|
134
|
+
class_context = self
|
135
|
+
end
|
136
|
+
app
|
137
|
+
expect( class_context ).to be ::Sequel::Model
|
138
|
+
end
|
130
139
|
end
|
@@ -29,13 +29,25 @@ describe 'Database rake tasks', :no_transaction => true do
|
|
29
29
|
sql = Sequel::Model.db.from(
|
30
30
|
:schema_migrations
|
31
31
|
).insert_sql(:filename => '1273253849_add_twitter_handle_to_users.rb')
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
32
|
+
content = if ENV['TEST_ADAPTER']=='postgresql'
|
33
|
+
<<-EOS.strip_heredoc
|
34
|
+
Sequel.migration do
|
35
|
+
change do
|
36
|
+
self << "SET search_path TO \\"$user\\", public"
|
37
|
+
self << #{sql.inspect}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
EOS
|
41
|
+
else
|
42
|
+
<<-EOS.strip_heredoc
|
43
|
+
Sequel.migration do
|
44
|
+
change do
|
45
|
+
self << #{sql.inspect}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
EOS
|
49
|
+
end
|
50
|
+
expect(File.read(schema)).to include content
|
39
51
|
end
|
40
52
|
end
|
41
53
|
end
|
metadata
CHANGED
@@ -1,190 +1,176 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.10
|
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: 2015-
|
12
|
+
date: 2015-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name: activemodel
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
|
-
- -
|
17
|
+
- - '>='
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: '0'
|
21
|
-
|
20
|
+
name: activemodel
|
22
21
|
prerelease: false
|
22
|
+
type: :runtime
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name: railties
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
|
-
- -
|
31
|
+
- - '>='
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: 3.2.0
|
35
|
-
|
34
|
+
name: railties
|
36
35
|
prerelease: false
|
36
|
+
type: :runtime
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 3.2.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name: actionpack
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
45
44
|
requirements:
|
46
|
-
- -
|
45
|
+
- - '>='
|
47
46
|
- !ruby/object:Gem::Version
|
48
47
|
version: 3.2.0
|
49
|
-
|
48
|
+
name: actionpack
|
50
49
|
prerelease: false
|
50
|
+
type: :runtime
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 3.2.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name: sequel
|
58
57
|
requirement: !ruby/object:Gem::Requirement
|
59
58
|
requirements:
|
60
|
-
- -
|
59
|
+
- - '>='
|
61
60
|
- !ruby/object:Gem::Version
|
62
61
|
version: '3.28'
|
63
|
-
- -
|
62
|
+
- - <
|
64
63
|
- !ruby/object:Gem::Version
|
65
64
|
version: '5.0'
|
66
|
-
|
65
|
+
name: sequel
|
67
66
|
prerelease: false
|
67
|
+
type: :runtime
|
68
68
|
version_requirements: !ruby/object:Gem::Requirement
|
69
69
|
requirements:
|
70
|
-
- -
|
70
|
+
- - '>='
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '3.28'
|
73
|
-
- -
|
73
|
+
- - <
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '5.0'
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
|
-
name: combustion
|
78
77
|
requirement: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
|
-
- -
|
79
|
+
- - '>='
|
81
80
|
- !ruby/object:Gem::Version
|
82
81
|
version: '0'
|
83
|
-
|
82
|
+
name: combustion
|
84
83
|
prerelease: false
|
84
|
+
type: :development
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
|
-
name: generator_spec
|
92
91
|
requirement: !ruby/object:Gem::Requirement
|
93
92
|
requirements:
|
94
|
-
- -
|
93
|
+
- - '>='
|
95
94
|
- !ruby/object:Gem::Version
|
96
95
|
version: '0'
|
97
|
-
|
96
|
+
name: generator_spec
|
98
97
|
prerelease: false
|
98
|
+
type: :development
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name: rake
|
106
105
|
requirement: !ruby/object:Gem::Requirement
|
107
106
|
requirements:
|
108
|
-
- -
|
107
|
+
- - '>='
|
109
108
|
- !ruby/object:Gem::Version
|
110
109
|
version: 0.8.7
|
111
|
-
|
110
|
+
name: rake
|
112
111
|
prerelease: false
|
112
|
+
type: :development
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: 0.8.7
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
|
-
name: rspec
|
120
119
|
requirement: !ruby/object:Gem::Requirement
|
121
120
|
requirements:
|
122
|
-
- -
|
121
|
+
- - ~>
|
123
122
|
- !ruby/object:Gem::Version
|
124
123
|
version: '3.1'
|
125
|
-
|
124
|
+
name: rspec
|
126
125
|
prerelease: false
|
126
|
+
type: :development
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ~>
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '3.1'
|
132
132
|
- !ruby/object:Gem::Dependency
|
133
|
-
name: rspec-rails
|
134
133
|
requirement: !ruby/object:Gem::Requirement
|
135
134
|
requirements:
|
136
|
-
- -
|
135
|
+
- - ~>
|
137
136
|
- !ruby/object:Gem::Version
|
138
137
|
version: '3.1'
|
139
|
-
|
138
|
+
name: rspec-rails
|
140
139
|
prerelease: false
|
140
|
+
type: :development
|
141
141
|
version_requirements: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ~>
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '3.1'
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
|
-
name: rubocop
|
148
147
|
requirement: !ruby/object:Gem::Requirement
|
149
148
|
requirements:
|
150
|
-
- -
|
149
|
+
- - ~>
|
151
150
|
- !ruby/object:Gem::Version
|
152
151
|
version: 0.28.0
|
153
|
-
|
152
|
+
name: rubocop
|
154
153
|
prerelease: false
|
154
|
+
type: :development
|
155
155
|
version_requirements: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - ~>
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: 0.28.0
|
160
160
|
- !ruby/object:Gem::Dependency
|
161
|
-
name: ammeter
|
162
161
|
requirement: !ruby/object:Gem::Requirement
|
163
162
|
requirements:
|
164
163
|
- - '='
|
165
164
|
- !ruby/object:Gem::Version
|
166
165
|
version: 1.1.2
|
167
|
-
|
166
|
+
name: ammeter
|
168
167
|
prerelease: false
|
168
|
+
type: :development
|
169
169
|
version_requirements: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - '='
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: 1.1.2
|
174
|
-
- !ruby/object:Gem::Dependency
|
175
|
-
name: test-unit
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
181
|
-
type: :development
|
182
|
-
prerelease: false
|
183
|
-
version_requirements: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - ">="
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '0'
|
188
174
|
description: Integrate Sequel with Rails (3.x and 4.x)
|
189
175
|
email:
|
190
176
|
- brasten@gmail.com
|
@@ -195,10 +181,10 @@ extra_rdoc_files:
|
|
195
181
|
- LICENSE
|
196
182
|
- README.md
|
197
183
|
files:
|
198
|
-
-
|
199
|
-
-
|
200
|
-
-
|
201
|
-
-
|
184
|
+
- .gitignore
|
185
|
+
- .rspec
|
186
|
+
- .rubocop.yml
|
187
|
+
- .travis.yml
|
202
188
|
- Gemfile
|
203
189
|
- History.md
|
204
190
|
- LICENSE
|
@@ -274,25 +260,25 @@ homepage: http://talentbox.github.io/sequel-rails/
|
|
274
260
|
licenses:
|
275
261
|
- MIT
|
276
262
|
metadata: {}
|
277
|
-
post_install_message:
|
263
|
+
post_install_message:
|
278
264
|
rdoc_options:
|
279
|
-
-
|
265
|
+
- --charset=UTF-8
|
280
266
|
require_paths:
|
281
267
|
- lib
|
282
268
|
required_ruby_version: !ruby/object:Gem::Requirement
|
283
269
|
requirements:
|
284
|
-
- -
|
270
|
+
- - '>='
|
285
271
|
- !ruby/object:Gem::Version
|
286
272
|
version: '0'
|
287
273
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
288
274
|
requirements:
|
289
|
-
- -
|
275
|
+
- - '>='
|
290
276
|
- !ruby/object:Gem::Version
|
291
277
|
version: '0'
|
292
278
|
requirements: []
|
293
|
-
rubyforge_project:
|
294
|
-
rubygems_version: 2.
|
295
|
-
signing_key:
|
279
|
+
rubyforge_project:
|
280
|
+
rubygems_version: 2.1.9
|
281
|
+
signing_key:
|
296
282
|
specification_version: 4
|
297
283
|
summary: Use Sequel with Rails (3.x and 4.x)
|
298
284
|
test_files:
|