adhoq 0.3.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/app/assets/javascripts/adhoq/current_tables.js +23 -0
- data/app/assets/javascripts/adhoq/previewer.js +52 -0
- data/app/controllers/adhoq/queries_controller.rb +1 -1
- data/app/models/adhoq/execution.rb +5 -3
- data/app/models/adhoq/time_based_orders.rb +1 -1
- data/app/views/adhoq/application/_global_nav.html.erb +18 -0
- data/app/views/adhoq/current_tables/index.html.erb +53 -0
- data/app/views/adhoq/explains/create.html.erb +1 -0
- data/app/views/adhoq/explains/statement_invalid.html.erb +5 -0
- data/app/views/adhoq/previews/create.html.erb +21 -0
- data/app/views/adhoq/previews/statement_invalid.html.erb +4 -0
- data/app/views/adhoq/queries/_current_tables_leftbar.html.erb +14 -0
- data/app/views/adhoq/queries/_execution.html.erb +10 -0
- data/app/views/adhoq/queries/_form.html.erb +124 -0
- data/app/views/adhoq/queries/_queries.html.erb +16 -0
- data/app/views/adhoq/queries/_query.html.erb +67 -0
- data/app/views/adhoq/queries/edit.html.erb +13 -0
- data/app/views/adhoq/queries/index.html.erb +15 -0
- data/app/views/adhoq/queries/new.html.erb +12 -0
- data/app/views/adhoq/queries/show.html.erb +14 -0
- data/app/views/layouts/adhoq/application.html.erb +18 -0
- data/config/database.yml +25 -0
- data/lib/adhoq/configuration.rb +1 -0
- data/lib/adhoq/engine.rb +1 -1
- data/lib/adhoq/executor/connection_wrapper.rb +12 -8
- data/lib/adhoq/global_variable.rb +1 -0
- data/lib/adhoq/storage.rb +1 -0
- data/lib/adhoq/storage/cache.rb +27 -0
- data/lib/adhoq/version.rb +1 -1
- data/spec/factories/adhoq_queries.rb +9 -9
- data/spec/models/adhoq/execution_spec.rb +18 -0
- metadata +44 -71
- data/app/assets/javascripts/adhoq/current_tables.js.coffee +0 -18
- data/app/assets/javascripts/adhoq/previewer.js.coffee +0 -34
- data/app/views/adhoq/application/_global_nav.html.slim +0 -12
- data/app/views/adhoq/current_tables/index.html.slim +0 -34
- data/app/views/adhoq/explains/create.html.slim +0 -2
- data/app/views/adhoq/explains/statement_invalid.html.slim +0 -5
- data/app/views/adhoq/previews/create.html.slim +0 -12
- data/app/views/adhoq/previews/statement_invalid.html.slim +0 -5
- data/app/views/adhoq/queries/_current_tables_leftbar.html.slim +0 -9
- data/app/views/adhoq/queries/_execution.html.slim +0 -10
- data/app/views/adhoq/queries/_form.html.slim +0 -93
- data/app/views/adhoq/queries/_queries.html.slim +0 -14
- data/app/views/adhoq/queries/_query.html.slim +0 -48
- data/app/views/adhoq/queries/edit.html.slim +0 -11
- data/app/views/adhoq/queries/index.html.slim +0 -11
- data/app/views/adhoq/queries/new.html.slim +0 -10
- data/app/views/adhoq/queries/show.html.slim +0 -11
- data/app/views/layouts/adhoq/application.html.slim +0 -15
@@ -0,0 +1,13 @@
|
|
1
|
+
<div class="col-md-12">
|
2
|
+
<ol class="breadcrumb">
|
3
|
+
<li><%= link_to 'Index', :queries %></li>
|
4
|
+
<li><%= link_to query_friendly_name(@query), @query %></li>
|
5
|
+
<li class="active"> Edit</li>
|
6
|
+
</ol>
|
7
|
+
</div>
|
8
|
+
<div class="col-md-12" id="main">
|
9
|
+
<section class="edit-query">
|
10
|
+
<%= render 'form', query: @query, title: "Edit query > #{query_friendly_name(@query)}" %>
|
11
|
+
</section>
|
12
|
+
</div>
|
13
|
+
<%= render 'current_tables_leftbar' %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="col-md-12">
|
2
|
+
<ol class="breadcrumb">
|
3
|
+
<li class="active">Index</li>
|
4
|
+
</ol>
|
5
|
+
</div>
|
6
|
+
<div class="col-md-3" id="queries">
|
7
|
+
<section class="queries">
|
8
|
+
<%= render 'queries', queries: @queries %>
|
9
|
+
</section>
|
10
|
+
</div>
|
11
|
+
<div class="col-md-9" id="the-query">
|
12
|
+
<% if first_query = @queries.first %>
|
13
|
+
<%= render 'query', query: first_query %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="col-md-12">
|
2
|
+
<ol class="breadcrumb">
|
3
|
+
<li><%= link_to 'Index', :queries %></li>
|
4
|
+
<li class="active"> New query</li>
|
5
|
+
</ol>
|
6
|
+
</div>
|
7
|
+
<div class="col-md-12" id="main">
|
8
|
+
<section class="new-query">
|
9
|
+
<%= render 'form', query: @query, title: 'New query' %>
|
10
|
+
</section>
|
11
|
+
</div>
|
12
|
+
<%= render 'current_tables_leftbar' %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="col-md-12">
|
2
|
+
<ol class="breadcrumb">
|
3
|
+
<li><%= link_to 'Index', :queries %></li>
|
4
|
+
<li class="active"><%= query_friendly_name(@query) %></li>
|
5
|
+
</ol>
|
6
|
+
</div>
|
7
|
+
<div class="col-md-3" id="queries">
|
8
|
+
<section class="queries">
|
9
|
+
<%= render 'queries', queries: ::Adhoq::Query.recent_first, highlight: @query %>
|
10
|
+
</section>
|
11
|
+
</div>
|
12
|
+
<div class="col-md-9" id="the-query">
|
13
|
+
<%= render 'query', query: @query %>
|
14
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Adhoq</title>
|
5
|
+
<%= stylesheet_link_tag 'adhoq/application', media: 'all' %>
|
6
|
+
<%= javascript_include_tag 'adhoq/application' %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div class="container">
|
11
|
+
<%= render 'global_nav' %>
|
12
|
+
|
13
|
+
<div class="row" id="contents">
|
14
|
+
<%= yield %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
</body>
|
18
|
+
</html>
|
data/config/database.yml
ADDED
@@ -0,0 +1,25 @@
|
|
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
|
data/lib/adhoq/configuration.rb
CHANGED
data/lib/adhoq/engine.rb
CHANGED
@@ -1,29 +1,33 @@
|
|
1
1
|
module Adhoq
|
2
2
|
class Executor
|
3
3
|
class ConnectionWrapper
|
4
|
-
attr_reader :connection
|
5
|
-
|
6
4
|
def initialize
|
7
|
-
@connection = Adhoq.config.callablize(:database_connection).call
|
8
5
|
end
|
9
6
|
|
10
7
|
def select(query)
|
11
|
-
with_sandbox do
|
8
|
+
with_sandbox do |connection|
|
12
9
|
connection.exec_query(query)
|
13
10
|
end
|
14
11
|
end
|
15
12
|
|
16
13
|
def explain(query)
|
17
|
-
with_sandbox do
|
14
|
+
with_sandbox do |connection|
|
18
15
|
connection.explain(query)
|
19
16
|
end
|
20
17
|
end
|
21
18
|
|
19
|
+
def with_connection
|
20
|
+
connection = Adhoq.config.callablize(:database_connection).call
|
21
|
+
yield(connection)
|
22
|
+
end
|
23
|
+
|
22
24
|
def with_sandbox
|
23
25
|
result = nil
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
with_connection do |connection|
|
27
|
+
connection.transaction do
|
28
|
+
result = yield(connection)
|
29
|
+
raise ActiveRecord::Rollback
|
30
|
+
end
|
27
31
|
end
|
28
32
|
result
|
29
33
|
end
|
data/lib/adhoq/storage.rb
CHANGED
@@ -4,6 +4,7 @@ module Adhoq
|
|
4
4
|
autoload 'LocalFile', 'adhoq/storage/local_file'
|
5
5
|
autoload 'S3', 'adhoq/storage/s3'
|
6
6
|
autoload 'OnTheFly', 'adhoq/storage/on_the_fly'
|
7
|
+
autoload 'Cache', 'adhoq/storage/cache'
|
7
8
|
|
8
9
|
def with_new_identifier(suffix = nil, seed = Time.now)
|
9
10
|
dirname, fname_seed = ['%Y-%m-%d', '%H%M%S.%L'].map {|f| seed.strftime(f) }
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Adhoq
|
2
|
+
module Storage
|
3
|
+
class Cache
|
4
|
+
attr_reader :identifier
|
5
|
+
|
6
|
+
def initialize(cache, prefix = "", expire = 300)
|
7
|
+
@cache = cache
|
8
|
+
@identifier = @prefix = prefix
|
9
|
+
@expire = expire
|
10
|
+
end
|
11
|
+
|
12
|
+
def store(suffix = nil, seed = Time.now, &block)
|
13
|
+
Adhoq::Storage.with_new_identifier(suffix, seed) do |identifier|
|
14
|
+
@cache.write(@prefix + identifier, yield.read, expires_in: @expire)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def direct_download?
|
19
|
+
false
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(identifier)
|
23
|
+
@cache.read(@prefix + identifier)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/adhoq/version.rb
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
FactoryBot.define do
|
4
4
|
factory :adhoq_query, class: 'Adhoq::Query' do
|
5
|
-
name 'A query'
|
6
|
-
description 'Simple simple SELECT'
|
7
|
-
query 'SELECT 1'
|
5
|
+
name { 'A query' }
|
6
|
+
description { 'Simple simple SELECT' }
|
7
|
+
query { 'SELECT 1' }
|
8
8
|
|
9
9
|
trait :complex do
|
10
|
-
name 'adhoq current use'
|
11
|
-
description 'Simple analysys: count execution per query'
|
12
|
-
query <<-SQL.strip_heredoc
|
10
|
+
name { 'adhoq current use' }
|
11
|
+
description { 'Simple analysys: count execution per query' }
|
12
|
+
query { <<-SQL.strip_heredoc }
|
13
13
|
SELECT
|
14
14
|
q.id
|
15
15
|
,q.name
|
@@ -27,9 +27,9 @@ FactoryBot.define do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
trait :greeting do
|
30
|
-
name 'greeting'
|
31
|
-
description 'Static query for testing data'
|
32
|
-
query 'SELECT "hello" AS name ,"English greeting message" AS description'
|
30
|
+
name { 'greeting' }
|
31
|
+
description { 'Static query for testing data' }
|
32
|
+
query { 'SELECT "hello" AS name ,"English greeting message" AS description' }
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -21,5 +21,23 @@ module Adhoq
|
|
21
21
|
# Accessable only once
|
22
22
|
expect(execution.report.data).to be_nil
|
23
23
|
end
|
24
|
+
|
25
|
+
describe '#generate_report!' do
|
26
|
+
subject { -> { execution.generate_report! } }
|
27
|
+
|
28
|
+
let(:execution) { Execution.new(query: query, raw_sql: query.query, report_format: 'csv') }
|
29
|
+
|
30
|
+
context 'when execute query successfully' do
|
31
|
+
let(:query) { create(:adhoq_query, query: 'SELECT name, description FROM adhoq_queries') }
|
32
|
+
|
33
|
+
it { is_expected.to change { execution.status.to_s }.to('success') }
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when execute query failed' do
|
37
|
+
let(:query) { create(:adhoq_query, query: 'INVALID SQL') }
|
38
|
+
|
39
|
+
it { is_expected.to change { execution.status.to_s }.to('failure') }
|
40
|
+
end
|
41
|
+
end
|
24
42
|
end
|
25
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adhoq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyosuke MOROHASHI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,42 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: caxlsx
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: coffee-rails
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
40
|
+
version: '3.0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: fog-aws
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,34 +68,20 @@ dependencies:
|
|
82
68
|
version: '0.3'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: font-awesome-sass
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 4.2.0
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 4.2.0
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: jquery-rails
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
73
|
- - ">="
|
102
74
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
75
|
+
version: '4.2'
|
104
76
|
type: :runtime
|
105
77
|
prerelease: false
|
106
78
|
version_requirements: !ruby/object:Gem::Requirement
|
107
79
|
requirements:
|
108
80
|
- - ">="
|
109
81
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
82
|
+
version: '4.2'
|
111
83
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
84
|
+
name: jquery-rails
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
114
86
|
requirements:
|
115
87
|
- - ">="
|
@@ -123,7 +95,7 @@ dependencies:
|
|
123
95
|
- !ruby/object:Gem::Version
|
124
96
|
version: '0'
|
125
97
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
98
|
+
name: sassc-rails
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
128
100
|
requirements:
|
129
101
|
- - ">="
|
@@ -196,16 +168,16 @@ dependencies:
|
|
196
168
|
name: factory_bot_rails
|
197
169
|
requirement: !ruby/object:Gem::Requirement
|
198
170
|
requirements:
|
199
|
-
- - "
|
171
|
+
- - "~>"
|
200
172
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
173
|
+
version: 4.11.1
|
202
174
|
type: :development
|
203
175
|
prerelease: false
|
204
176
|
version_requirements: !ruby/object:Gem::Requirement
|
205
177
|
requirements:
|
206
|
-
- - "
|
178
|
+
- - "~>"
|
207
179
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
180
|
+
version: 4.11.1
|
209
181
|
- !ruby/object:Gem::Dependency
|
210
182
|
name: launchy
|
211
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,14 +254,14 @@ dependencies:
|
|
282
254
|
requirements:
|
283
255
|
- - ">="
|
284
256
|
- !ruby/object:Gem::Version
|
285
|
-
version: '
|
257
|
+
version: '1.4'
|
286
258
|
type: :development
|
287
259
|
prerelease: false
|
288
260
|
version_requirements: !ruby/object:Gem::Requirement
|
289
261
|
requirements:
|
290
262
|
- - ">="
|
291
263
|
- !ruby/object:Gem::Version
|
292
|
-
version: '
|
264
|
+
version: '1.4'
|
293
265
|
- !ruby/object:Gem::Dependency
|
294
266
|
name: tapp
|
295
267
|
requirement: !ruby/object:Gem::Requirement
|
@@ -329,8 +301,8 @@ files:
|
|
329
301
|
- app/assets/javascripts/adhoq/bootstrap/tab.js
|
330
302
|
- app/assets/javascripts/adhoq/bootstrap/tooltip.js
|
331
303
|
- app/assets/javascripts/adhoq/bootstrap/transition.js
|
332
|
-
- app/assets/javascripts/adhoq/current_tables.js
|
333
|
-
- app/assets/javascripts/adhoq/previewer.js
|
304
|
+
- app/assets/javascripts/adhoq/current_tables.js
|
305
|
+
- app/assets/javascripts/adhoq/previewer.js
|
334
306
|
- app/assets/stylesheets/adhoq/_bootstrap-compass.scss
|
335
307
|
- app/assets/stylesheets/adhoq/_bootstrap-mincer.scss
|
336
308
|
- app/assets/stylesheets/adhoq/_bootstrap-sprockets.scss
|
@@ -422,22 +394,23 @@ files:
|
|
422
394
|
- app/models/adhoq/query.rb
|
423
395
|
- app/models/adhoq/report.rb
|
424
396
|
- app/models/adhoq/time_based_orders.rb
|
425
|
-
- app/views/adhoq/application/_global_nav.html.
|
426
|
-
- app/views/adhoq/current_tables/index.html.
|
427
|
-
- app/views/adhoq/explains/create.html.
|
428
|
-
- app/views/adhoq/explains/statement_invalid.html.
|
429
|
-
- app/views/adhoq/previews/create.html.
|
430
|
-
- app/views/adhoq/previews/statement_invalid.html.
|
431
|
-
- app/views/adhoq/queries/_current_tables_leftbar.html.
|
432
|
-
- app/views/adhoq/queries/_execution.html.
|
433
|
-
- app/views/adhoq/queries/_form.html.
|
434
|
-
- app/views/adhoq/queries/_queries.html.
|
435
|
-
- app/views/adhoq/queries/_query.html.
|
436
|
-
- app/views/adhoq/queries/edit.html.
|
437
|
-
- app/views/adhoq/queries/index.html.
|
438
|
-
- app/views/adhoq/queries/new.html.
|
439
|
-
- app/views/adhoq/queries/show.html.
|
440
|
-
- app/views/layouts/adhoq/application.html.
|
397
|
+
- app/views/adhoq/application/_global_nav.html.erb
|
398
|
+
- app/views/adhoq/current_tables/index.html.erb
|
399
|
+
- app/views/adhoq/explains/create.html.erb
|
400
|
+
- app/views/adhoq/explains/statement_invalid.html.erb
|
401
|
+
- app/views/adhoq/previews/create.html.erb
|
402
|
+
- app/views/adhoq/previews/statement_invalid.html.erb
|
403
|
+
- app/views/adhoq/queries/_current_tables_leftbar.html.erb
|
404
|
+
- app/views/adhoq/queries/_execution.html.erb
|
405
|
+
- app/views/adhoq/queries/_form.html.erb
|
406
|
+
- app/views/adhoq/queries/_queries.html.erb
|
407
|
+
- app/views/adhoq/queries/_query.html.erb
|
408
|
+
- app/views/adhoq/queries/edit.html.erb
|
409
|
+
- app/views/adhoq/queries/index.html.erb
|
410
|
+
- app/views/adhoq/queries/new.html.erb
|
411
|
+
- app/views/adhoq/queries/show.html.erb
|
412
|
+
- app/views/layouts/adhoq/application.html.erb
|
413
|
+
- config/database.yml
|
441
414
|
- config/routes.rb
|
442
415
|
- db/migrate/20141003095645_create_adhoq_queries.rb
|
443
416
|
- db/migrate/20141006014750_create_adhoq_executions.rb
|
@@ -456,6 +429,7 @@ files:
|
|
456
429
|
- lib/adhoq/reporter/xlsx.rb
|
457
430
|
- lib/adhoq/result.rb
|
458
431
|
- lib/adhoq/storage.rb
|
432
|
+
- lib/adhoq/storage/cache.rb
|
459
433
|
- lib/adhoq/storage/fog_storage.rb
|
460
434
|
- lib/adhoq/storage/local_file.rb
|
461
435
|
- lib/adhoq/storage/on_the_fly.rb
|
@@ -496,24 +470,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
496
470
|
- !ruby/object:Gem::Version
|
497
471
|
version: '0'
|
498
472
|
requirements: []
|
499
|
-
|
500
|
-
rubygems_version: 2.6.11
|
473
|
+
rubygems_version: 3.1.4
|
501
474
|
signing_key:
|
502
475
|
specification_version: 4
|
503
476
|
summary: DB management console in the wild.
|
504
477
|
test_files:
|
505
|
-
- spec/adhoq/executor/connection_wrapper_spec.rb
|
506
|
-
- spec/adhoq/executor_spec.rb
|
507
|
-
- spec/adhoq/global_variable_spec.rb
|
508
|
-
- spec/adhoq/reporter/csv_spec.rb
|
509
478
|
- spec/adhoq/reporter/json_spec.rb
|
479
|
+
- spec/adhoq/reporter/csv_spec.rb
|
510
480
|
- spec/adhoq/reporter/xlsx_spec.rb
|
511
481
|
- 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
|
512
485
|
- spec/factories/adhoq_queries.rb
|
486
|
+
- spec/models/adhoq/report_spec.rb
|
513
487
|
- spec/models/adhoq/execution_spec.rb
|
514
488
|
- spec/models/adhoq/query_spec.rb
|
515
|
-
- spec/models/adhoq/report_spec.rb
|
516
|
-
- spec/support/activejob_helper.rb
|
517
489
|
- spec/support/feature_spec_helper.rb
|
490
|
+
- spec/support/activejob_helper.rb
|
518
491
|
- spec/support/have_values_in_xlsx_sheet_matcher.rb
|
519
492
|
- spec/spec_helper.rb
|