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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/settings.local.json +64 -0
  3. data/.devcontainer/.p10k.zsh +1713 -0
  4. data/.devcontainer/.zshrc +29 -0
  5. data/.devcontainer/Dockerfile +137 -0
  6. data/.devcontainer/copy-claude-credentials.sh +32 -0
  7. data/.devcontainer/devcontainer.json +102 -0
  8. data/.devcontainer/init-firewall.sh +123 -0
  9. data/.devcontainer/setup-credentials.sh +95 -0
  10. data/.github/workflows/test.yml +1 -1
  11. data/.gitignore +6 -1
  12. data/.overcommit.yml +73 -0
  13. data/.rubocop.yml +167 -0
  14. data/CHANGELOG.md +24 -0
  15. data/CLAUDE.md +219 -0
  16. data/Gemfile +6 -2
  17. data/Gemfile.lock +158 -0
  18. data/Guardfile +1 -1
  19. data/Rakefile +28 -3
  20. data/lib/sequel/extensions/cold_col.rb +436 -0
  21. data/lib/sequel/extensions/db_opts.rb +65 -4
  22. data/lib/sequel/extensions/make_readyable.rb +148 -30
  23. data/lib/sequel/extensions/more_sql.rb +76 -0
  24. data/lib/sequel/extensions/settable.rb +64 -0
  25. data/lib/sequel/extensions/sql_recorder.rb +85 -0
  26. data/lib/sequel/extensions/unionize.rb +169 -0
  27. data/lib/sequel/extensions/usable.rb +30 -1
  28. data/lib/sequelizer/cli.rb +61 -18
  29. data/lib/sequelizer/connection_maker.rb +54 -72
  30. data/lib/sequelizer/env_config.rb +6 -6
  31. data/lib/sequelizer/gemfile_modifier.rb +23 -21
  32. data/lib/sequelizer/monkey_patches/database_in_after_connect.rb +7 -5
  33. data/lib/sequelizer/options.rb +97 -18
  34. data/lib/sequelizer/options_hash.rb +2 -0
  35. data/lib/sequelizer/version.rb +3 -1
  36. data/lib/sequelizer/yaml_config.rb +9 -3
  37. data/lib/sequelizer.rb +65 -9
  38. data/sequelizer.gemspec +12 -7
  39. data/test/lib/sequel/extensions/test_cold_col.rb +251 -0
  40. data/test/lib/sequel/extensions/test_db_opts.rb +10 -8
  41. data/test/lib/sequel/extensions/test_make_readyable.rb +199 -28
  42. data/test/lib/sequel/extensions/test_more_sql.rb +132 -0
  43. data/test/lib/sequel/extensions/test_settable.rb +109 -0
  44. data/test/lib/sequel/extensions/test_sql_recorder.rb +231 -0
  45. data/test/lib/sequel/extensions/test_unionize.rb +76 -0
  46. data/test/lib/sequel/extensions/test_usable.rb +5 -2
  47. data/test/lib/sequelizer/test_connection_maker.rb +21 -17
  48. data/test/lib/sequelizer/test_env_config.rb +5 -2
  49. data/test/lib/sequelizer/test_gemfile_modifier.rb +7 -6
  50. data/test/lib/sequelizer/test_options.rb +14 -9
  51. data/test/lib/sequelizer/test_yaml_config.rb +13 -12
  52. data/test/test_helper.rb +36 -8
  53. metadata +107 -28
  54. 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 "sequel"
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
- def remove_stubbed_const(klass, const)
14
- klass.send(:remove_const, const)
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
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: 2024-04-03 00:00:00.000000000 Z
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: sequel
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: '5.0'
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: '5.0'
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: thor
167
+ name: hashie
113
168
  requirement: !ruby/object:Gem::Requirement
114
169
  requirements:
115
170
  - - "~>"
116
171
  - !ruby/object:Gem::Version
117
- version: '1.0'
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: '1.0'
179
+ version: '3.2'
125
180
  - !ruby/object:Gem::Dependency
126
- name: hashie
181
+ name: sequel
127
182
  requirement: !ruby/object:Gem::Requirement
128
183
  requirements:
129
184
  - - "~>"
130
185
  - !ruby/object:Gem::Version
131
- version: '3.2'
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: '3.2'
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/sqls.rb
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
- post_install_message:
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: '0'
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.4.6
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