niceql 0.1.22 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Niceql
2
- VERSION = "0.1.22"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/niceql.rb CHANGED
@@ -35,7 +35,7 @@ module Niceql
35
35
 
36
36
  module Prettifier
37
37
  INLINE_VERBS = %w(WITH ASC (IN\s) COALESCE AS WHEN THEN ELSE END AND UNION ALL ON DISTINCT INTERSECT EXCEPT EXISTS NOT COUNT ROUND CAST).join('| ')
38
- NEW_LINE_VERBS = 'SELECT|FROM|WHERE|CASE|ORDER BY|LIMIT|GROUP BY|(RIGHT |LEFT )*(INNER |OUTER )*JOIN|HAVING|OFFSET|UPDATE'
38
+ NEW_LINE_VERBS = 'SELECT|FROM|WHERE|CASE|ORDER BY|LIMIT|GROUP BY|(RIGHT |LEFT )*(INNER |OUTER )*JOIN( LATERAL)*|HAVING|OFFSET|UPDATE'
39
39
  POSSIBLE_INLINER = /(ORDER BY|CASE)/
40
40
  VERBS = "#{NEW_LINE_VERBS}|#{INLINE_VERBS}"
41
41
  STRINGS = /("[^"]+")|('[^']+')/
@@ -49,7 +49,6 @@ module Niceql
49
49
  Niceql.config
50
50
  end
51
51
 
52
-
53
52
  def self.prettify_err(err)
54
53
  prettify_pg_err( err.to_s )
55
54
  end
@@ -229,15 +228,20 @@ module Niceql
229
228
 
230
229
  module ErrorExt
231
230
  def to_s
232
- if Niceql.config.prettify_pg_errors && ActiveRecord::Base.configurations[Rails.env]['adapter'] == 'postgresql'
233
- Prettifier.prettify_err(super)
234
- else
235
- super
236
- end
231
+ Niceql.config.prettify_pg_errors ? Prettifier.prettify_err(super) : super
237
232
  end
238
233
  end
239
234
 
240
235
  class NiceQLConfig
236
+ def ar_using_pg_adapter?
237
+ return false unless defined?(::ActiveRecord::Base)
238
+
239
+ adapter = ActiveRecord::Base.try(:connection_db_config).try(:adapter) ||
240
+ ActiveRecord::Base.try(:connection_config)&.with_indifferent_access&.dig(:adapter)
241
+
242
+ adapter == 'postgresql'
243
+ end
244
+
241
245
  attr_accessor :pg_adapter_with_nicesql,
242
246
  :indentation_base,
243
247
  :open_bracket_is_newliner,
@@ -250,25 +254,20 @@ module Niceql
250
254
  self.indentation_base = 2
251
255
  self.open_bracket_is_newliner = false
252
256
  self.prettify_active_record_log_output = false
253
- self.prettify_pg_errors = defined? ::ActiveRecord::Base && ActiveRecord::Base.configurations[Rails.env]['adapter'] == 'postgresql'
257
+ self.prettify_pg_errors = ar_using_pg_adapter?
254
258
  end
255
259
  end
256
260
 
257
-
258
261
  def self.configure
259
262
  yield( config )
260
263
 
261
- if config.pg_adapter_with_nicesql
262
- ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.include(PostgresAdapterNiceQL)
263
- end
264
+ return unless defined? ::ActiveRecord::Base
264
265
 
265
- if config.prettify_active_record_log_output
266
- ::ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend( AbstractAdapterLogPrettifier )
267
- end
266
+ ::ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.include(PostgresAdapterNiceQL) if config.pg_adapter_with_nicesql
268
267
 
269
- if config.prettify_pg_errors
270
- ::ActiveRecord::StatementInvalid.include( Niceql::ErrorExt )
271
- end
268
+ ::ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend( AbstractAdapterLogPrettifier ) if config.prettify_active_record_log_output
269
+
270
+ ::ActiveRecord::StatementInvalid.include( Niceql::ErrorExt ) if config.prettify_pg_errors && config.ar_using_pg_adapter?
272
271
  end
273
272
 
274
273
  def self.config
data/niceql.gemspec CHANGED
@@ -30,11 +30,15 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_development_dependency "bundler", "~> 1.15"
34
- spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.required_ruby_version = '>= 2.3'
34
+ spec.add_development_dependency "activerecord", ">= 6.1"
35
+
36
+ spec.add_development_dependency "bundler", ">= 1"
37
+ spec.add_development_dependency "rake", ">= 12.3.3"
35
38
  spec.add_development_dependency "minitest", "~> 5.0"
36
39
 
37
40
  spec.add_development_dependency "differ"
38
41
  spec.add_development_dependency "pry-byebug"
39
42
  spec.add_development_dependency "benchmark-ips"
43
+ spec.add_development_dependency 'sqlite3'
40
44
  end
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niceql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - alekseyl
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-06 00:00:00.000000000 Z
11
+ date: 2021-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '6.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '6.1'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - "~>"
31
+ - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: '1.15'
33
+ version: '1'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - "~>"
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: '1.15'
40
+ version: '1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '10.0'
47
+ version: 12.3.3
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '10.0'
54
+ version: 12.3.3
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: minitest
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,20 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sqlite3
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  description: 'This is simple and nice sql prettifier, it splits, indent and colorize
98
126
  SQL query and PG error if any '
99
127
  email:
@@ -128,7 +156,7 @@ licenses:
128
156
  - MIT
129
157
  metadata:
130
158
  allowed_push_host: https://rubygems.org
131
- post_install_message:
159
+ post_install_message:
132
160
  rdoc_options: []
133
161
  require_paths:
134
162
  - lib
@@ -136,16 +164,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
164
  requirements:
137
165
  - - ">="
138
166
  - !ruby/object:Gem::Version
139
- version: '0'
167
+ version: '2.3'
140
168
  required_rubygems_version: !ruby/object:Gem::Requirement
141
169
  requirements:
142
170
  - - ">="
143
171
  - !ruby/object:Gem::Version
144
172
  version: '0'
145
173
  requirements: []
146
- rubyforge_project:
147
- rubygems_version: 2.7.7
148
- signing_key:
174
+ rubygems_version: 3.1.4
175
+ signing_key:
149
176
  specification_version: 4
150
177
  summary: This is simple and nice sql prettifier, it splits, indent and colorize SQL
151
178
  query and PG errors if any