rest-client-jogger 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 500615aa5468f9e71cd899d2e3610af428a6e5f6
4
+ data.tar.gz: c739106fd9ae51b3168c282e0a2e104a21d985ce
5
+ SHA512:
6
+ metadata.gz: 5d6da1310c7b75280d710515f9cb81b8f1e294eec0b4114cb086fde119bc217eb40f268dce9aafcf1511ea5b9ea96aaf49a1b504a3c77eb1b897f9f1dba6e4b8
7
+ data.tar.gz: a5a9191598f41a1467fdd30a7a15325c0d6461f990abe649aded49884a2d9f7b4e0a169b0c99b010cf95d81a61b63de6c94cae889117069650f3bd64263e9ad1
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /log/
11
+ /vendor/bundle
12
+ .DS_Store
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format documentation
3
+ --color
data/.simplecov ADDED
@@ -0,0 +1,5 @@
1
+ SimpleCov.start do
2
+ SimpleCov.minimum_coverage 100.0
3
+ add_filter "/spec"
4
+ add_filter "/vendor"
5
+ end
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.1.2
5
+ - 2.2.0
6
+ - 2.2.1
7
+ - 2.2.2
8
+ - 2.2.3
9
+ - 2.3.0
10
+ before_install: gem install bundler -v 1.12.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rest-client-jogger.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Alberta Motor Assocation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # RestClient::Jogger
2
+
3
+ JSON Logger for RestClient
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'rest-client-jogger'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install rest-client-jogger
20
+
21
+ ## Usage
22
+
23
+ The `logged_request` method is the primary interaction with this gem.
24
+
25
+ You can call `RestClient::Request.logged_request` in place of `RestClient::Request.execute`. The `logged_request` method will send a notification to an `ActiveSupport::Notifications` subscriber.
26
+
27
+ Here's how to setup the event subscriber in a Rails application:
28
+
29
+ ```ruby
30
+ # in an initializer somewhere
31
+ require 'rest_client/jogger'
32
+
33
+ RestClient::Jogger::EventSubscriber.new.subscribe
34
+ ```
35
+
36
+ This will log all requests made with the `logged_request` method to a logfile in `log/rest_client.log`.
37
+
38
+ ## Development
39
+
40
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
41
+
42
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
43
+
44
+ ## Contributing
45
+
46
+ Bug reports and pull requests are welcome on GitHub at https://github.com/amaabca/rest-client-jogger.
47
+
48
+
49
+ ## License
50
+
51
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new :spec
5
+
6
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "rest/client/jogger"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/rake ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'rake' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rake", "rake")
data/bin/rspec ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ #
4
+ # This file was generated by Bundler.
5
+ #
6
+ # The application 'rspec' is installed as part of a gem, and
7
+ # this file is here to facilitate running it.
8
+ #
9
+
10
+ require "pathname"
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12
+ Pathname.new(__FILE__).realpath)
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rspec-core", "rspec")
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,59 @@
1
+ module LoggedRequest
2
+ PATTERN = 'rest_client.request'.freeze
3
+ DEFAULT_CONTENT_TYPE = 'application/json'.freeze
4
+
5
+ def logged_request(opts = {}, &block)
6
+ # We intend on using the following variables in this method's
7
+ # ensure block. This means that we must take care to ensure
8
+ # that we check for nil against these variables whenever they
9
+ # are accessed.
10
+ response, exception = nil, nil
11
+ started = Time.now
12
+ response = execute(opts, &block)
13
+ rescue StandardError => ex
14
+ exception = ex.class.to_s
15
+ response = ex.respond_to?(:response) && ex.response
16
+ raise ex # Re-raise the exception, we just wanted to capture it
17
+ ensure
18
+ time = (Time.now - started).round(2)
19
+ content_type = content_type_from_headers(opts[:headers])
20
+ payload = filter(content_type).new(data: opts[:payload]).filter
21
+ params = opts.except(:user, :password, :payload).merge(payload: payload)
22
+ ActiveSupport::Notifications.instrument PATTERN,
23
+ log_data(params, response, exception, time)
24
+ end
25
+
26
+ private
27
+
28
+ def log_data(params, response, exception, time)
29
+ request_data(params).merge(
30
+ response: response_data(response),
31
+ exception: exception,
32
+ time_elapsed: time
33
+ )
34
+ end
35
+
36
+ def response_data(response = nil)
37
+ if response
38
+ {
39
+ code: response.code,
40
+ headers: response.headers,
41
+ body: response.body.to_s.force_encoding('UTF-8')
42
+ }
43
+ end
44
+ end
45
+
46
+ def request_data(params)
47
+ {
48
+ request: params
49
+ }
50
+ end
51
+
52
+ def filter(content_type)
53
+ RestClient::Jogger::Filters::Base.filter_class(content_type)
54
+ end
55
+
56
+ def content_type_from_headers(headers)
57
+ (headers && headers[:content_type]) || DEFAULT_CONTENT_TYPE
58
+ end
59
+ end
@@ -0,0 +1,19 @@
1
+ require "json"
2
+ require "mime/types"
3
+ require "active_model"
4
+ require "rollbar"
5
+ require "rest_client/jogger/version"
6
+ require "rest_client/jogger/event_subscriber"
7
+ require "rest_client/jogger/request_complete"
8
+ require "rest_client/jogger/filters/base"
9
+ require "rest_client/jogger/filters/json"
10
+ require "rest_client/jogger/filters/xml"
11
+ require "rest_client/core_ext/logged_request"
12
+
13
+ module RestClient
14
+ class Request
15
+ extend LoggedRequest
16
+ end
17
+ module Jogger
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ module RestClient
2
+ module Jogger
3
+ class EventSubscriber
4
+ attr_accessor :logger
5
+
6
+ def logger
7
+ @logger ||= ActiveSupport::Logger.new('log/rest_client.log').tap { |l| l.level = Logger::DEBUG }
8
+ end
9
+
10
+ def pattern
11
+ LoggedRequest::PATTERN
12
+ end
13
+
14
+ def subscribe
15
+ ActiveSupport::Notifications.subscribe pattern, RequestComplete.new(logger: logger)
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,55 @@
1
+ module RestClient
2
+ module Jogger
3
+ module Filters
4
+ class Base
5
+ DEFAULT_REPLACEMENT = '[FILTERED]'.freeze
6
+
7
+ include ActiveModel::Model
8
+
9
+ attr_accessor :data, :content_type, :filters, :filter_replacement
10
+
11
+ def self.filter_class(content_type)
12
+ type = MIME::Types[content_type].first
13
+ if type && type.sub_type == 'xml'
14
+ RestClient::Jogger::Filters::Xml
15
+ else
16
+ RestClient::Jogger::Filters::Json
17
+ end
18
+ end
19
+
20
+ def filter
21
+ filters.each do |filter|
22
+ filter_data filter
23
+ end
24
+ data
25
+ end
26
+
27
+ def data
28
+ @data ||= ''
29
+ end
30
+
31
+ def filter_replacement
32
+ @filter_replacement ||= DEFAULT_REPLACEMENT
33
+ end
34
+
35
+ def filters
36
+ @filters ||= filter_parameters
37
+ end
38
+
39
+ def content_type
40
+ @content_type ||= 'application/json'
41
+ end
42
+
43
+ private
44
+
45
+ def filter_parameters
46
+ defined?(Rails) ? Rails.configuration.filter_parameters : []
47
+ end
48
+
49
+ def filter_data(filter)
50
+ raise NotImplementedError
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,14 @@
1
+ module RestClient
2
+ module Jogger
3
+ module Filters
4
+ class Json < RestClient::Jogger::Filters::Base
5
+
6
+ private
7
+
8
+ def filter_data(filter)
9
+ data.gsub! /"(#{filter})": ?"(.*[^\"])"/, "\"#{filter}\": \"#{filter_replacement}\""
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module RestClient
2
+ module Jogger
3
+ module Filters
4
+ class Xml < RestClient::Jogger::Filters::Base
5
+
6
+ private
7
+
8
+ def filter_data(filter)
9
+ data.gsub! /<#{filter}>(.*)<\/#{filter}>/, "<#{filter}>#{filter_replacement}</#{filter}>"
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ module RestClient
2
+ module Jogger
3
+ class RequestComplete
4
+ include ::ActiveModel::Model
5
+ attr_accessor :logger, :notifier
6
+
7
+ def initialize(args = {})
8
+ self.logger = args.fetch :logger
9
+ super
10
+ end
11
+
12
+ def notifier
13
+ @notifier ||= ::Rollbar
14
+ end
15
+
16
+ def call(name, start, finish, id, payload)
17
+ message = ::JSON.dump(payload.merge(event_name: name, event_id: id, timestamp: start))
18
+ name =~ /error/ ? logger.error(message) : logger.debug(message)
19
+ rescue StandardError => e
20
+ notifier.error e, payload: payload
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ module RestClient
2
+ module Jogger
3
+ VERSION = '0.3.2'.freeze
4
+ end
5
+ end
@@ -0,0 +1,43 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rest_client/jogger/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "rest-client-jogger"
8
+ spec.version = RestClient::Jogger::VERSION
9
+ spec.authors = ["Jordan Babe", "Jesse Doyle", "Michael van den Beuken"]
10
+ spec.email = ["jordan.babe@ama.ab.ca", "jesse.doyle@ama.ab.ca", "michael.beuken@gmail.com"]
11
+
12
+ spec.summary = %q{Logs RestClient requests in a JSON format}
13
+ spec.description = %q{Logs RestClient requests in a JSON format.}
14
+ spec.homepage = "https://github.com/amaabca/rest-client-jogger"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ # Rails/ActiveModel/ActiveSupport 5.0.X requires ruby >= 2.2.2
23
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.2.2')
24
+ spec.add_dependency "activesupport", '>= 4.2'
25
+ spec.add_dependency "activemodel", '>= 4.2'
26
+ else
27
+ spec.add_dependency "activesupport", '~> 4.2'
28
+ spec.add_dependency "activemodel", '~> 4.2'
29
+ end
30
+
31
+ spec.add_dependency "mime-types"
32
+ spec.add_dependency "rollbar"
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.12"
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "rspec", "~> 3.0"
37
+ spec.add_development_dependency "rspec-json_expectations"
38
+ spec.add_development_dependency "rest-client", "~> 2.0.0"
39
+ spec.add_development_dependency "nokogiri"
40
+ spec.add_development_dependency 'webmock'
41
+ spec.add_development_dependency "pry"
42
+ spec.add_development_dependency "simplecov"
43
+ end
metadata ADDED
@@ -0,0 +1,251 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rest-client-jogger
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
5
+ platform: ruby
6
+ authors:
7
+ - Jordan Babe
8
+ - Jesse Doyle
9
+ - Michael van den Beuken
10
+ autorequire:
11
+ bindir: exe
12
+ cert_chain: []
13
+ date: 2016-11-23 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: '4.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '4.2'
29
+ - !ruby/object:Gem::Dependency
30
+ name: activemodel
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '4.2'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '4.2'
43
+ - !ruby/object:Gem::Dependency
44
+ name: mime-types
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rollbar
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: bundler
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '1.12'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '1.12'
85
+ - !ruby/object:Gem::Dependency
86
+ name: rake
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '10.0'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '10.0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: rspec
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.0'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '3.0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: rspec-json_expectations
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rest-client
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 2.0.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 2.0.0
141
+ - !ruby/object:Gem::Dependency
142
+ name: nokogiri
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ - !ruby/object:Gem::Dependency
156
+ name: webmock
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ - !ruby/object:Gem::Dependency
170
+ name: pry
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ - !ruby/object:Gem::Dependency
184
+ name: simplecov
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ type: :development
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ description: Logs RestClient requests in a JSON format.
198
+ email:
199
+ - jordan.babe@ama.ab.ca
200
+ - jesse.doyle@ama.ab.ca
201
+ - michael.beuken@gmail.com
202
+ executables: []
203
+ extensions: []
204
+ extra_rdoc_files: []
205
+ files:
206
+ - ".gitignore"
207
+ - ".rspec"
208
+ - ".simplecov"
209
+ - ".travis.yml"
210
+ - Gemfile
211
+ - LICENSE
212
+ - README.md
213
+ - Rakefile
214
+ - bin/console
215
+ - bin/rake
216
+ - bin/rspec
217
+ - bin/setup
218
+ - lib/rest_client/core_ext/logged_request.rb
219
+ - lib/rest_client/jogger.rb
220
+ - lib/rest_client/jogger/event_subscriber.rb
221
+ - lib/rest_client/jogger/filters/base.rb
222
+ - lib/rest_client/jogger/filters/json.rb
223
+ - lib/rest_client/jogger/filters/xml.rb
224
+ - lib/rest_client/jogger/request_complete.rb
225
+ - lib/rest_client/jogger/version.rb
226
+ - rest-client-jogger.gemspec
227
+ homepage: https://github.com/amaabca/rest-client-jogger
228
+ licenses:
229
+ - MIT
230
+ metadata: {}
231
+ post_install_message:
232
+ rdoc_options: []
233
+ require_paths:
234
+ - lib
235
+ required_ruby_version: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ required_rubygems_version: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ requirements: []
246
+ rubyforge_project:
247
+ rubygems_version: 2.5.1
248
+ signing_key:
249
+ specification_version: 4
250
+ summary: Logs RestClient requests in a JSON format
251
+ test_files: []