graphql-rails_logger 1.0.0 → 1.2.3
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 +5 -5
- data/README.md +9 -0
- data/graphql-rails_logger.gemspec +5 -3
- data/lib/graphql/rails_logger/configuration.rb +5 -1
- data/lib/graphql/rails_logger/subscriber.rb +25 -7
- data/lib/graphql/rails_logger/version.rb +1 -1
- metadata +39 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ec122c5449dca8d9c4ad3cbfcf566b3fb326f3dda9e4ab873780a4789e716ae4
|
4
|
+
data.tar.gz: 37797d6232ce4e3befc9138d71a9fea3596d8b888f13917eb5221ef9c8709187
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52b519e43fd717f8235ec0ab27014cacec433561560b87c17288e657d0109f71aae30ccd0966c7cd0cabca534c586d349030616a3f411a3fa188e490e161b1a7
|
7
|
+
data.tar.gz: 44f1c66f08bdfbdfd5f6089ebbe1e9e0a25dc5e26528e4c93dfe69e0beb75e1f413a5a249084bb584841fe977f1a8d9398b7d0478571fbe2ff38113e9f28faf9
|
data/README.md
CHANGED
@@ -28,6 +28,7 @@ And then execute:
|
|
28
28
|
By default this gem formats params only for `GraphqlController#execute`.
|
29
29
|
|
30
30
|
If you want to change this behaviour, add `config/initializers/graphql_rails_logger.rb` file and set proper controller and actions like this:
|
31
|
+
|
31
32
|
```ruby
|
32
33
|
GraphQL::RailsLogger.configure do |config|
|
33
34
|
config.white_list = {
|
@@ -44,6 +45,14 @@ GraphQL::RailsLogger.configure do |config|
|
|
44
45
|
end
|
45
46
|
```
|
46
47
|
|
48
|
+
The theme can be configured as well. The theme is applied using the [rouge](https://github.com/jneen/rouge) gem, where all available options can be found. The default value is `Rouge::Themes::ThankfulEyes.new`.
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
GraphQL::RailsLogger.configure do |config|
|
52
|
+
config.theme = Rouge::Themes::Pastie.new
|
53
|
+
end
|
54
|
+
```
|
55
|
+
|
47
56
|
## Contributing
|
48
57
|
|
49
58
|
Bug reports and pull requests are welcome on GitHub at https://github.com/jetruby/graphql-rails_logger. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
@@ -16,12 +16,14 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
17
|
f.match(%r{^(test|spec|features)/})
|
18
18
|
end
|
19
|
-
spec.bindir = 'bin'
|
20
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
19
|
spec.require_paths = ['lib']
|
22
20
|
|
23
21
|
spec.add_dependency 'rouge', '~> 3.0'
|
24
|
-
|
22
|
+
|
23
|
+
# 5 because not tested with 4
|
24
|
+
spec.add_dependency 'actionpack', '> 5.0'
|
25
|
+
spec.add_dependency 'activesupport', '> 5.0'
|
26
|
+
spec.add_dependency 'railties', '> 5.0'
|
25
27
|
|
26
28
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
27
29
|
spec.add_development_dependency 'rake', '~> 10.0'
|
@@ -1,7 +1,9 @@
|
|
1
|
+
require 'rouge'
|
2
|
+
|
1
3
|
module GraphQL
|
2
4
|
module RailsLogger
|
3
5
|
class Configuration
|
4
|
-
attr_accessor :skip_introspection_query, :white_list
|
6
|
+
attr_accessor :skip_introspection_query, :white_list, :theme
|
5
7
|
|
6
8
|
def initialize
|
7
9
|
@skip_introspection_query = nil
|
@@ -10,6 +12,8 @@ module GraphQL
|
|
10
12
|
@white_list = {
|
11
13
|
'GraphqlController' => %w[execute]
|
12
14
|
}
|
15
|
+
|
16
|
+
@theme = Rouge::Themes::ThankfulEyes.new
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'graphql/rails_logger/configuration'
|
2
2
|
require 'action_controller/log_subscriber'
|
3
3
|
require 'rouge'
|
4
|
+
require 'pp'
|
4
5
|
|
5
6
|
module GraphQL
|
6
7
|
module RailsLogger
|
@@ -30,23 +31,40 @@ module GraphQL
|
|
30
31
|
info "Processing by #{payload[:controller]}##{payload[:action]} as #{format}"
|
31
32
|
|
32
33
|
if config.white_list.fetch(payload[:controller], []).include?(payload[:action])
|
33
|
-
formatter = Rouge::Formatters::Terminal256.new
|
34
|
+
formatter = Rouge::Formatters::Terminal256.new(config.theme)
|
34
35
|
query_lexer = Rouge::Lexers::GraphQL.new
|
35
36
|
variables_lexer = Rouge::Lexers::Ruby.new
|
36
37
|
|
37
|
-
(params['_json'] || [params.slice('query', 'variables')]).each do |data|
|
38
|
+
(params['_json'] || [params.slice('query', 'variables', 'extensions')]).each do |data|
|
38
39
|
|
39
40
|
next if config.skip_introspection_query && data['query'].index(/query IntrospectionQuery/)
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
# Cleanup and indent params for logging
|
43
|
+
query = indent(data.fetch('query', ''))
|
44
|
+
variables = indent(pretty(data.fetch('variables', '')))
|
45
|
+
extensions = indent(pretty(data.fetch('extensions', '')))
|
46
|
+
|
47
|
+
info "\nVariables:\n#{formatter.format(variables_lexer.lex(variables))}" if variables.present?
|
48
|
+
info "\nQuery:\n#{formatter.format(query_lexer.lex(query))}" if query.present?
|
49
|
+
info "\nExtensions:\n#{formatter.format(variables_lexer.lex(extensions))}" if extensions.present?
|
45
50
|
end
|
46
51
|
else
|
47
|
-
info "
|
52
|
+
info "\nParameters:\n#{params.inspect}" unless params.empty?
|
48
53
|
end
|
49
54
|
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def indent(data)
|
59
|
+
data.lines.map { |line| " #{line}" }.join.chomp
|
60
|
+
end
|
61
|
+
|
62
|
+
def pretty(data)
|
63
|
+
return '' if data.blank?
|
64
|
+
|
65
|
+
data = JSON.parse(data) if data.is_a?(String)
|
66
|
+
PP.pp(data, '')
|
67
|
+
end
|
50
68
|
end
|
51
69
|
end
|
52
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-rails_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JetRuby
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rouge
|
@@ -25,17 +25,45 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: actionpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '5.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: railties
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">"
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '5.0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
@@ -69,9 +97,7 @@ dependencies:
|
|
69
97
|
description: Display GraphQL queries in a more readable format.
|
70
98
|
email:
|
71
99
|
- engineering@jetruby.com
|
72
|
-
executables:
|
73
|
-
- console
|
74
|
-
- setup
|
100
|
+
executables: []
|
75
101
|
extensions: []
|
76
102
|
extra_rdoc_files: []
|
77
103
|
files:
|
@@ -95,7 +121,7 @@ homepage: https://github.com/jetruby/graphql-rails_logger
|
|
95
121
|
licenses:
|
96
122
|
- MIT
|
97
123
|
metadata: {}
|
98
|
-
post_install_message:
|
124
|
+
post_install_message:
|
99
125
|
rdoc_options: []
|
100
126
|
require_paths:
|
101
127
|
- lib
|
@@ -110,9 +136,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
136
|
- !ruby/object:Gem::Version
|
111
137
|
version: '0'
|
112
138
|
requirements: []
|
113
|
-
rubyforge_project:
|
114
|
-
rubygems_version: 2.
|
115
|
-
signing_key:
|
139
|
+
rubyforge_project:
|
140
|
+
rubygems_version: 2.7.3
|
141
|
+
signing_key:
|
116
142
|
specification_version: 4
|
117
143
|
summary: Pretty logger for Rails + GraphQL applications.
|
118
144
|
test_files: []
|