adhoq 1.0.2 → 1.0.4
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/app/helpers/adhoq/application_helper.rb +6 -1
- data/lib/adhoq/configuration.rb +13 -23
- data/lib/adhoq/version.rb +1 -1
- data/spec/spec_helper.rb +17 -2
- data/spec/support/activejob_helper.rb +0 -3
- data/spec/support/have_values_in_xlsx_sheet_matcher.rb +9 -1
- metadata +71 -32
- data/config/database.yml +0 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2b4f2dbea183de1d42177e7f32eabf10c1e270aee14f2f5afc70a65f97da4e97
|
|
4
|
+
data.tar.gz: a1f80b71b2a627fb2b95f96e50009a7c9c2e273e1d013df344bc0b8b49b80000
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a54ea5d1c58ce93b6854dcad36647f5fea3124bc6e0db3df656e6ced976d9fe560780d278c1def2e4a793b634cdf0e1ab599dd0c78216a9cfa3c8a784205feb2
|
|
7
|
+
data.tar.gz: 398a2dcee9ba0b781a69b1b1d66163d9d521d759701c34bd5de3aa5065a6546fbce7eda9eb67845364a55353fa4e3191fa9ed4ee4d97e3ae70c37eca8ab63599
|
|
@@ -14,7 +14,12 @@ module Adhoq
|
|
|
14
14
|
|
|
15
15
|
def schema_version
|
|
16
16
|
connection = Adhoq::Executor::ConnectionWrapper.new
|
|
17
|
-
|
|
17
|
+
table = if ActiveRecord::SchemaMigration.respond_to?(:table_name)
|
|
18
|
+
ActiveRecord::SchemaMigration.table_name # Rails <= 7.0
|
|
19
|
+
else
|
|
20
|
+
"schema_migrations" # Rails 7.1+ (instance-based API)
|
|
21
|
+
end
|
|
22
|
+
result = connection.select("SELECT MAX(version) AS current_version FROM #{table}")
|
|
18
23
|
result.rows.first.first
|
|
19
24
|
end
|
|
20
25
|
|
data/lib/adhoq/configuration.rb
CHANGED
|
@@ -1,30 +1,20 @@
|
|
|
1
|
-
# see https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/config.rb
|
|
2
1
|
module Adhoq
|
|
3
2
|
class Configuration
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
config_accessor :current_user
|
|
18
|
-
|
|
19
|
-
config_accessor :database_connection
|
|
20
|
-
config_accessor :hidden_model_names
|
|
21
|
-
config_accessor :hide_rows_count
|
|
22
|
-
|
|
23
|
-
config_accessor :async_execution
|
|
24
|
-
config_accessor :job_queue_name
|
|
3
|
+
class_attribute :storage
|
|
4
|
+
self.storage = [:on_the_fly]
|
|
5
|
+
class_attribute :base_controller
|
|
6
|
+
self.base_controller = 'ApplicationController'
|
|
7
|
+
class_attribute :authorization
|
|
8
|
+
class_attribute :authorization_failure_action
|
|
9
|
+
class_attribute :current_user
|
|
10
|
+
class_attribute :database_connection
|
|
11
|
+
class_attribute :hidden_model_names
|
|
12
|
+
class_attribute :hide_rows_count
|
|
13
|
+
class_attribute :async_execution
|
|
14
|
+
class_attribute :job_queue_name
|
|
25
15
|
|
|
26
16
|
def callablize(name)
|
|
27
|
-
if (c =
|
|
17
|
+
if (c = public_send(name)).respond_to?(:call)
|
|
28
18
|
c
|
|
29
19
|
else
|
|
30
20
|
c.to_proc
|
data/lib/adhoq/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
|
@@ -4,15 +4,30 @@ require_relative 'dummy/config/environment'
|
|
|
4
4
|
require 'rspec/rails'
|
|
5
5
|
|
|
6
6
|
require 'capybara/rspec'
|
|
7
|
-
require '
|
|
7
|
+
require 'selenium-webdriver'
|
|
8
8
|
require 'database_cleaner'
|
|
9
9
|
require 'factory_bot_rails'
|
|
10
10
|
require 'pry-byebug'
|
|
11
11
|
|
|
12
|
+
# factory_bot_rails 6.x resolves factory paths relative to Rails.root
|
|
13
|
+
# (spec/dummy) and calls find_definitions during after_initialize, before
|
|
14
|
+
# spec_helper continues. Re-add the gem root's spec/factories and reload.
|
|
15
|
+
FactoryBot.definition_file_paths.unshift File.expand_path('factories', __dir__)
|
|
16
|
+
FactoryBot.reload
|
|
17
|
+
|
|
12
18
|
Rails.backtrace_cleaner.remove_silencers!
|
|
13
19
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f }
|
|
14
20
|
|
|
15
|
-
Capybara.
|
|
21
|
+
Capybara.register_driver :chrome_headless do |app|
|
|
22
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
|
23
|
+
options.add_argument('--headless=new')
|
|
24
|
+
options.add_argument('--no-sandbox')
|
|
25
|
+
options.add_argument('--disable-dev-shm-usage')
|
|
26
|
+
options.add_argument('--disable-gpu')
|
|
27
|
+
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
Capybara.default_driver = :chrome_headless
|
|
16
31
|
|
|
17
32
|
RSpec.configure do |config|
|
|
18
33
|
config.expect_with :rspec do |expectations|
|
|
@@ -10,17 +10,14 @@ RSpec.configure do |config|
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
config.around(:each, active_job_test_adapter: true) do |ex|
|
|
13
|
-
current_active_job_queue_adapter = Adhoq::Engine.config.active_job.queue_adapter
|
|
14
13
|
current_execute_job_queue_adapter = Adhoq::ExecuteJob.queue_adapter
|
|
15
14
|
|
|
16
|
-
Adhoq::Engine.config.active_job.queue_adapter = :test
|
|
17
15
|
Adhoq::ExecuteJob.queue_adapter = ActiveJob::QueueAdapters::TestAdapter.new
|
|
18
16
|
Adhoq::ExecuteJob.queue_adapter.perform_enqueued_jobs = true
|
|
19
17
|
|
|
20
18
|
ex.call
|
|
21
19
|
|
|
22
20
|
Adhoq::ExecuteJob.queue_adapter.performed_jobs.clear
|
|
23
|
-
Adhoq::Engine.config.active_job.queue_adapter = current_active_job_queue_adapter
|
|
24
21
|
Adhoq::ExecuteJob.queue_adapter = current_execute_job_queue_adapter
|
|
25
22
|
end
|
|
26
23
|
end
|
|
@@ -20,7 +20,15 @@ RSpec::Matchers.define :have_values_in_xlsx_sheet do |expect_values|
|
|
|
20
20
|
f.flush
|
|
21
21
|
|
|
22
22
|
sheet = SimpleXlsxReader::Document.new(f.path).sheets.first
|
|
23
|
-
|
|
23
|
+
if Gem::Version.new(SimpleXlsxReader::VERSION) < Gem::Version.new('2.0')
|
|
24
|
+
# simple_xlsx_reader 1.x: eager sheet.headers / sheet.data
|
|
25
|
+
[sheet.headers, *sheet.data]
|
|
26
|
+
else
|
|
27
|
+
# simple_xlsx_reader 2.x+: rows is lazy; use #each (safe without slurp)
|
|
28
|
+
all_rows = []
|
|
29
|
+
sheet.rows.each { |row| all_rows << row }
|
|
30
|
+
[all_rows.first, *all_rows[1..-1]]
|
|
31
|
+
end
|
|
24
32
|
end
|
|
25
33
|
end
|
|
26
34
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: adhoq
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kyosuke MOROHASHI
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-04-14 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rails
|
|
@@ -38,6 +37,20 @@ dependencies:
|
|
|
38
37
|
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
39
|
version: '3.0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: csv
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
41
54
|
- !ruby/object:Gem::Dependency
|
|
42
55
|
name: fog-aws
|
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -70,16 +83,16 @@ dependencies:
|
|
|
70
83
|
name: font-awesome-sass
|
|
71
84
|
requirement: !ruby/object:Gem::Requirement
|
|
72
85
|
requirements:
|
|
73
|
-
- - "
|
|
86
|
+
- - "~>"
|
|
74
87
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '4.
|
|
88
|
+
version: '4.7'
|
|
76
89
|
type: :runtime
|
|
77
90
|
prerelease: false
|
|
78
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
92
|
requirements:
|
|
80
|
-
- - "
|
|
93
|
+
- - "~>"
|
|
81
94
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '4.
|
|
95
|
+
version: '4.7'
|
|
83
96
|
- !ruby/object:Gem::Dependency
|
|
84
97
|
name: jquery-rails
|
|
85
98
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -140,16 +153,16 @@ dependencies:
|
|
|
140
153
|
name: capybara
|
|
141
154
|
requirement: !ruby/object:Gem::Requirement
|
|
142
155
|
requirements:
|
|
143
|
-
- - "
|
|
156
|
+
- - ">="
|
|
144
157
|
- !ruby/object:Gem::Version
|
|
145
|
-
version:
|
|
158
|
+
version: '3.0'
|
|
146
159
|
type: :development
|
|
147
160
|
prerelease: false
|
|
148
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
162
|
requirements:
|
|
150
|
-
- - "
|
|
163
|
+
- - ">="
|
|
151
164
|
- !ruby/object:Gem::Version
|
|
152
|
-
version:
|
|
165
|
+
version: '3.0'
|
|
153
166
|
- !ruby/object:Gem::Dependency
|
|
154
167
|
name: database_cleaner
|
|
155
168
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,16 +181,16 @@ dependencies:
|
|
|
168
181
|
name: factory_bot_rails
|
|
169
182
|
requirement: !ruby/object:Gem::Requirement
|
|
170
183
|
requirements:
|
|
171
|
-
- - "
|
|
184
|
+
- - ">="
|
|
172
185
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: 4.11
|
|
186
|
+
version: '4.11'
|
|
174
187
|
type: :development
|
|
175
188
|
prerelease: false
|
|
176
189
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
190
|
requirements:
|
|
178
|
-
- - "
|
|
191
|
+
- - ">="
|
|
179
192
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: 4.11
|
|
193
|
+
version: '4.11'
|
|
181
194
|
- !ruby/object:Gem::Dependency
|
|
182
195
|
name: launchy
|
|
183
196
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -193,21 +206,35 @@ dependencies:
|
|
|
193
206
|
- !ruby/object:Gem::Version
|
|
194
207
|
version: '0'
|
|
195
208
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
name:
|
|
209
|
+
name: pry-byebug
|
|
197
210
|
requirement: !ruby/object:Gem::Requirement
|
|
198
211
|
requirements:
|
|
199
|
-
- - "
|
|
212
|
+
- - ">="
|
|
200
213
|
- !ruby/object:Gem::Version
|
|
201
|
-
version:
|
|
214
|
+
version: '0'
|
|
202
215
|
type: :development
|
|
203
216
|
prerelease: false
|
|
204
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
218
|
requirements:
|
|
206
|
-
- - "
|
|
219
|
+
- - ">="
|
|
207
220
|
- !ruby/object:Gem::Version
|
|
208
|
-
version:
|
|
221
|
+
version: '0'
|
|
209
222
|
- !ruby/object:Gem::Dependency
|
|
210
|
-
name:
|
|
223
|
+
name: puma
|
|
224
|
+
requirement: !ruby/object:Gem::Requirement
|
|
225
|
+
requirements:
|
|
226
|
+
- - ">="
|
|
227
|
+
- !ruby/object:Gem::Version
|
|
228
|
+
version: '0'
|
|
229
|
+
type: :development
|
|
230
|
+
prerelease: false
|
|
231
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
232
|
+
requirements:
|
|
233
|
+
- - ">="
|
|
234
|
+
- !ruby/object:Gem::Version
|
|
235
|
+
version: '0'
|
|
236
|
+
- !ruby/object:Gem::Dependency
|
|
237
|
+
name: sass-rails
|
|
211
238
|
requirement: !ruby/object:Gem::Requirement
|
|
212
239
|
requirements:
|
|
213
240
|
- - ">="
|
|
@@ -234,6 +261,20 @@ dependencies:
|
|
|
234
261
|
- - ">="
|
|
235
262
|
- !ruby/object:Gem::Version
|
|
236
263
|
version: '0'
|
|
264
|
+
- !ruby/object:Gem::Dependency
|
|
265
|
+
name: selenium-webdriver
|
|
266
|
+
requirement: !ruby/object:Gem::Requirement
|
|
267
|
+
requirements:
|
|
268
|
+
- - ">="
|
|
269
|
+
- !ruby/object:Gem::Version
|
|
270
|
+
version: '3.0'
|
|
271
|
+
type: :development
|
|
272
|
+
prerelease: false
|
|
273
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
274
|
+
requirements:
|
|
275
|
+
- - ">="
|
|
276
|
+
- !ruby/object:Gem::Version
|
|
277
|
+
version: '3.0'
|
|
237
278
|
- !ruby/object:Gem::Dependency
|
|
238
279
|
name: simple_xlsx_reader
|
|
239
280
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -410,7 +451,6 @@ files:
|
|
|
410
451
|
- app/views/adhoq/queries/new.html.erb
|
|
411
452
|
- app/views/adhoq/queries/show.html.erb
|
|
412
453
|
- app/views/layouts/adhoq/application.html.erb
|
|
413
|
-
- config/database.yml
|
|
414
454
|
- config/routes.rb
|
|
415
455
|
- db/migrate/20141003095645_create_adhoq_queries.rb
|
|
416
456
|
- db/migrate/20141006014750_create_adhoq_executions.rb
|
|
@@ -454,8 +494,8 @@ files:
|
|
|
454
494
|
homepage: https://github.com/esminc/adhoq
|
|
455
495
|
licenses:
|
|
456
496
|
- MIT
|
|
457
|
-
metadata:
|
|
458
|
-
|
|
497
|
+
metadata:
|
|
498
|
+
rubygems_mfa_required: 'true'
|
|
459
499
|
rdoc_options: []
|
|
460
500
|
require_paths:
|
|
461
501
|
- lib
|
|
@@ -470,23 +510,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
470
510
|
- !ruby/object:Gem::Version
|
|
471
511
|
version: '0'
|
|
472
512
|
requirements: []
|
|
473
|
-
rubygems_version: 3.2
|
|
474
|
-
signing_key:
|
|
513
|
+
rubygems_version: 3.6.2
|
|
475
514
|
specification_version: 4
|
|
476
515
|
summary: DB management console in the wild.
|
|
477
516
|
test_files:
|
|
478
|
-
- spec/adhoq/
|
|
517
|
+
- spec/adhoq/executor/connection_wrapper_spec.rb
|
|
518
|
+
- spec/adhoq/executor_spec.rb
|
|
519
|
+
- spec/adhoq/global_variable_spec.rb
|
|
479
520
|
- spec/adhoq/reporter/csv_spec.rb
|
|
521
|
+
- spec/adhoq/reporter/json_spec.rb
|
|
480
522
|
- spec/adhoq/reporter/xlsx_spec.rb
|
|
481
523
|
- spec/adhoq/storage_spec.rb
|
|
482
|
-
- spec/adhoq/executor_spec.rb
|
|
483
|
-
- spec/adhoq/executor/connection_wrapper_spec.rb
|
|
484
|
-
- spec/adhoq/global_variable_spec.rb
|
|
485
524
|
- spec/factories/adhoq_queries.rb
|
|
486
|
-
- spec/models/adhoq/report_spec.rb
|
|
487
525
|
- spec/models/adhoq/execution_spec.rb
|
|
488
526
|
- spec/models/adhoq/query_spec.rb
|
|
489
|
-
- spec/
|
|
527
|
+
- spec/models/adhoq/report_spec.rb
|
|
490
528
|
- spec/support/activejob_helper.rb
|
|
529
|
+
- spec/support/feature_spec_helper.rb
|
|
491
530
|
- spec/support/have_values_in_xlsx_sheet_matcher.rb
|
|
492
531
|
- spec/spec_helper.rb
|
data/config/database.yml
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# SQLite version 3.x
|
|
2
|
-
# gem install sqlite3
|
|
3
|
-
#
|
|
4
|
-
# Ensure the SQLite 3 gem is defined in your Gemfile
|
|
5
|
-
# gem 'sqlite3'
|
|
6
|
-
#
|
|
7
|
-
default: &default
|
|
8
|
-
adapter: sqlite3
|
|
9
|
-
pool: 5
|
|
10
|
-
timeout: 5000
|
|
11
|
-
|
|
12
|
-
development:
|
|
13
|
-
<<: *default
|
|
14
|
-
database: db/development.sqlite3
|
|
15
|
-
|
|
16
|
-
# Warning: The database defined as "test" will be erased and
|
|
17
|
-
# re-generated from your development database when you run "rake".
|
|
18
|
-
# Do not set this db to the same as development or production.
|
|
19
|
-
test:
|
|
20
|
-
<<: *default
|
|
21
|
-
database: db/test.sqlite3
|
|
22
|
-
|
|
23
|
-
production:
|
|
24
|
-
<<: *default
|
|
25
|
-
database: db/production.sqlite3
|