niceql 0.1.25 → 0.6.1

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: 286318425292a968afb8fd83fc05d8067bb03432bdf120ab3412a23119cc4128
4
+ data.tar.gz: 1a694bab19fb2281ad3e6b013b4527db6233d55885641eb2b2c76d513309b979
5
5
  SHA512:
6
- metadata.gz: c71dc21142f026ce021836437215fe92b87451b64c58cf1b9c6aa492e5c8a1e2186b97f6e1e9f114cf074cdae9f36d3e381863eebd5dd7e5e4a88c4483299056
7
- data.tar.gz: 60986d42e844edcda1f6a66b83d3edc1b311078a463c15d321ea3e9218f33252764bb2391a7f598fbcbffc6e9cc4af97c6862a072b4b357ff11afd14680830e1
6
+ metadata.gz: 7398eac94842f0f457e7323603ec21ecdae146b9ceccc84e7191f0d2d4539b8de4447f1fa33206c124bc39b5572d1df8eb054d469ea3f39b929cf6b717367d83
7
+ data.tar.gz: f9f4da9487a41a117f08c20416dac9ba8146597301a40c62d162b44013460337ed7015e2674b05d679488b7b6fe7ea9420ae36a244f90c21203eb872b7f0412c
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
@@ -0,0 +1,23 @@
1
+ name: CI
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+
8
+ runs-on: ubuntu-latest
9
+
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ ruby: ["2.5", "2.6", "2.7", "3.0", "3.1"]
14
+
15
+ steps:
16
+ - uses: actions/checkout@v3
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ bundler-cache: true # 'bundle install' and cache gems
21
+ ruby-version: ${{ matrix.ruby }}
22
+ - name: Run tests
23
+ run: bundle exec rake test
@@ -0,0 +1,17 @@
1
+ name: RuboCop
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - uses: actions/checkout@v3
11
+ - name: Set up Ruby
12
+ uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: 2.7
15
+ bundler-cache: true # 'bundle install' and cache
16
+ - name: Run RuboCop
17
+ run: bundle exec rubocop --parallel
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ inherit_gem:
2
+ rubocop-shopify: rubocop.yml
data/CHANGELOG.md CHANGED
@@ -1,3 +1,49 @@
1
+ # 0.6.1
2
+ * github CI added ( PR: https://github.com/alekseyl/niceql/pull/22 many thnx to @petergoldstein )
3
+ * issue fixed https://github.com/alekseyl/niceql/issues/23
4
+ * dropped support for 2.4 ( transform_keys is missing, and I'm too lazy to backward reimplement it you can do PR if needed )
5
+
6
+ # 0.6.0
7
+ * Huge core-logic refactoring and simplification
8
+ * dollar signed literals/strings added
9
+ * strings literals issue https://github.com/alekseyl/niceql/issues/16 fixed
10
+ * strings literals colorized properly
11
+ * comments are bold and greyed now.
12
+ * code now is rubocoped with shopify rules
13
+
14
+ # 0.5.1
15
+ * No features just some code refactoring
16
+
17
+ # 0.5.0
18
+ * BREAKING CHANGE! ActiveRecord compatibility extracted to the rails_sql_prettifier gem!
19
+ If you need niceql funcitonality with rails / active_record plz include rails_sql_prettifier has a
20
+ a versioning aligned to the active_record versions and has same DSL for ActiveRecord the niceql was providing prior.
21
+
22
+ # 0.4.1
23
+ * description update
24
+
25
+ # 0.4.0
26
+ * merged PR https://github.com/alekseyl/niceql/pull/19, now Arel is also extended with niceql methods!!
27
+ * test and better niceql comparisons assertion
28
+ * tests were trialed against rails 4.2 and some additional conditions were added for later cases
29
+
30
+ # 0.3.0
31
+ * ruby forced to >= 2.4
32
+ * String match extension no longer needed
33
+ * fixed issue with missing HINT and DETAIL string ( https://github.com/alekseyl/niceql/issues/18 )
34
+ * both new and old activerecord StatementInvalid formats supported
35
+ * major prettify_pg_err refactoring ( much cleaner code now )
36
+
37
+ # 0.2.0
38
+ * Fix to issue https://github.com/alekseyl/niceql/pull/17#issuecomment-924278172. ActiveRecord base config is no longer a hash,
39
+ so it does not have dig method, hence it's breaking the ar_using_pg_adapter? method.
40
+ * active_record added as development dependency :( for proper testing cover.
41
+
42
+ # 0.1.30
43
+ * ActiveRecord pg check for config now will try both connection_db_config and connection_config for adapter verification
44
+ * prettify_pg_errors will not be set to true if ActiveRecord adapter is not using pg, i.e. ar_using_pg_adapter? is false.
45
+ * rake dev dependency bumped according to security issues
46
+
1
47
  # 0.1.24/25
2
48
 
3
49
  * No features, just strict ruby dependency for >= 2.3,
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
5
7
  # Specify your gem's dependencies in niceql.gemspec
6
8
  gemspec
data/README.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # Niceql
2
2
 
3
- This is a small, nice, simple and dependentless solution for SQL prettifiyng for Ruby.
3
+ **ATTENTION: After ver 0.5.0 the ActiveRecord integration is provided via standalone gem: [rails_sql_prettifier](https://github.com/alekseyl/rails_sql_prettifier)!**
4
+
5
+ This is a small, nice, simple and zero dependency solution for SQL prettifying for Ruby.
4
6
  It can be used in an irb console without any dependencies ( run bin/console and look for examples ).
5
7
 
6
- Any reasonable suggestions on formatting/coloring are welcome
8
+ Any reasonable suggestions are welcome.
9
+
10
+ **Please pay attention: even though issue https://github.com/alekseyl/niceql/issues/16 is resolved
11
+ still potentially UPDATE or INSERT request might corrupt your data, please don't patch pg_adapter on production!**
7
12
 
13
+
8
14
  ## Before/After
9
15
  ### SQL prettifier:
10
16
  ![alt text](https://github.com/alekseyl/niceql/raw/master/to_niceql.png "To_niceql")
@@ -41,9 +47,11 @@ Or install it yourself as:
41
47
  ```ruby
42
48
  Niceql.configure do |c|
43
49
  # Setting pg_adapter_with_nicesql to true will force formatting SQL queries
44
- # before executing them, this will lead to better SQL-query debugging and much more clearer error messages
50
+ # before execution. Formatted SQL will lead to much better SQL-query debugging and much more clearer error messages
45
51
  # if you are using Postgresql as a data source.
46
- # You can adjust pg_adapter in prooduction but do it at your own risk!
52
+ #
53
+ # Adjusting pg_adapter in production is strongly discouraged!
54
+ #
47
55
  # If you need to debug SQL queries in production use exec_niceql
48
56
  # default: false
49
57
  # uncomment next string to enable in development
@@ -53,7 +61,7 @@ Niceql.configure do |c|
53
61
  # default: false
54
62
  # c.prettify_active_record_log_output = true
55
63
 
56
- # now error prettifying is configurable
64
+ # Error prettifying is also configurable
57
65
  # default: defined? ::ActiveRecord::Base && ActiveRecord::Base.configurations[Rails.env]['adapter'] == 'postgresql'
58
66
  # c.prettify_pg_errors = defined? ::ActiveRecord::Base && ActiveRecord::Base.configurations[Rails.env]['adapter'] == 'postgresql'
59
67
 
@@ -79,10 +87,10 @@ end
79
87
 
80
88
  ## Usage
81
89
 
82
- ### With ActiveRecord
90
+ ### With ActiveRecord ( you need rails_sql_prettifier for that! )
83
91
 
84
92
  ```ruby
85
- # puts colorized ( or not if you are willing so ) to_niceql ( you need to call puts otherwise to_niceql looks ugly )
93
+ # puts colorized and formatted corresponding SQL query
86
94
  Model.scope.niceql
87
95
 
88
96
  # only formatting without colorization, you can run output of to_niceql as a SQL query in connection.execute
@@ -107,23 +115,23 @@ end
107
115
  #=>
108
116
  #=> SELECT *
109
117
  #=> FROM table
110
-
111
-
112
-
118
+
113
119
 
114
- # rails combines err with query, so don't forget to do it yourself:
115
- puts Niceql::Prettifier.prettify_pg_err( "#{pg_err_output}\n#{sql_query}" )
120
+ puts Niceql::Prettifier.prettify_pg_err( pg_err_output, sql_query )
116
121
 
117
122
  # to get real nice result you should execute prettified version (i.e. execute( prettified_sql ) !) of query on your DB!
118
123
  # otherwise you will not get such a nice output
119
- puts Niceql::Prettifier.prettify_pg_err(<<~ERR )
124
+ raw_sql = <<~SQL
125
+ SELECT err
126
+ FROM ( VALUES(1), (2) )
127
+ ORDER BY 1
128
+ SQL
129
+
130
+ puts Niceql::Prettifier.prettify_pg_err(<<~ERR, raw_sql )
120
131
  ERROR: VALUES in FROM must have an alias
121
132
  LINE 2: FROM ( VALUES(1), (2) )
122
133
  ^
123
134
  HINT: For example, FROM (VALUES ...) [AS] foo.
124
- SELECT err
125
- FROM ( VALUES(1), (2) )
126
- ORDER BY 1
127
135
  ERR
128
136
 
129
137
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rake/testtask"
3
5
 
@@ -7,4 +9,4 @@ Rake::TestTask.new(:test) do |t|
7
9
  t.test_files = FileList["test/**/*_test.rb"]
8
10
  end
9
11
 
10
- task :default => :test
12
+ task default: :test
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "bundler/setup"
4
5
  require "niceql"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Niceql
2
4
  module Generators
3
5
  class InstallGenerator < Rails::Generators::Base
@@ -5,10 +7,10 @@ module Niceql
5
7
  desc "Creates Niceql initializer for your application"
6
8
 
7
9
  def copy_initializer
8
- template "niceql_initializer.rb", "config/initializers/niceql.rb"
10
+ template("niceql_initializer.rb", "config/initializers/niceql.rb")
9
11
 
10
12
  puts "Install complete!"
11
13
  end
12
14
  end
13
15
  end
14
- end
16
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Niceql.configure do |c|
2
4
  # You can adjust pg_adapter in prooduction at your own risk!
3
5
  # If you need it in production use exec_niceql
@@ -8,4 +10,4 @@ Niceql.configure do |c|
8
10
  # c.indentation_base = 2
9
11
  # c.open_bracket_is_newliner = false
10
12
  # c.prettify_active_record_log_output = false
11
- end
13
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Niceql
2
- VERSION = "0.1.25"
4
+ VERSION = "0.6.1"
3
5
  end