rails_api_logger 0.2.5 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39be37669636bafc6de423df348669b6cd1ab0507ec309c6db0ae749dbf0ce26
4
- data.tar.gz: f51c5532b0063d7ff54ff3a7f4743ea8a2fa24ec03ca9e858099ae6c93fed4fb
3
+ metadata.gz: 1f13c4887a4835f4654755c70748676106fd20649619fad63084f6a0fc2c9787
4
+ data.tar.gz: 42309cf04f2727b76bb88818e3c694cf5ba80d63f0535b4223c2a4a29d93db99
5
5
  SHA512:
6
- metadata.gz: cac208d6e71ed50107ccc6895b24671281b8659b2cb41a4dfea59be9c4e695715126c9d61244067d2e5978f735a5d38b1483db85d0bf58fc9311cc8c4b797487
7
- data.tar.gz: 8105b58ee606a0666db8c29b2e85c810fb042561f64fcbcf1110d7586a1ce68096908e0bb6a293c98bee12024488adffb492b41ae13a1b09460df5b6609c5749
6
+ metadata.gz: e7b7c914d762daeba5c54d617f4d6802d506b72db0023775ad3548820327e2199608a40af3534b28224744ebcfcd9e8944d2cb313dc9fc30440e8bcfc377711a
7
+ data.tar.gz: 16dbc39a87e88cbed4eadc2dccd24eac17140c349addd336e32f6c55b895316752f07bbc49c7b2b953cbfc3bbb854cf8126b786f0b4298a7df4f941de9b22d81
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ Gemfile.lock
data/CHANGELOG.md CHANGED
@@ -1 +1,8 @@
1
+ # 0.3.0
2
+ * Added `formatted_request_body` and `formatted_response_body` methods.
3
+
4
+ # 0.2.0
5
+ * Switch to a middleware solution
6
+
7
+ # 0.1.0
1
8
  * Initial release
data/Gemfile CHANGED
@@ -2,6 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in rails_api_logger.gemspec
4
4
  gemspec
5
-
6
- gem "rake", "~> 12.0"
7
- gem "rspec", "~> 3.0"
data/README.md CHANGED
@@ -29,6 +29,7 @@ And then execute:
29
29
 
30
30
  ```bash
31
31
  bundle install
32
+ spring stop # if it's running. otherwise it does not see the new generator
32
33
  bundle exec rails generate rails_api_logger:install
33
34
  bundle exec rails db:migrate
34
35
  ```
@@ -1,4 +1,5 @@
1
1
  require "active_record"
2
+ require "nokogiri"
2
3
  require "rails_api_logger/version"
3
4
  require "rails_api_logger/request_log"
4
5
  require "rails_api_logger/inbound_request_log"
@@ -12,7 +12,8 @@ class RequestLog < ActiveRecord::Base
12
12
  validates :path, presence: true
13
13
 
14
14
  def self.from_request(request)
15
- body = (request.body.respond_to?(:read) ? request.body.read : request.body).dup.force_encoding("UTF-8")
15
+ request_body = (request.body.respond_to?(:read) ? request.body.read : request.body)
16
+ body = request_body ? request_body.dup.force_encoding("UTF-8") : nil
16
17
  begin
17
18
  body = JSON.parse(body) if body.present?
18
19
  rescue JSON::ParserError
@@ -20,4 +21,27 @@ class RequestLog < ActiveRecord::Base
20
21
  end
21
22
  create(path: request.path, request_body: body, method: request.method)
22
23
  end
24
+
25
+ def formatted_request_body
26
+ formatted_body(request_body)
27
+ end
28
+
29
+ def formatted_response_body
30
+ formatted_body(response_body)
31
+ end
32
+
33
+ def formatted_body(body)
34
+ if body.is_a?(Hash)
35
+ JSON.pretty_generate(body)
36
+ else
37
+ xml = Nokogiri::XML(body)
38
+ if xml.errors.any?
39
+ body
40
+ else
41
+ xml.to_xml(indent: 2)
42
+ end
43
+ end
44
+ rescue
45
+ body
46
+ end
23
47
  end
@@ -1,3 +1,3 @@
1
1
  module RailsApiLogger
2
- VERSION = "0.2.5"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -25,9 +25,12 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
27
 
28
- spec.add_dependency("railties", ">= 4.1.0")
29
- spec.add_dependency("activerecord", ">= 4.1.0")
28
+ spec.add_dependency "railties", ">= 4.1.0"
29
+ spec.add_dependency "activerecord", ">= 4.1.0"
30
+ spec.add_dependency "nokogiri"
30
31
 
31
32
  spec.add_development_dependency "sqlite3", "~> 1.4.0"
32
33
  spec.add_development_dependency "standard", "~> 0.13.0"
34
+ spec.add_development_dependency "rake", "~> 12.0"
35
+ spec.add_development_dependency "rspec", "~> 3.0"
33
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_api_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Rodi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-11 00:00:00.000000000 Z
11
+ date: 2021-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: sqlite3
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,34 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: 0.13.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '12.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '12.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
69
111
  description: Log inbound and outbound API requests in your Rails application
70
112
  email:
71
113
  - alessandro.rodi@renuo.ch
@@ -81,7 +123,6 @@ files:
81
123
  - CHANGELOG.md
82
124
  - CODE_OF_CONDUCT.md
83
125
  - Gemfile
84
- - Gemfile.lock
85
126
  - LICENSE.txt
86
127
  - README.md
87
128
  - Rakefile
@@ -120,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
161
  - !ruby/object:Gem::Version
121
162
  version: '0'
122
163
  requirements: []
123
- rubygems_version: 3.1.4
164
+ rubygems_version: 3.2.16
124
165
  signing_key:
125
166
  specification_version: 4
126
167
  summary: "Log API requests like a king \U0001F451"
data/Gemfile.lock DELETED
@@ -1,121 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- rails_api_logger (0.2.5)
5
- activerecord (>= 4.1.0)
6
- railties (>= 4.1.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (6.1.3)
12
- actionview (= 6.1.3)
13
- activesupport (= 6.1.3)
14
- rack (~> 2.0, >= 2.0.9)
15
- rack-test (>= 0.6.3)
16
- rails-dom-testing (~> 2.0)
17
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
- actionview (6.1.3)
19
- activesupport (= 6.1.3)
20
- builder (~> 3.1)
21
- erubi (~> 1.4)
22
- rails-dom-testing (~> 2.0)
23
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
- activemodel (6.1.3)
25
- activesupport (= 6.1.3)
26
- activerecord (6.1.3)
27
- activemodel (= 6.1.3)
28
- activesupport (= 6.1.3)
29
- activesupport (6.1.3)
30
- concurrent-ruby (~> 1.0, >= 1.0.2)
31
- i18n (>= 1.6, < 2)
32
- minitest (>= 5.1)
33
- tzinfo (~> 2.0)
34
- zeitwerk (~> 2.3)
35
- ast (2.4.2)
36
- builder (3.2.4)
37
- concurrent-ruby (1.1.8)
38
- crass (1.0.6)
39
- diff-lcs (1.4.4)
40
- erubi (1.10.0)
41
- i18n (1.8.9)
42
- concurrent-ruby (~> 1.0)
43
- loofah (2.9.0)
44
- crass (~> 1.0.2)
45
- nokogiri (>= 1.5.9)
46
- method_source (1.0.0)
47
- minitest (5.14.4)
48
- nokogiri (1.11.2-x86_64-darwin)
49
- racc (~> 1.4)
50
- parallel (1.20.1)
51
- parser (3.0.0.0)
52
- ast (~> 2.4.1)
53
- racc (1.5.2)
54
- rack (2.2.3)
55
- rack-test (1.1.0)
56
- rack (>= 1.0, < 3)
57
- rails-dom-testing (2.0.3)
58
- activesupport (>= 4.2.0)
59
- nokogiri (>= 1.6)
60
- rails-html-sanitizer (1.3.0)
61
- loofah (~> 2.3)
62
- railties (6.1.3)
63
- actionpack (= 6.1.3)
64
- activesupport (= 6.1.3)
65
- method_source
66
- rake (>= 0.8.7)
67
- thor (~> 1.0)
68
- rainbow (3.0.0)
69
- rake (12.3.3)
70
- regexp_parser (2.0.3)
71
- rexml (3.2.4)
72
- rspec (3.10.0)
73
- rspec-core (~> 3.10.0)
74
- rspec-expectations (~> 3.10.0)
75
- rspec-mocks (~> 3.10.0)
76
- rspec-core (3.10.0)
77
- rspec-support (~> 3.10.0)
78
- rspec-expectations (3.10.0)
79
- diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.10.0)
81
- rspec-mocks (3.10.0)
82
- diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.10.0)
84
- rspec-support (3.10.0)
85
- rubocop (1.10.0)
86
- parallel (~> 1.10)
87
- parser (>= 3.0.0.0)
88
- rainbow (>= 2.2.2, < 4.0)
89
- regexp_parser (>= 1.8, < 3.0)
90
- rexml
91
- rubocop-ast (>= 1.2.0, < 2.0)
92
- ruby-progressbar (~> 1.7)
93
- unicode-display_width (>= 1.4.0, < 3.0)
94
- rubocop-ast (1.4.1)
95
- parser (>= 2.7.1.5)
96
- rubocop-performance (1.9.2)
97
- rubocop (>= 0.90.0, < 2.0)
98
- rubocop-ast (>= 0.4.0)
99
- ruby-progressbar (1.11.0)
100
- sqlite3 (1.4.2)
101
- standard (0.13.0)
102
- rubocop (= 1.10.0)
103
- rubocop-performance (= 1.9.2)
104
- thor (1.1.0)
105
- tzinfo (2.0.4)
106
- concurrent-ruby (~> 1.0)
107
- unicode-display_width (2.0.0)
108
- zeitwerk (2.4.2)
109
-
110
- PLATFORMS
111
- ruby
112
-
113
- DEPENDENCIES
114
- rails_api_logger!
115
- rake (~> 12.0)
116
- rspec (~> 3.0)
117
- sqlite3 (~> 1.4.0)
118
- standard (~> 0.13.0)
119
-
120
- BUNDLED WITH
121
- 2.1.4