niceql 0.1.25 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b460b8c53129e07c90a14ebf63de07534d07bda56e8b563df2570659d597163
4
- data.tar.gz: 63c4c608e1ae3c087ff4f3e8099a6ad3f3352a13498cfd9d54ca551fd8284c0b
3
+ metadata.gz: 7f9f1dc89c0c7353d4b8c63056d43968b0ad2f71a602d4e50ba5a48bfa568ed0
4
+ data.tar.gz: 9fc1ea32fc0ed3053702b3014dbb270457af028e61b6b1bb63ff6c28005d8ce4
5
5
  SHA512:
6
- metadata.gz: c71dc21142f026ce021836437215fe92b87451b64c58cf1b9c6aa492e5c8a1e2186b97f6e1e9f114cf074cdae9f36d3e381863eebd5dd7e5e4a88c4483299056
7
- data.tar.gz: 60986d42e844edcda1f6a66b83d3edc1b311078a463c15d321ea3e9218f33252764bb2391a7f598fbcbffc6e9cc4af97c6862a072b4b357ff11afd14680830e1
6
+ metadata.gz: e0b76948b56fe949aac0b5582081d42a60e35dede01332772c4fb233bd8c14bd2cf1d029187d25e0bb85c20d660f29763d401f2283695f28da36c0053293411c
7
+ data.tar.gz: 2be8cfca05e187114624a2c70b9318c2dd161c42aca5c3ad90456e2ea2a46cda59de1aadd4d22e8e1111155078fa03b986ce4e7624e809776934eb0c0c94dcb5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 0.2.0
2
+ * Fix to issue https://github.com/alekseyl/niceql/pull/17#issuecomment-924278172. ActiveRecord base config is no longer a hash,
3
+ so it does not have dig method, hence it's breaking the ar_using_pg_adapter? method.
4
+ * active_record added as development dependency :( for proper testing cover.
5
+
6
+ # 0.1.30
7
+ * ActiveRecord pg check for config now will try both connection_db_config and connection_config for adapter verification
8
+ * prettify_pg_errors will not be set to true if ActiveRecord adapter is not using pg, i.e. ar_using_pg_adapter? is false.
9
+ * rake dev dependency bumped according to security issues
10
+
1
11
  # 0.1.24/25
2
12
 
3
13
  * No features, just strict ruby dependency for >= 2.3,
data/README.md CHANGED
@@ -1,10 +1,13 @@
1
1
  # Niceql
2
2
 
3
- This is a small, nice, simple and dependentless solution for SQL prettifiyng for Ruby.
3
+ This is a small, nice, simple and no-dependency solution for SQL prettifying for Ruby.
4
4
  It can be used in an irb console without any dependencies ( run bin/console and look for examples ).
5
5
 
6
6
  Any reasonable suggestions on formatting/coloring are welcome
7
7
 
8
+ **Please pay attention: untill issue https://github.com/alekseyl/niceql/issues/16 is resolved any UPDATE or INSERT request will corrupt your data, don't use on production!**
9
+
10
+
8
11
  ## Before/After
9
12
  ### SQL prettifier:
10
13
  ![alt text](https://github.com/alekseyl/niceql/raw/master/to_niceql.png "To_niceql")
@@ -43,7 +46,7 @@ Niceql.configure do |c|
43
46
  # Setting pg_adapter_with_nicesql to true will force formatting SQL queries
44
47
  # before executing them, this will lead to better SQL-query debugging and much more clearer error messages
45
48
  # if you are using Postgresql as a data source.
46
- # You can adjust pg_adapter in prooduction but do it at your own risk!
49
+ # You can adjust pg_adapter in production but do it at your own risk!
47
50
  # If you need to debug SQL queries in production use exec_niceql
48
51
  # default: false
49
52
  # uncomment next string to enable in development
@@ -1,3 +1,3 @@
1
1
  module Niceql
2
- VERSION = "0.1.25"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/niceql.rb CHANGED
@@ -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.connection_config['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.connection_config['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
@@ -31,11 +31,14 @@ Gem::Specification.new do |spec|
31
31
  spec.require_paths = ["lib"]
32
32
 
33
33
  spec.required_ruby_version = '>= 2.3'
34
+ spec.add_development_dependency "activerecord", ">= 6.1"
35
+
34
36
  spec.add_development_dependency "bundler", ">= 1"
35
- spec.add_development_dependency "rake", "~> 10"
37
+ spec.add_development_dependency "rake", ">= 12.3.3"
36
38
  spec.add_development_dependency "minitest", "~> 5.0"
37
39
 
38
40
  spec.add_development_dependency "differ"
39
41
  spec.add_development_dependency "pry-byebug"
40
42
  spec.add_development_dependency "benchmark-ips"
43
+ spec.add_development_dependency 'sqlite3'
41
44
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: niceql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.25
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: 2019-04-13 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
@@ -28,16 +42,16 @@ dependencies:
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'
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'
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
@@ -143,9 +171,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
171
  - !ruby/object:Gem::Version
144
172
  version: '0'
145
173
  requirements: []
146
- rubyforge_project:
147
- rubygems_version: 2.7.6
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