pp_sql 1.0.0 → 2.0.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 +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +44 -18
- data/lib/pp_sql/version.rb +1 -1
- data/lib/pp_sql.rb +13 -39
- metadata +26 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a559008902010eaf5b28733b39837e48d5a79c74caa4d2075161a9d83900e0c
|
4
|
+
data.tar.gz: 3059d4e7c694d2a80838142668c7da7277ca083548ddeb3a9ebd1987addaee4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c26a69252eacb551d9585078158129a98b3350835a9a5b60c5100a4998e668dbd5de731fc65fd300f1fea88a1e96fccd8f663b4e24b4154b28e2ae1328aab7d
|
7
|
+
data.tar.gz: 764fb72223cb662688b06646a6181fe79a43f6f1513d4f9140ce5bb17c00d88fc8c7be971859c0095c18135ce1a498b10062bc55dea9b06da1d18fe647f1e24c
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,40 +1,39 @@
|
|
1
1
|
# PpSql
|
2
|
-
|
3
|
-
[![
|
4
|
-
[![
|
2
|
+
|
3
|
+
[![Version ][rubygems_badge]][rubygems]
|
4
|
+
[![Codacy Badge ][codacy_badge]][codacy]
|
5
|
+
[![Reviewed by Hound ][hound_badge]][hound]
|
5
6
|
|
6
7
|
Replace standard `ActiveRecord#to_sql` method with
|
7
|
-
[`anbt-sql-formatter`]
|
8
|
+
[`anbt-sql-formatter`][anbt-sql-formatter-link]
|
8
9
|
gem for pretty SQL code output in console. Rails log will be formatted also.
|
9
10
|
Example output:
|
10
11
|
|
11
|
-
![log]
|
12
|
+
![log][log-img]
|
12
13
|
|
13
14
|
Or in console
|
14
15
|
|
15
|
-
![console]
|
16
|
+
![console][console-img]
|
16
17
|
|
17
18
|
## Require
|
18
19
|
|
19
|
-
Ruby 2.
|
20
|
+
Ruby 2.4+
|
20
21
|
|
21
22
|
## Rails
|
22
23
|
|
23
|
-
Rails
|
24
|
+
Rails 5.0+ (optional), will be injected automatically
|
24
25
|
|
25
|
-
##
|
26
|
+
## Legacy
|
26
27
|
|
27
|
-
|
28
|
-
Post.first.to_sql
|
29
|
-
```
|
28
|
+
You can use version `~> 0.2` of this gem with Ruby 2.2, 2.3 and/or Rails 4.0, 4.1
|
30
29
|
|
31
|
-
|
30
|
+
## Usage
|
32
31
|
|
33
32
|
```
|
34
|
-
|
33
|
+
Post.first.to_sql
|
35
34
|
```
|
36
35
|
|
37
|
-
|
36
|
+
for easy and clean usage with custom string you can use:
|
38
37
|
|
39
38
|
```
|
40
39
|
class MyAwesomeDecoratedString < String
|
@@ -45,13 +44,15 @@ end
|
|
45
44
|
## Installation
|
46
45
|
|
47
46
|
add in Gemfile
|
47
|
+
|
48
48
|
```
|
49
49
|
gem 'pp_sql', group: :development
|
50
50
|
```
|
51
51
|
|
52
52
|
And then execute:
|
53
|
+
|
53
54
|
```bash
|
54
|
-
|
55
|
+
bundle
|
55
56
|
```
|
56
57
|
|
57
58
|
## With other formatters
|
@@ -67,7 +68,7 @@ If you do not want to rewrite default `#to_sql` method you may specify
|
|
67
68
|
You can also disable log formatting by specifying `PpSql.add_rails_logger_formatting=false`
|
68
69
|
in initializers.
|
69
70
|
|
70
|
-
|
71
|
+
### Add to Application record
|
71
72
|
|
72
73
|
I found usefull this trick:
|
73
74
|
|
@@ -79,6 +80,31 @@ I found usefull this trick:
|
|
79
80
|
end
|
80
81
|
```
|
81
82
|
|
83
|
+
### Supported by
|
84
|
+
|
85
|
+
[![jetbrains][jetbrains-img-link]][jetbrains-link]
|
86
|
+
|
87
|
+
## Contributing
|
88
|
+
|
89
|
+
Running the tests requires sqlite. To run the tests for different combinations of dependency
|
90
|
+
versions, run `bundle exec appraisal install` followed by `bundle exec appraisal rake`.
|
91
|
+
|
82
92
|
## License
|
93
|
+
|
83
94
|
The gem is available as open source under the terms of the
|
84
|
-
[MIT License]
|
95
|
+
[MIT License][mit-licence-link].
|
96
|
+
|
97
|
+
[rubygems_badge]: http://img.shields.io/gem/v/pp_sql.svg
|
98
|
+
[rubygems]: https://rubygems.org/gems/pp_sql
|
99
|
+
[codacy_badge]: https://app.codacy.com/project/badge/Grade/0394889311ea49529ddea12baac9b699
|
100
|
+
[codacy]: https://www.codacy.com/gh/kvokka/pp_sql/dashboard?utm_source=github.com&utm_medium=referral&utm_content=kvokka/pp_sql&utm_campaign=Badge_Grade
|
101
|
+
[hound_badge]: https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg
|
102
|
+
[hound]: https://houndci.com
|
103
|
+
|
104
|
+
[anbt-sql-formatter-link]: https://github.com/sonota88/anbt-sql-formatter
|
105
|
+
[mit-licence-link]: http://opensource.org/licenses/MIT
|
106
|
+
[jetbrains-link]: https://www.jetbrains.com/?from=pp_sql
|
107
|
+
[jetbrains-img-link]: https://raw.githubusercontent.com/kvokka/pp_sql/master/img/jetbrains-variant-3.svg?sanitize=true
|
108
|
+
|
109
|
+
[log-img]: https://raw.githubusercontent.com/kvokka/pp_sql/master/img/log.png
|
110
|
+
[console-img]: https://raw.githubusercontent.com/kvokka/pp_sql/master/img/console.png
|
data/lib/pp_sql/version.rb
CHANGED
data/lib/pp_sql.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module PpSql
|
4
|
+
WHITE_SPACE = ' '
|
5
|
+
|
4
6
|
# if you do not want to rewrite AR native method #to_sql
|
5
7
|
# you may switch this setting to false in initializer
|
6
8
|
class << self
|
@@ -20,54 +22,27 @@ module PpSql
|
|
20
22
|
rule = AnbtSql::Rule.new
|
21
23
|
rule.keyword = AnbtSql::Rule::KEYWORD_UPPER_CASE
|
22
24
|
%w[count sum substr date].each { |func_name| rule.function_names << func_name.upcase }
|
23
|
-
rule.indent_string =
|
25
|
+
rule.indent_string = WHITE_SPACE
|
24
26
|
@_sql_formatter = AnbtSql::Formatter.new(rule)
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
28
30
|
module ToSqlBeautify
|
29
31
|
def to_sql
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
extend Formatter
|
34
|
-
_sql_formatter.format(defined?(super) ? super.dup : dup)
|
35
|
-
end
|
36
|
-
|
37
|
-
def pp_sql
|
38
|
-
puts to_sql
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
module ToSqlBeautifyRefinement
|
43
|
-
refine String do
|
44
|
-
include PpSql::ToSqlBeautify
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
module Rails5PpSqlExtraction
|
49
|
-
# export from Rails 5 with for Rails 4.2+ versions
|
50
|
-
|
51
|
-
private
|
52
|
-
|
53
|
-
def colorize_payload_name(name, payload_name)
|
54
|
-
if payload_name.blank? || payload_name == 'SQL' # SQL vs Model Load/Exists
|
55
|
-
color(name, ActiveSupport::LogSubscriber::MAGENTA, true)
|
32
|
+
if ::PpSql.rewrite_to_sql_method
|
33
|
+
extend Formatter
|
34
|
+
_sql_formatter.format(defined?(super) ? super.dup : dup)
|
56
35
|
else
|
57
|
-
|
36
|
+
defined?(super) ? super : self
|
58
37
|
end
|
59
38
|
end
|
60
39
|
|
61
|
-
def
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
when /\A\s*update/i then ActiveSupport::LogSubscriber::YELLOW
|
68
|
-
when /\A\s*delete/i then ActiveSupport::LogSubscriber::RED
|
69
|
-
when /transaction\s*\Z/i then ActiveSupport::LogSubscriber::CYAN
|
70
|
-
else ActiveSupport::LogSubscriber::MAGENTA
|
40
|
+
def pp_sql
|
41
|
+
if ::PpSql.rewrite_to_sql_method
|
42
|
+
puts to_sql
|
43
|
+
else
|
44
|
+
extend Formatter
|
45
|
+
puts _sql_formatter.format(to_sql.to_s)
|
71
46
|
end
|
72
47
|
end
|
73
48
|
end
|
@@ -90,7 +65,6 @@ module PpSql
|
|
90
65
|
ActiveSupport.on_load(:active_record) do
|
91
66
|
ActiveRecord::Relation.send(:prepend, ToSqlBeautify)
|
92
67
|
ActiveRecord::LogSubscriber.send(:prepend, LogSubscriberPrettyPrint)
|
93
|
-
ActiveRecord::LogSubscriber.send(:include, Rails5PpSqlExtraction) if Rails::VERSION::MAJOR <= 4
|
94
68
|
end
|
95
69
|
end
|
96
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pp_sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kvokka
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0
|
33
|
+
version: 0.1.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: 0.0
|
40
|
+
version: 0.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '5.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '5.0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: sqlite3
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- - "
|
101
|
+
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.
|
103
|
+
version: '1.4'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- - "
|
108
|
+
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.
|
110
|
+
version: '1.4'
|
97
111
|
description: Helps to save your eyes, when reading hardcore SQL requests in console
|
98
112
|
email:
|
99
113
|
- kvokka@yahoo.com
|
@@ -110,7 +124,7 @@ homepage: https://github.com/kvokka/pp_sql
|
|
110
124
|
licenses:
|
111
125
|
- MIT
|
112
126
|
metadata: {}
|
113
|
-
post_install_message:
|
127
|
+
post_install_message:
|
114
128
|
rdoc_options: []
|
115
129
|
require_paths:
|
116
130
|
- lib
|
@@ -125,8 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
139
|
- !ruby/object:Gem::Version
|
126
140
|
version: '0'
|
127
141
|
requirements: []
|
128
|
-
rubygems_version: 3.
|
129
|
-
signing_key:
|
142
|
+
rubygems_version: 3.1.4
|
143
|
+
signing_key:
|
130
144
|
specification_version: 4
|
131
145
|
summary: Beautify SQL output of ActiveRecord#to_sql
|
132
146
|
test_files: []
|