sequelizer 0.1.4 → 0.1.6
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/.claude/settings.local.json +64 -0
- data/.devcontainer/.p10k.zsh +1713 -0
- data/.devcontainer/.zshrc +29 -0
- data/.devcontainer/Dockerfile +137 -0
- data/.devcontainer/copy-claude-credentials.sh +32 -0
- data/.devcontainer/devcontainer.json +102 -0
- data/.devcontainer/init-firewall.sh +123 -0
- data/.devcontainer/setup-credentials.sh +95 -0
- data/.github/workflows/test.yml +1 -1
- data/.gitignore +6 -1
- data/.overcommit.yml +73 -0
- data/.rubocop.yml +167 -0
- data/CHANGELOG.md +24 -0
- data/CLAUDE.md +219 -0
- data/Gemfile +6 -2
- data/Gemfile.lock +158 -0
- data/Guardfile +1 -1
- data/Rakefile +28 -3
- data/lib/sequel/extensions/cold_col.rb +436 -0
- data/lib/sequel/extensions/db_opts.rb +65 -4
- data/lib/sequel/extensions/make_readyable.rb +148 -30
- data/lib/sequel/extensions/more_sql.rb +76 -0
- data/lib/sequel/extensions/settable.rb +64 -0
- data/lib/sequel/extensions/sql_recorder.rb +85 -0
- data/lib/sequel/extensions/unionize.rb +169 -0
- data/lib/sequel/extensions/usable.rb +30 -1
- data/lib/sequelizer/cli.rb +61 -18
- data/lib/sequelizer/connection_maker.rb +54 -72
- data/lib/sequelizer/env_config.rb +6 -6
- data/lib/sequelizer/gemfile_modifier.rb +23 -21
- data/lib/sequelizer/monkey_patches/database_in_after_connect.rb +7 -5
- data/lib/sequelizer/options.rb +97 -18
- data/lib/sequelizer/options_hash.rb +2 -0
- data/lib/sequelizer/version.rb +3 -1
- data/lib/sequelizer/yaml_config.rb +9 -3
- data/lib/sequelizer.rb +65 -9
- data/sequelizer.gemspec +12 -7
- data/test/lib/sequel/extensions/test_cold_col.rb +251 -0
- data/test/lib/sequel/extensions/test_db_opts.rb +10 -8
- data/test/lib/sequel/extensions/test_make_readyable.rb +199 -28
- data/test/lib/sequel/extensions/test_more_sql.rb +132 -0
- data/test/lib/sequel/extensions/test_settable.rb +109 -0
- data/test/lib/sequel/extensions/test_sql_recorder.rb +231 -0
- data/test/lib/sequel/extensions/test_unionize.rb +76 -0
- data/test/lib/sequel/extensions/test_usable.rb +5 -2
- data/test/lib/sequelizer/test_connection_maker.rb +21 -17
- data/test/lib/sequelizer/test_env_config.rb +5 -2
- data/test/lib/sequelizer/test_gemfile_modifier.rb +7 -6
- data/test/lib/sequelizer/test_options.rb +14 -9
- data/test/lib/sequelizer/test_yaml_config.rb +13 -12
- data/test/test_helper.rb +36 -8
- metadata +107 -28
- data/lib/sequel/extensions/sqls.rb +0 -31
data/test/test_helper.rb
CHANGED
@@ -1,16 +1,44 @@
|
|
1
|
+
# Disable Rails plugins for Minitest to avoid version conflicts
|
2
|
+
ENV['MT_NO_PLUGINS'] = '1'
|
3
|
+
|
4
|
+
# SimpleCov must be loaded before application code
|
5
|
+
require 'simplecov'
|
6
|
+
|
7
|
+
SimpleCov.start do
|
8
|
+
add_filter '/test/'
|
9
|
+
add_filter '/vendor/'
|
10
|
+
|
11
|
+
add_group 'Core', 'lib/sequelizer'
|
12
|
+
add_group 'Sequel Extensions', 'lib/sequel'
|
13
|
+
|
14
|
+
# Temporarily lower minimum coverage to see what we're working with
|
15
|
+
minimum_coverage 70
|
16
|
+
minimum_coverage_by_file 40
|
17
|
+
|
18
|
+
# Generate both HTML and JSON for easier analysis
|
19
|
+
formatter SimpleCov::Formatter::MultiFormatter.new([
|
20
|
+
SimpleCov::Formatter::HTMLFormatter,
|
21
|
+
SimpleCov::Formatter::SimpleFormatter,
|
22
|
+
])
|
23
|
+
end
|
24
|
+
|
1
25
|
require 'minitest/autorun'
|
2
|
-
require
|
26
|
+
require 'sequel'
|
27
|
+
|
28
|
+
module Minitest
|
29
|
+
class Test
|
30
|
+
|
31
|
+
def stub_const(klass, const, replace)
|
32
|
+
klass.send(:const_set, const, replace)
|
33
|
+
return unless block_given?
|
3
34
|
|
4
|
-
class Minitest::Test
|
5
|
-
def stub_const(klass, const, replace, &block)
|
6
|
-
klass.send(:const_set, const, replace)
|
7
|
-
if block_given?
|
8
35
|
yield
|
9
36
|
remove_stubbed_const(klass, const)
|
10
37
|
end
|
11
|
-
end
|
12
38
|
|
13
|
-
|
14
|
-
|
39
|
+
def remove_stubbed_const(klass, const)
|
40
|
+
klass.send(:remove_const, const)
|
41
|
+
end
|
42
|
+
|
15
43
|
end
|
16
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequelizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Duryea
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: bundler
|
@@ -66,6 +65,20 @@ dependencies:
|
|
66
65
|
- - "~>"
|
67
66
|
- !ruby/object:Gem::Version
|
68
67
|
version: '5.3'
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: pg
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.0'
|
75
|
+
type: :development
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1.0'
|
69
82
|
- !ruby/object:Gem::Dependency
|
70
83
|
name: rake
|
71
84
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,19 +94,61 @@ dependencies:
|
|
81
94
|
- !ruby/object:Gem::Version
|
82
95
|
version: '12.0'
|
83
96
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
97
|
+
name: rubocop
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1.0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: rubocop-minitest
|
85
112
|
requirement: !ruby/object:Gem::Requirement
|
86
113
|
requirements:
|
87
114
|
- - "~>"
|
88
115
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
116
|
+
version: '0.25'
|
117
|
+
type: :development
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0.25'
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: simplecov
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0.22'
|
131
|
+
type: :development
|
132
|
+
prerelease: false
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0.22'
|
138
|
+
- !ruby/object:Gem::Dependency
|
139
|
+
name: activesupport
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '7.0'
|
90
145
|
type: :runtime
|
91
146
|
prerelease: false
|
92
147
|
version_requirements: !ruby/object:Gem::Requirement
|
93
148
|
requirements:
|
94
149
|
- - "~>"
|
95
150
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
151
|
+
version: '7.0'
|
97
152
|
- !ruby/object:Gem::Dependency
|
98
153
|
name: dotenv
|
99
154
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,33 +164,47 @@ dependencies:
|
|
109
164
|
- !ruby/object:Gem::Version
|
110
165
|
version: '2.1'
|
111
166
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
167
|
+
name: hashie
|
113
168
|
requirement: !ruby/object:Gem::Requirement
|
114
169
|
requirements:
|
115
170
|
- - "~>"
|
116
171
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
172
|
+
version: '3.2'
|
118
173
|
type: :runtime
|
119
174
|
prerelease: false
|
120
175
|
version_requirements: !ruby/object:Gem::Requirement
|
121
176
|
requirements:
|
122
177
|
- - "~>"
|
123
178
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
179
|
+
version: '3.2'
|
125
180
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
181
|
+
name: sequel
|
127
182
|
requirement: !ruby/object:Gem::Requirement
|
128
183
|
requirements:
|
129
184
|
- - "~>"
|
130
185
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
186
|
+
version: '5.93'
|
132
187
|
type: :runtime
|
133
188
|
prerelease: false
|
134
189
|
version_requirements: !ruby/object:Gem::Requirement
|
135
190
|
requirements:
|
136
191
|
- - "~>"
|
137
192
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
193
|
+
version: '5.93'
|
194
|
+
- !ruby/object:Gem::Dependency
|
195
|
+
name: thor
|
196
|
+
requirement: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '1.0'
|
201
|
+
type: :runtime
|
202
|
+
prerelease: false
|
203
|
+
version_requirements: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - "~>"
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '1.0'
|
139
208
|
description: Easily establish a connection to a database via Sequel gem using options
|
140
209
|
specified in config/database.yml or .env files
|
141
210
|
email:
|
@@ -145,10 +214,22 @@ executables:
|
|
145
214
|
extensions: []
|
146
215
|
extra_rdoc_files: []
|
147
216
|
files:
|
217
|
+
- ".claude/settings.local.json"
|
218
|
+
- ".devcontainer/.p10k.zsh"
|
219
|
+
- ".devcontainer/.zshrc"
|
220
|
+
- ".devcontainer/Dockerfile"
|
221
|
+
- ".devcontainer/copy-claude-credentials.sh"
|
222
|
+
- ".devcontainer/devcontainer.json"
|
223
|
+
- ".devcontainer/init-firewall.sh"
|
224
|
+
- ".devcontainer/setup-credentials.sh"
|
148
225
|
- ".github/workflows/test.yml"
|
149
226
|
- ".gitignore"
|
227
|
+
- ".overcommit.yml"
|
228
|
+
- ".rubocop.yml"
|
150
229
|
- CHANGELOG.md
|
230
|
+
- CLAUDE.md
|
151
231
|
- Gemfile
|
232
|
+
- Gemfile.lock
|
152
233
|
- Guardfile
|
153
234
|
- LICENSE.txt
|
154
235
|
- README.md
|
@@ -157,10 +238,13 @@ files:
|
|
157
238
|
- examples/database.with_one_set_of_options.yml
|
158
239
|
- examples/database.yml
|
159
240
|
- examples/dot_env.txt
|
241
|
+
- lib/sequel/extensions/cold_col.rb
|
160
242
|
- lib/sequel/extensions/db_opts.rb
|
161
243
|
- lib/sequel/extensions/make_readyable.rb
|
244
|
+
- lib/sequel/extensions/more_sql.rb
|
162
245
|
- lib/sequel/extensions/settable.rb
|
163
|
-
- lib/sequel/extensions/
|
246
|
+
- lib/sequel/extensions/sql_recorder.rb
|
247
|
+
- lib/sequel/extensions/unionize.rb
|
164
248
|
- lib/sequel/extensions/usable.rb
|
165
249
|
- lib/sequelizer.rb
|
166
250
|
- lib/sequelizer/cli.rb
|
@@ -173,8 +257,13 @@ files:
|
|
173
257
|
- lib/sequelizer/version.rb
|
174
258
|
- lib/sequelizer/yaml_config.rb
|
175
259
|
- sequelizer.gemspec
|
260
|
+
- test/lib/sequel/extensions/test_cold_col.rb
|
176
261
|
- test/lib/sequel/extensions/test_db_opts.rb
|
177
262
|
- test/lib/sequel/extensions/test_make_readyable.rb
|
263
|
+
- test/lib/sequel/extensions/test_more_sql.rb
|
264
|
+
- test/lib/sequel/extensions/test_settable.rb
|
265
|
+
- test/lib/sequel/extensions/test_sql_recorder.rb
|
266
|
+
- test/lib/sequel/extensions/test_unionize.rb
|
178
267
|
- test/lib/sequel/extensions/test_usable.rb
|
179
268
|
- test/lib/sequelizer/test_connection_maker.rb
|
180
269
|
- test/lib/sequelizer/test_env_config.rb
|
@@ -185,8 +274,8 @@ files:
|
|
185
274
|
homepage: https://github.com/outcomesinsights/sequelizer
|
186
275
|
licenses:
|
187
276
|
- MIT
|
188
|
-
metadata:
|
189
|
-
|
277
|
+
metadata:
|
278
|
+
rubygems_mfa_required: 'true'
|
190
279
|
rdoc_options: []
|
191
280
|
require_paths:
|
192
281
|
- lib
|
@@ -194,24 +283,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
283
|
requirements:
|
195
284
|
- - ">="
|
196
285
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
286
|
+
version: 3.2.0
|
198
287
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
288
|
requirements:
|
200
289
|
- - ">="
|
201
290
|
- !ruby/object:Gem::Version
|
202
291
|
version: '0'
|
203
292
|
requirements: []
|
204
|
-
rubygems_version: 3.
|
205
|
-
signing_key:
|
293
|
+
rubygems_version: 3.6.7
|
206
294
|
specification_version: 4
|
207
295
|
summary: Sequel database connections via config/database.yml or .env
|
208
|
-
test_files:
|
209
|
-
- test/lib/sequel/extensions/test_db_opts.rb
|
210
|
-
- test/lib/sequel/extensions/test_make_readyable.rb
|
211
|
-
- test/lib/sequel/extensions/test_usable.rb
|
212
|
-
- test/lib/sequelizer/test_connection_maker.rb
|
213
|
-
- test/lib/sequelizer/test_env_config.rb
|
214
|
-
- test/lib/sequelizer/test_gemfile_modifier.rb
|
215
|
-
- test/lib/sequelizer/test_options.rb
|
216
|
-
- test/lib/sequelizer/test_yaml_config.rb
|
217
|
-
- test/test_helper.rb
|
296
|
+
test_files: []
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
#
|
3
|
-
# The sqls extension will record each SQL statement sent to the
|
4
|
-
# database
|
5
|
-
#
|
6
|
-
# DB.extension :sqls
|
7
|
-
# DB[:table]
|
8
|
-
# DB.sqls # => ["SELECT * FROM table LIMIT 1"]
|
9
|
-
#
|
10
|
-
# Related module: Sequel::Sqls
|
11
|
-
|
12
|
-
module Sequel
|
13
|
-
module Sqls
|
14
|
-
attr_reader :sqls
|
15
|
-
|
16
|
-
# Record SQL statements when logging query.
|
17
|
-
def log_connection_yield(sql, conn, args=nil)
|
18
|
-
@sqls_mutex.synchronize{sqls.push(sql)}
|
19
|
-
super
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.extended(db)
|
23
|
-
db.instance_exec do
|
24
|
-
@sqls_mutex ||= Mutex.new
|
25
|
-
@sqls ||= []
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
Database.register_extension(:sqls, Sqls)
|
31
|
-
end
|