sequelizer 0.3.0 → 0.4.0
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/CHANGELOG.md +31 -0
- data/README.md +10 -12
- data/lib/sequel/extensions/cold_col.rb +11 -19
- data/lib/sequel/extensions/db_opts.rb +2 -8
- data/lib/sequel/extensions/funky.rb +75 -22
- data/lib/sequel/extensions/make_readyable.rb +10 -18
- data/lib/sequel/extensions/more_sql.rb +2 -6
- data/lib/sequel/extensions/platform.rb +19 -35
- data/lib/sequel/extensions/settable.rb +25 -12
- data/lib/sequel/extensions/smart_select_remove.rb +79 -21
- data/lib/sequel/extensions/sql_recorder.rb +0 -4
- data/lib/sequel/extensions/unionize.rb +2 -10
- data/lib/sequel/extensions/usable.rb +0 -4
- data/lib/sequelizer/cli.rb +15 -36
- data/lib/sequelizer/connection_maker.rb +42 -11
- data/lib/sequelizer/env_config.rb +2 -4
- data/lib/sequelizer/options.rb +75 -67
- data/lib/sequelizer/version.rb +1 -3
- data/lib/sequelizer/yaml_config.rb +10 -13
- data/lib/sequelizer.rb +14 -12
- metadata +36 -51
- data/lib/sequelizer/gemfile_modifier.rb +0 -91
- data/lib/sequelizer/monkey_patches/database_in_after_connect.rb +0 -28
- data/lib/sequelizer/options_hash.rb +0 -9
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sequelizer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Duryea
|
|
@@ -136,79 +136,81 @@ dependencies:
|
|
|
136
136
|
- !ruby/object:Gem::Version
|
|
137
137
|
version: '0.25'
|
|
138
138
|
- !ruby/object:Gem::Dependency
|
|
139
|
-
name:
|
|
139
|
+
name: rubocop-rails-omakase
|
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
|
141
141
|
requirements:
|
|
142
142
|
- - "~>"
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '1.
|
|
144
|
+
version: '1.1'
|
|
145
145
|
type: :development
|
|
146
146
|
prerelease: false
|
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
|
149
149
|
- - "~>"
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '1.
|
|
151
|
+
version: '1.1'
|
|
152
152
|
- !ruby/object:Gem::Dependency
|
|
153
|
-
name:
|
|
153
|
+
name: rubocop-rake
|
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
|
155
155
|
requirements:
|
|
156
|
-
- - "
|
|
157
|
-
- !ruby/object:Gem::Version
|
|
158
|
-
version: '7'
|
|
159
|
-
- - "<"
|
|
156
|
+
- - "~>"
|
|
160
157
|
- !ruby/object:Gem::Version
|
|
161
|
-
version: '
|
|
162
|
-
type: :
|
|
158
|
+
version: '0.7'
|
|
159
|
+
type: :development
|
|
163
160
|
prerelease: false
|
|
164
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
165
162
|
requirements:
|
|
166
|
-
- - "
|
|
167
|
-
- !ruby/object:Gem::Version
|
|
168
|
-
version: '7'
|
|
169
|
-
- - "<"
|
|
163
|
+
- - "~>"
|
|
170
164
|
- !ruby/object:Gem::Version
|
|
171
|
-
version: '
|
|
165
|
+
version: '0.7'
|
|
172
166
|
- !ruby/object:Gem::Dependency
|
|
173
|
-
name:
|
|
167
|
+
name: rubocop-sequel
|
|
174
168
|
requirement: !ruby/object:Gem::Requirement
|
|
175
169
|
requirements:
|
|
176
|
-
- - "
|
|
177
|
-
- !ruby/object:Gem::Version
|
|
178
|
-
version: '2.1'
|
|
179
|
-
- - "<"
|
|
170
|
+
- - "~>"
|
|
180
171
|
- !ruby/object:Gem::Version
|
|
181
|
-
version: '4
|
|
182
|
-
type: :
|
|
172
|
+
version: '0.4'
|
|
173
|
+
type: :development
|
|
183
174
|
prerelease: false
|
|
184
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
176
|
requirements:
|
|
186
|
-
- - "
|
|
177
|
+
- - "~>"
|
|
187
178
|
- !ruby/object:Gem::Version
|
|
188
|
-
version: '
|
|
189
|
-
|
|
179
|
+
version: '0.4'
|
|
180
|
+
- !ruby/object:Gem::Dependency
|
|
181
|
+
name: simplecov
|
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
184
|
+
- - "~>"
|
|
190
185
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: '
|
|
186
|
+
version: '1.0'
|
|
187
|
+
type: :development
|
|
188
|
+
prerelease: false
|
|
189
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
190
|
+
requirements:
|
|
191
|
+
- - "~>"
|
|
192
|
+
- !ruby/object:Gem::Version
|
|
193
|
+
version: '1.0'
|
|
192
194
|
- !ruby/object:Gem::Dependency
|
|
193
|
-
name:
|
|
195
|
+
name: dotenv
|
|
194
196
|
requirement: !ruby/object:Gem::Requirement
|
|
195
197
|
requirements:
|
|
196
198
|
- - ">="
|
|
197
199
|
- !ruby/object:Gem::Version
|
|
198
|
-
version: '
|
|
200
|
+
version: '2.1'
|
|
199
201
|
- - "<"
|
|
200
202
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '
|
|
203
|
+
version: '4.0'
|
|
202
204
|
type: :runtime
|
|
203
205
|
prerelease: false
|
|
204
206
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
207
|
requirements:
|
|
206
208
|
- - ">="
|
|
207
209
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '
|
|
210
|
+
version: '2.1'
|
|
209
211
|
- - "<"
|
|
210
212
|
- !ruby/object:Gem::Version
|
|
211
|
-
version: '
|
|
213
|
+
version: '4.0'
|
|
212
214
|
- !ruby/object:Gem::Dependency
|
|
213
215
|
name: kvcsv
|
|
214
216
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -223,20 +225,6 @@ dependencies:
|
|
|
223
225
|
- - "~>"
|
|
224
226
|
- !ruby/object:Gem::Version
|
|
225
227
|
version: '0.1'
|
|
226
|
-
- !ruby/object:Gem::Dependency
|
|
227
|
-
name: pp
|
|
228
|
-
requirement: !ruby/object:Gem::Requirement
|
|
229
|
-
requirements:
|
|
230
|
-
- - ">="
|
|
231
|
-
- !ruby/object:Gem::Version
|
|
232
|
-
version: '0'
|
|
233
|
-
type: :runtime
|
|
234
|
-
prerelease: false
|
|
235
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
236
|
-
requirements:
|
|
237
|
-
- - ">="
|
|
238
|
-
- !ruby/object:Gem::Version
|
|
239
|
-
version: '0'
|
|
240
228
|
- !ruby/object:Gem::Dependency
|
|
241
229
|
name: sequel
|
|
242
230
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -266,7 +254,7 @@ dependencies:
|
|
|
266
254
|
- !ruby/object:Gem::Version
|
|
267
255
|
version: '1.0'
|
|
268
256
|
description: Easily establish a connection to a database via Sequel gem using options
|
|
269
|
-
specified in config/
|
|
257
|
+
specified in config/sequelizer.yml or .env files
|
|
270
258
|
email:
|
|
271
259
|
- aguynamedryan@gmail.com
|
|
272
260
|
executables:
|
|
@@ -298,10 +286,7 @@ files:
|
|
|
298
286
|
- lib/sequelizer/cli.rb
|
|
299
287
|
- lib/sequelizer/connection_maker.rb
|
|
300
288
|
- lib/sequelizer/env_config.rb
|
|
301
|
-
- lib/sequelizer/gemfile_modifier.rb
|
|
302
|
-
- lib/sequelizer/monkey_patches/database_in_after_connect.rb
|
|
303
289
|
- lib/sequelizer/options.rb
|
|
304
|
-
- lib/sequelizer/options_hash.rb
|
|
305
290
|
- lib/sequelizer/version.rb
|
|
306
291
|
- lib/sequelizer/yaml_config.rb
|
|
307
292
|
homepage: https://github.com/outcomesinsights/sequelizer
|
|
@@ -325,5 +310,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
325
310
|
requirements: []
|
|
326
311
|
rubygems_version: 4.0.20
|
|
327
312
|
specification_version: 4
|
|
328
|
-
summary: Sequel database connections via config/
|
|
313
|
+
summary: Sequel database connections via config/sequelizer.yml or .env
|
|
329
314
|
test_files: []
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
require_relative 'options'
|
|
2
|
-
|
|
3
|
-
module Sequelizer
|
|
4
|
-
class GemfileModifier
|
|
5
|
-
|
|
6
|
-
attr_reader :options
|
|
7
|
-
|
|
8
|
-
def initialize(options = {})
|
|
9
|
-
@options = options
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def modify
|
|
13
|
-
check_for_gemfile
|
|
14
|
-
if gemfile_needs_modification?
|
|
15
|
-
modify_gemfile
|
|
16
|
-
run_bundle unless options['skip-bundle']
|
|
17
|
-
else
|
|
18
|
-
puts 'Gemfile needs no modification'
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
def modify_gemfile
|
|
25
|
-
puts %(Adding "#{gem_line}" to Gemfile)
|
|
26
|
-
return if options['dry-run']
|
|
27
|
-
|
|
28
|
-
File.write(gemfile, modified_lines.join("\n"))
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def proper_gem
|
|
32
|
-
opts = Options.new
|
|
33
|
-
@proper_gem ||= case opts.adapter
|
|
34
|
-
when 'postgres'
|
|
35
|
-
'pg'
|
|
36
|
-
when 'sqlite'
|
|
37
|
-
'sqlite3'
|
|
38
|
-
when 'mysql'
|
|
39
|
-
'mysql2'
|
|
40
|
-
when 'tinytds'
|
|
41
|
-
'tiny_tds'
|
|
42
|
-
when 'oracle'
|
|
43
|
-
'ruby-oci8'
|
|
44
|
-
when nil
|
|
45
|
-
raise 'No database adapter defined in your Sequelizer configuration'
|
|
46
|
-
else
|
|
47
|
-
raise "Don't know which database gem to use with adapter: #{opts.adapter}"
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def gem_line
|
|
52
|
-
"gem '#{proper_gem}'"
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def gem_line_comment
|
|
56
|
-
'# ADDED BY SEQUELIZER'
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def full_gem_line
|
|
60
|
-
[gem_line, gem_line_comment].join(' ')
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def gemfile_needs_modification?
|
|
64
|
-
!(gemfile_lines.include?(gem_line) || gemfile_lines.include?(full_gem_line))
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def gemfile_lines
|
|
68
|
-
@gemfile_lines ||= File.readlines(gemfile).map(&:chomp)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def modified_lines
|
|
72
|
-
gemfile_lines.grep_v(Regexp.new(gem_line_comment)) + [full_gem_line]
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def check_for_gemfile
|
|
76
|
-
return if gemfile.exist?
|
|
77
|
-
|
|
78
|
-
raise "Could not find Gemfile in current directory: #{Pathname.pwd}"
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def run_bundle
|
|
82
|
-
puts 'Running `bundle install` to update dependencies'
|
|
83
|
-
system('bundle install')
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def gemfile
|
|
87
|
-
@gemfile ||= Pathname.new('Gemfile')
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
end
|
|
91
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Sequel
|
|
2
|
-
class ConnectionPool
|
|
3
|
-
|
|
4
|
-
# Return a new connection by calling the connection proc with the given server name,
|
|
5
|
-
# and checking for connection errors.
|
|
6
|
-
def make_new(server)
|
|
7
|
-
begin
|
|
8
|
-
conn = @db.connect(server)
|
|
9
|
-
if (ac = @after_connect)
|
|
10
|
-
case ac.arity
|
|
11
|
-
when 3
|
|
12
|
-
ac.call(conn, server, @db)
|
|
13
|
-
when 2
|
|
14
|
-
ac.call(conn, server)
|
|
15
|
-
else
|
|
16
|
-
ac.call(conn)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
rescue StandardError => e
|
|
20
|
-
raise Sequel.convert_exception_class(e, Sequel::DatabaseConnectionError)
|
|
21
|
-
end
|
|
22
|
-
raise(Sequel::DatabaseConnectionError, 'Connection parameters not valid') unless conn
|
|
23
|
-
|
|
24
|
-
conn
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
end
|