adhoq 1.0.3 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47c7d111e049da8b2712f2f745aad56742d6e06d60fea9138f6c6d0e6676fcd5
4
- data.tar.gz: 78d0dd09efc026446a259c4a71d245d9ad295eddf7a6d815f1fa373653fcab95
3
+ metadata.gz: 40ba2ad8e22cbe7a16e1229fb6d2f286a458e24ca78c35665d0d30bc49c16f83
4
+ data.tar.gz: 7f89537dc3267a177445faffccfd5f7bc648886b2199c48d46c5fb53ee631b0a
5
5
  SHA512:
6
- metadata.gz: 1a282562a9c27b74953fd14d4094710457601521a5f2ebe1b90625f476ec07db86c6fac7402e4bfc29f6ce86ee6df46685cab07d6d521a2e3fbd38c8af3cf938
7
- data.tar.gz: 8c340fb434077bc59ef3bb288226aeb8c8d6d268a992eb040e0be5c415d24cf0ba980ab44dc5617ff00d80b2b9227eedf2657eec911bcae408cd55fbe5356fb7
6
+ metadata.gz: 495016c28fdaafcd340f0dfab74854ce2e0a79baa28bd68ef3bb5303ba889a967522b98d19bc4c5a33f5bd156a0d42aaf1d02801947a02601191da4d41d12ac1
7
+ data.tar.gz: 10ec04f16e9348c57f43cbeb2c4fd246fb953985d13c1fd09bae524a9c9eff72a3c9cf8029cc439ede00b70d6aa9b0be17b6637492aad67595577807e1b8b898
@@ -14,7 +14,12 @@ module Adhoq
14
14
 
15
15
  def schema_version
16
16
  connection = Adhoq::Executor::ConnectionWrapper.new
17
- result = connection.select("SELECT MAX(version) AS current_version FROM #{ActiveRecord::SchemaMigration.table_name}")
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
 
@@ -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
- include ActiveSupport::Configurable
5
-
6
- config_accessor :storage do
7
- [:on_the_fly]
8
- end
9
-
10
- config_accessor :base_controller do
11
- 'ApplicationController'
12
- end
13
-
14
- config_accessor :authorization
15
- config_accessor :authorization_failure_action
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 = config[name]).respond_to?(:call)
17
+ if (c = public_send(name)).respond_to?(:call)
28
18
  c
29
19
  else
30
20
  c.to_proc
data/lib/adhoq/engine.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  require 'font-awesome-sass'
3
3
  require 'jquery-rails'
4
4
  require 'active_decorator'
5
- require 'sassc-rails'
5
+ require 'sass-rails'
6
6
 
7
7
  module Adhoq
8
8
  class Engine < ::Rails::Engine
data/lib/adhoq/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Adhoq
2
- VERSION = "1.0.3"
2
+ VERSION = "1.1.0"
3
3
  end
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 'capybara/poltergeist'
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.default_driver = :poltergeist
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
- [sheet.headers, *sheet.data]
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.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyosuke MOROHASHI
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-19 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: rails
@@ -84,16 +83,16 @@ dependencies:
84
83
  name: font-awesome-sass
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
- - - ">="
86
+ - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: '4.2'
88
+ version: '4.7'
90
89
  type: :runtime
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
- - - ">="
93
+ - - "~>"
95
94
  - !ruby/object:Gem::Version
96
- version: '4.2'
95
+ version: '4.7'
97
96
  - !ruby/object:Gem::Dependency
98
97
  name: jquery-rails
99
98
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +108,7 @@ dependencies:
109
108
  - !ruby/object:Gem::Version
110
109
  version: '0'
111
110
  - !ruby/object:Gem::Dependency
112
- name: sassc-rails
111
+ name: sass-rails
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
114
  - - ">="
@@ -154,16 +153,16 @@ dependencies:
154
153
  name: capybara
155
154
  requirement: !ruby/object:Gem::Requirement
156
155
  requirements:
157
- - - "~>"
156
+ - - ">="
158
157
  - !ruby/object:Gem::Version
159
- version: 2.4.3
158
+ version: '3.0'
160
159
  type: :development
161
160
  prerelease: false
162
161
  version_requirements: !ruby/object:Gem::Requirement
163
162
  requirements:
164
- - - "~>"
163
+ - - ">="
165
164
  - !ruby/object:Gem::Version
166
- version: 2.4.3
165
+ version: '3.0'
167
166
  - !ruby/object:Gem::Dependency
168
167
  name: database_cleaner
169
168
  requirement: !ruby/object:Gem::Requirement
@@ -182,16 +181,16 @@ dependencies:
182
181
  name: factory_bot_rails
183
182
  requirement: !ruby/object:Gem::Requirement
184
183
  requirements:
185
- - - "~>"
184
+ - - ">="
186
185
  - !ruby/object:Gem::Version
187
- version: 4.11.1
186
+ version: '4.11'
188
187
  type: :development
189
188
  prerelease: false
190
189
  version_requirements: !ruby/object:Gem::Requirement
191
190
  requirements:
192
- - - "~>"
191
+ - - ">="
193
192
  - !ruby/object:Gem::Version
194
- version: 4.11.1
193
+ version: '4.11'
195
194
  - !ruby/object:Gem::Dependency
196
195
  name: launchy
197
196
  requirement: !ruby/object:Gem::Requirement
@@ -207,21 +206,21 @@ dependencies:
207
206
  - !ruby/object:Gem::Version
208
207
  version: '0'
209
208
  - !ruby/object:Gem::Dependency
210
- name: poltergeist
209
+ name: pry-byebug
211
210
  requirement: !ruby/object:Gem::Requirement
212
211
  requirements:
213
- - - "~>"
212
+ - - ">="
214
213
  - !ruby/object:Gem::Version
215
- version: 1.6.0
214
+ version: '0'
216
215
  type: :development
217
216
  prerelease: false
218
217
  version_requirements: !ruby/object:Gem::Requirement
219
218
  requirements:
220
- - - "~>"
219
+ - - ">="
221
220
  - !ruby/object:Gem::Version
222
- version: 1.6.0
221
+ version: '0'
223
222
  - !ruby/object:Gem::Dependency
224
- name: pry-byebug
223
+ name: puma
225
224
  requirement: !ruby/object:Gem::Requirement
226
225
  requirements:
227
226
  - - ">="
@@ -248,6 +247,20 @@ dependencies:
248
247
  - - ">="
249
248
  - !ruby/object:Gem::Version
250
249
  version: '0'
250
+ - !ruby/object:Gem::Dependency
251
+ name: selenium-webdriver
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '3.0'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: '3.0'
251
264
  - !ruby/object:Gem::Dependency
252
265
  name: simple_xlsx_reader
253
266
  requirement: !ruby/object:Gem::Requirement
@@ -468,8 +481,8 @@ files:
468
481
  homepage: https://github.com/esminc/adhoq
469
482
  licenses:
470
483
  - MIT
471
- metadata: {}
472
- post_install_message:
484
+ metadata:
485
+ rubygems_mfa_required: 'true'
473
486
  rdoc_options: []
474
487
  require_paths:
475
488
  - lib
@@ -484,23 +497,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
484
497
  - !ruby/object:Gem::Version
485
498
  version: '0'
486
499
  requirements: []
487
- rubygems_version: 3.3.4
488
- signing_key:
500
+ rubygems_version: 3.6.9
489
501
  specification_version: 4
490
502
  summary: DB management console in the wild.
491
503
  test_files:
492
- - spec/adhoq/reporter/json_spec.rb
504
+ - spec/adhoq/executor/connection_wrapper_spec.rb
505
+ - spec/adhoq/executor_spec.rb
506
+ - spec/adhoq/global_variable_spec.rb
493
507
  - spec/adhoq/reporter/csv_spec.rb
508
+ - spec/adhoq/reporter/json_spec.rb
494
509
  - spec/adhoq/reporter/xlsx_spec.rb
495
510
  - spec/adhoq/storage_spec.rb
496
- - spec/adhoq/executor_spec.rb
497
- - spec/adhoq/executor/connection_wrapper_spec.rb
498
- - spec/adhoq/global_variable_spec.rb
499
511
  - spec/factories/adhoq_queries.rb
500
- - spec/models/adhoq/report_spec.rb
501
512
  - spec/models/adhoq/execution_spec.rb
502
513
  - spec/models/adhoq/query_spec.rb
503
- - spec/support/feature_spec_helper.rb
514
+ - spec/models/adhoq/report_spec.rb
515
+ - spec/spec_helper.rb
504
516
  - spec/support/activejob_helper.rb
517
+ - spec/support/feature_spec_helper.rb
505
518
  - spec/support/have_values_in_xlsx_sheet_matcher.rb
506
- - spec/spec_helper.rb