rack-faraday_inspector 0.1.0 → 0.2.0

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
  SHA1:
3
- metadata.gz: 95fdbd002b5be9a4b528166a62e9eb9e3bfa5cb0
4
- data.tar.gz: c0249d1e1963c4dcc899468ae4b722bc533b4499
3
+ metadata.gz: 497118808554cb3dc0a5e578bfe4768512a58f56
4
+ data.tar.gz: 6d4b861d47740da72fda849139742b9ec7c6156d
5
5
  SHA512:
6
- metadata.gz: 885457a8bf7c316204a1eeada3102947d8eee6d326648fc43ac0fcf1da0e3e9e545239dac91cadedd3be252589a8a2f4b5d5dc9e9a57d846c85ec38757a3e6af
7
- data.tar.gz: 19fd5656a9fa66ee65df837a49dc8157bca02326e0872669eaf1b133a705bf77688a17b3962333cb1c31e6a6015510a51c82ddf87c06591ba46a99b182dcd0e7
6
+ metadata.gz: 31e113cc13671ed00f4102688a58d1c0cb5fb138bc789150b95810df2f4ed81a0a104a0e04e0bb0d9fcd9980cef9bf1d52fe6f4293543d056b4429a42bd2774c
7
+ data.tar.gz: 7399a9aa212df6f1173b72b8d63cd0317630797cd8aa7ac72db38094b5c0681a2debdce7e115f31283dfe105c95aab9bac7ac11b15c05b33aae7817b007192b3
data/.gitignore CHANGED
@@ -7,3 +7,6 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+
11
+ *.gem
12
+ .sass-cache
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Rack::FaradayInspector
2
2
 
3
- Rack::FaradayInspector renders a bit of HTML at the bottom of your pages that allows you to inspect all of the requests Faraday made for the current request.
3
+ Rack::FaradayInspector renders a bit of HTML at the bottom of your pages that allows you to inspect all of the HTTP requests Faraday made during the current Rails action.
4
+
5
+ It's like your browser's developer tools network view, but for your backend API requests.
4
6
 
5
7
  ![rack-faraday_inspector](https://cloud.githubusercontent.com/assets/29424/13030496/029e5f7a-d262-11e5-886c-1b8e3b8a6260.gif)
6
8
 
@@ -14,21 +16,30 @@ Add this line to your application's Gemfile:
14
16
  gem 'rack-faraday_inspector', github: 'chrisb/rack-faraday_inspector'
15
17
  ```
16
18
 
17
- I'm still actively working on this Gem, so it has not been pushed to Rubygems yet.
19
+ I'm still actively working on this Gem, so pull from GitHub.
18
20
 
19
21
  ## Usage
20
22
 
21
- To view requests, simply add the middleware to each of the Faraday connections you want to inspect:
23
+ In order to instrument and show Faraday requests, you'll need to add the middleware to your connection:
22
24
 
23
25
  ```ruby
24
- require 'rack/faraday_inspector'
25
-
26
26
  Faraday.new url: 'http://www.sushi.com' do |faraday|
27
27
  faraday.use :inspector
28
28
  # ...
29
29
  end
30
30
  ```
31
31
 
32
+ By default the inspector web UI is disabled. To enable the inspector, add the following to an initializer, or better yet, to the specific Rails environment configurations that you want to enable the inspector for:
33
+
34
+ i.e. in `config/environments/development.rb`:
35
+
36
+ ```ruby
37
+ Rails.application.configure do
38
+ # ...
39
+ Rack::FaradayInspector.enabled = true
40
+ end
41
+ ```
42
+
32
43
  Note: only in the `development` environment will requests be instrumented and the inspector rendered.
33
44
 
34
45
  ## Contributing
data/Rakefile CHANGED
@@ -1,2 +1,27 @@
1
1
  require "bundler/gem_tasks"
2
- task :default => :spec
2
+
3
+ task default: :spec
4
+
5
+ desc "compile SASS stylesheets"
6
+ task :compile_sass do
7
+ `sass assets/sass/style.scss --style compressed > assets/css/style.css`
8
+ end
9
+
10
+ # copied from rack-mini-profiler
11
+ desc "update asset version file"
12
+ task update_asset_version: :compile_sass do
13
+ require 'digest/md5'
14
+ h = []
15
+ Dir.glob('assets/**/*.{js,css}').each do |f|
16
+ h << Digest::MD5.hexdigest(::File.read(f))
17
+ end
18
+
19
+ File.open('lib/rack/faraday_inspector/asset_version.rb','w') do |f|
20
+ f.write \
21
+ "module Rack
22
+ class FaradayInspector
23
+ ASSET_VERSION = '#{Digest::MD5.hexdigest(h.sort.join(''))}'.freeze
24
+ end
25
+ end"
26
+ end
27
+ end
@@ -0,0 +1 @@
1
+ .faraday_inspector{position:absolute;bottom:0;left:0;background-color:#f2f2f2;font-size:12px;font-family:'Helvetica Neue', sans-serif}.faraday_inspector.minimized{border:1px solid #eee;border-top-right-radius:8px;padding:8px}.faraday_inspector.minimized table{display:none}.faraday_inspector.minimized .request{display:none}.faraday_inspector.minimized .close{display:none}.faraday_inspector.open{width:100%;border-top:1px solid #eee}.faraday_inspector.open .prompt{display:none}.faraday_inspector.open .close{display:inline-block;position:absolute;top:0;right:0;padding:6px;font-size:14px}.faraday_inspector .event .method{font-weight:bold}.faraday_inspector .event .host,.faraday_inspector .event .duration,.faraday_inspector .event .status{color:#aaa}.faraday_inspector .event .host,.faraday_inspector .event .duration,.faraday_inspector .event .status,.faraday_inspector .event .method{width:60px}.faraday_inspector .event .host,.faraday_inspector .event .duration,.faraday_inspector .event .status{text-align:right}.faraday_inspector .event .method{text-align:center}.faraday_inspector .request{max-height:400px;text-overflow:scroll;overflow:scroll;font-family:'Source Code Pro Light', 'Menlo', monospace;margin:10px;background-color:#fff;padding:8px}.faraday_inspector .request.json{background-color:ghostwhite;border:1px solid silver;padding:10px 20px;margin:20px}.faraday_inspector .request.json .json-key{color:brown}.faraday_inspector .request.json .json-value{color:navy}.faraday_inspector .request.json .json-string{color:olive}.faraday_inspector .prompt,.faraday_inspector .close{cursor:pointer;cursor:hand;font-weight:bold}.faraday_inspector table{width:100%;font-family:'Source Code Pro Light', 'Menlo', monospace;border-spacing:0}.faraday_inspector table .request{display:none}.faraday_inspector table .request.open{display:block}.faraday_inspector table tr.event:hover{cursor:hand;cursor:pointer;background-color:#ffe}
@@ -3,7 +3,13 @@
3
3
  <%= @css %>
4
4
  -->
5
5
  </style>
6
- <h1>I'm here!</h1>
6
+
7
+ <script type="text/javascript">
8
+ //<![CDATA[
9
+ <%= @javascript %>
10
+ //]]>
11
+ </script>
12
+
7
13
  <div class='faraday_inspector minimized'>
8
14
  <div class='prompt'>
9
15
  <%= Thread.current[:faraday_requests].count %> Faraday Request<%= 's' unless Thread.current[:faraday_requests].to_a.count == 1 %>
@@ -12,20 +18,30 @@
12
18
  <table class='faraday_inspector-requests'>
13
19
  <% Thread.current[:faraday_requests].to_a.each do |event| %>
14
20
  <% req = event[:env] %>
21
+ <% request_id = event.hash %>
22
+ <% is_json = req[:body].present? && req[:response_header].try(:[], 'content-type').to_s.include?('json') || req.url.host.include?('json') %>
15
23
  <tr class='event'>
16
24
  <td class='method'><%= req.method.upcase %></td>
17
25
  <td class='host'><%= req.url.host %></td>
18
26
  <td class='path'><%= req.url.path %></td>
19
- <td class='duration'><%= event[:duration].round(2) %>s</td>
27
+ <td class='duration'><%= event[:duration].round(3) %>s</td>
20
28
  <td class='status'><%= req.status %></td>
21
29
  </tr>
22
30
  <tr>
23
31
  <td colspan='5'>
24
- <div class='request'>
32
+ <div class='request <%= 'json' if is_json %>' id='request-<%= request_id %>'>
25
33
  <% if req[:body].present? %>
26
- <% body = req[:body] %>
27
- <% body = JSON.pretty_generate(JSON.parse(req[:body])) if req[:response_headers]['content-type'].to_s.include?('json') %>
28
- <%= CGI.escapeHTML(body).gsub("\n", "<br />") %>
34
+ <% if is_json %>
35
+ <pre></pre>
36
+ <script type="text/javascript">
37
+ //<![CDATA[
38
+ var responseObject = <%= req[:body] %>;
39
+ $('#request-<%= request_id %> pre').html(library.json.prettyPrint(responseObject));
40
+ //]]>
41
+ </script>
42
+ <% else %>
43
+ <%= CGI.escapeHTML(req[:body]).gsub("\n", "<br />") %>
44
+ <% end %>
29
45
  <% else %>
30
46
  (No body for this request.)
31
47
  <% end %>
@@ -35,26 +51,3 @@
35
51
  <% end %>
36
52
  </table>
37
53
  </div>
38
- <script type="text/javascript">
39
- //<![CDATA[
40
- var closeAllRequests = function() {
41
- $('.faraday_inspector table .request').removeClass('open');
42
- }
43
-
44
- var showFaradayRequest = function(e) {
45
- var $el = $(this).next().find('.request');
46
- var isOpen = $el.hasClass('open');
47
- closeAllRequests();
48
- if(!isOpen) { $el.addClass('open'); }
49
- }
50
-
51
- var toggleFardayInspector = function(e) {
52
- closeAllRequests();
53
- $('.faraday_inspector').toggleClass('minimized');
54
- $('.faraday_inspector').toggleClass('open');
55
- };
56
-
57
- $('.faraday_inspector tr.event').click(showFaradayRequest);
58
- $('.faraday_inspector .prompt, .faraday_inspector .close').click(toggleFardayInspector);
59
- //]]>
60
- </script>
@@ -0,0 +1,83 @@
1
+ // for now, this project depends on jQuery but the frontend is not complex
2
+ // and so it could probably be written without jQuery...
3
+
4
+ if (window.jQuery) {
5
+ window.jQuery(function(){
6
+ var setItem = function(name, value) {
7
+ if(typeof(Storage) !== "undefined") {
8
+ localStorage.setItem(name, value);
9
+ }
10
+ };
11
+
12
+ var getItem = function(name, default_value) {
13
+ if(typeof(Storage) !== "undefined") {
14
+ return localStorage[name];
15
+ } else {
16
+ return default_value;
17
+ }
18
+ };
19
+
20
+ var closeFaradayInspector = function(e) {
21
+ setItem("rack_faraday_inspector_open", 'false');
22
+ toggleFardayInspector();
23
+ };
24
+
25
+ var openFaradayInspector = function(e) {
26
+ setItem("rack_faraday_inspector_open", 'true');
27
+ toggleFardayInspector();
28
+ };
29
+
30
+ var closeAllRequests = function() {
31
+ $('.faraday_inspector table .request').removeClass('open');
32
+ };
33
+
34
+ var showFaradayRequest = function(e) {
35
+ var $el = $(this).next().find('.request');
36
+ var isOpen = $el.hasClass('open');
37
+ closeAllRequests();
38
+ if (!isOpen) {
39
+ $el.addClass('open');
40
+ }
41
+ };
42
+
43
+ var toggleFardayInspector = function(e) {
44
+ closeAllRequests();
45
+ $('.faraday_inspector').toggleClass('minimized');
46
+ $('.faraday_inspector').toggleClass('open');
47
+ };
48
+
49
+ if(getItem('rack_faraday_inspector_open', 'false') == 'true') {
50
+ $('.faraday_inspector').removeClass('minimized');
51
+ $('.faraday_inspector').addClass('open');
52
+ }
53
+
54
+ $('.faraday_inspector tr.event').click(showFaradayRequest);
55
+ $('.faraday_inspector .close').click(closeFaradayInspector);
56
+ $('.faraday_inspector .prompt').click(openFaradayInspector);
57
+ });
58
+ }
59
+
60
+ if (!library)
61
+ var library = {};
62
+
63
+ library.json = {
64
+ replacer: function(match, pIndent, pKey, pVal, pEnd) {
65
+ var key = "<span class='json-item json-key'>";
66
+ var val = "<span class='json-item json-value'>";
67
+ var str = "<span class='json-item json-string'>";
68
+ var r = pIndent || '';
69
+ if (pKey)
70
+ r = r + key + pKey.replace(/[": ]/g, '') + '</span>: ';
71
+ if (pVal)
72
+ r = r + (pVal[0] == '"' ? str : val) + pVal + '</span>';
73
+ var rval = r + (pEnd || '');
74
+ return "<span class='json-line'>" + rval + "</span>";
75
+ },
76
+ prettyPrint: function(obj) {
77
+ var jsonLine = /^( *)("[\w]+": )?("[^"]*"|[\w.+-]*)?([,[{])?$/mg;
78
+ return JSON.stringify(obj, null, 3)
79
+ .replace(/&/g, '&amp;').replace(/\\"/g, '&quot;')
80
+ .replace(/</g, '&lt;').replace(/>/g, '&gt;')
81
+ .replace(jsonLine, library.json.replacer);
82
+ }
83
+ };
@@ -5,20 +5,26 @@
5
5
  background-color: #f2f2f2;
6
6
  font-size: 12px;
7
7
  font-family: 'Helvetica Neue', sans-serif;
8
-
9
8
  &.minimized {
10
9
  border: 1px solid #eee;
11
10
  border-top-right-radius: 8px;
12
11
  padding: 8px;
13
- table { display: none; }
14
- .request { display: none; }
15
- .close { display: none; }
12
+ table {
13
+ display: none;
14
+ }
15
+ .request {
16
+ display: none;
17
+ }
18
+ .close {
19
+ display: none;
20
+ }
16
21
  }
17
-
18
22
  &.open {
19
23
  width: 100%;
20
24
  border-top: 1px solid #eee;
21
- .prompt { display: none; }
25
+ .prompt {
26
+ display: none;
27
+ }
22
28
  .close {
23
29
  display: inline-block;
24
30
  position: absolute;
@@ -28,15 +34,30 @@
28
34
  font-size: 14px;
29
35
  }
30
36
  }
31
-
32
37
  .event {
33
- .method { font-weight: bold; }
34
- .host, .duration, .status { color: #aaa; }
35
- .host, .duration, .status, .method { width: 60px; }
36
- .host, .duration, .status { text-align: right; }
37
- .method { text-align: center; }
38
+ .method {
39
+ font-weight: bold;
40
+ }
41
+ .host,
42
+ .duration,
43
+ .status {
44
+ color: #aaa;
45
+ }
46
+ .host,
47
+ .duration,
48
+ .status,
49
+ .method {
50
+ width: 60px;
51
+ }
52
+ .host,
53
+ .duration,
54
+ .status {
55
+ text-align: right;
56
+ }
57
+ .method {
58
+ text-align: center;
59
+ }
38
60
  }
39
-
40
61
  .request {
41
62
  max-height: 400px;
42
63
  text-overflow: scroll;
@@ -46,17 +67,32 @@
46
67
  background-color: #fff;
47
68
  // border: 1px solid #aaa;
48
69
  padding: 8px;
70
+ &.json {
71
+ background-color: ghostwhite;
72
+ border: 1px solid silver;
73
+ padding: 10px 20px;
74
+ margin: 20px;
75
+ .json-key {
76
+ color: brown;
77
+ }
78
+ .json-value {
79
+ color: navy;
80
+ }
81
+ .json-string {
82
+ color: olive;
83
+ }
84
+ }
49
85
  }
50
-
51
- .prompt, .close {
86
+ .prompt,
87
+ .close {
52
88
  cursor: pointer;
53
89
  cursor: hand;
54
90
  font-weight: bold;
55
91
  }
56
-
57
92
  table {
58
93
  width: 100%;
59
94
  font-family: 'Source Code Pro Light', 'Menlo', monospace;
95
+ border-spacing: 0;
60
96
  .request {
61
97
  display: none;
62
98
  }
@@ -1,4 +1,18 @@
1
1
  require 'faraday/inspector'
2
2
  require 'rack/faraday_inspector/version'
3
3
  require 'rack/faraday_inspector/middleware'
4
- require 'rack/faraday_inspector/railtie'
4
+ require 'active_support/configurable'
5
+
6
+ if defined?(::Rails) && ::Rails::VERSION::MAJOR.to_i >= 3
7
+ require 'rack/faraday_inspector/railtie'
8
+ end
9
+
10
+ module Rack
11
+ module FaradayInspector
12
+ include ActiveSupport::Configurable
13
+
14
+ config.development_mode = false
15
+ config.enabled = false
16
+ config_accessor :enabled
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module Rack
2
+ class FaradayInspector
3
+ ASSET_VERSION = '917c2e48461c5aa5f5c910233dae2e9b'.freeze
4
+ end
5
+ end
@@ -5,33 +5,46 @@ module Rack
5
5
  @app = app
6
6
  end
7
7
 
8
- def template_path(*paths)
8
+ def config
9
+ Rack::FaradayInspector.config
10
+ end
11
+
12
+ def asset_path(*paths)
9
13
  ::File.expand_path(::File.join(::File.dirname(__FILE__), '..', '..', '..', 'assets', *paths))
10
14
  end
11
15
 
12
- def css_template_path
13
- template_path('sass', 'styles.scss')
16
+ def compile_css
17
+ path_to_sass = asset_path('sass', 'style.scss')
18
+ @css = Sass::Engine.new(::File.open(path_to_sass).read,
19
+ cache: true,
20
+ syntax: :scss,
21
+ style: :compressed,
22
+ filename: path_to_sass).render
23
+ end
24
+
25
+ def should_compile_css_at_runtime?
26
+ config.development_mode && defined?(Sass)
14
27
  end
15
28
 
16
- def css_template
17
- ::File.open(css_template_path).read
29
+ def read_compiled_css
30
+ ::File.open(asset_path('css', 'style.css')).read
18
31
  end
19
32
 
20
- def render_css
21
- @css = Sass::Engine.new(css_template,{
22
- cache: true,
23
- syntax: :scss,
24
- style: :compressed,
25
- filename: css_template_path,
26
- }).render
33
+ def set_javascript
34
+ @javascript = ::File.open(asset_path('javascripts', 'inspector.js')).read
35
+ end
36
+
37
+ def set_css
38
+ @css = should_compile_css_at_runtime? ? compile_css : read_compiled_css
27
39
  end
28
40
 
29
41
  def template
30
- ::File.open(template_path('html', 'inspector.html.erb')).read
42
+ ::File.open(asset_path('html', 'inspector.html.erb')).read
31
43
  end
32
44
 
33
45
  def content
34
- render_css
46
+ set_css
47
+ set_javascript
35
48
  ERB.new(template).result(binding)
36
49
  end
37
50
 
@@ -39,26 +52,31 @@ module Rack
39
52
  Thread.current[:faraday_requests] = nil
40
53
  end
41
54
 
55
+ def inject_inspector_into(response)
56
+ new_response = []
57
+ response.each do |body|
58
+ partition = body.rpartition('</body>')
59
+ partition[0] += content.to_s
60
+ new_response << partition.join
61
+ end
62
+ new_response
63
+ end
64
+
65
+ def should_inject_inspector?(headers)
66
+ config.enabled && headers['Content-Type'].to_s.include?('text/html')
67
+ end
68
+
42
69
  def call(env)
43
70
  status, headers, response = @app.call(env)
44
71
 
45
- if headers['Content-Type'].to_s.include? 'text/html'
46
- new_response = []
47
- response.each do |body|
48
- partition = body.rpartition('</body>')
49
- partition[0] += content.to_s
50
- new_response << partition.join
51
- end
52
-
53
- # Update the content-length
54
- headers['Content-Length'] = new_response.inject(0) do |len, body|
55
- len += body.bytesize
72
+ if should_inject_inspector?(headers)
73
+ response = inject_inspector_into(response)
74
+ headers['Content-Length'] = response.inject(0) do |len, body|
75
+ len + body.bytesize
56
76
  end.to_s
57
-
58
- [status, headers, new_response]
59
- else
60
- [status, headers, response]
61
77
  end
78
+
79
+ [status, headers, response]
62
80
  ensure
63
81
  clear_requests
64
82
  end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module FaradayInspector
3
- VERSION = '0.1.0'
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
@@ -4,22 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'rack/faraday_inspector/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "rack-faraday_inspector"
7
+ spec.name = 'rack-faraday_inspector'
8
8
  spec.version = Rack::FaradayInspector::VERSION
9
- spec.authors = ["Chris Bielinski"]
10
- spec.email = ["chris@shadow.io"]
11
-
12
- spec.summary = %q{View Faraday requests made in your controllers on rendered pages}
13
- spec.description = %q{View Faraday requests made in your controllers on rendered pages}
14
- spec.homepage = "https://github.com/chrisb/rack-faraday_inspector"
15
-
9
+ spec.authors = ['Chris Bielinski']
10
+ spec.email = ['chris@shadow.io']
11
+ spec.summary = 'A web UI for inspecting your Faraday HTTP requests'
12
+ spec.description = 'Provides the ability to inspect your backend Faraday requests via a web UI.'
13
+ spec.homepage = 'https://github.com/chrisb/rack-faraday_inspector'
16
14
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
15
  spec.bindir = "exe"
18
16
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
17
  spec.require_paths = ["lib"]
20
18
 
21
19
  spec.add_dependency 'faraday_middleware'
20
+ spec.add_dependency 'awesome_print', '>= 1.6.1'
21
+ spec.add_dependency 'activesupport', '>= 4.1.0'
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.11"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.3"
26
+ spec.add_development_dependency 'sass'
25
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-faraday_inspector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Bielinski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-13 00:00:00.000000000 Z
11
+ date: 2016-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday_middleware
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: awesome_print
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.6.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 4.1.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 4.1.0
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: bundler
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +80,36 @@ dependencies:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
82
  version: '10.0'
55
- description: View Faraday requests made in your controllers on rendered pages
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sass
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Provides the ability to inspect your backend Faraday requests via a web
112
+ UI.
56
113
  email:
57
114
  - chris@shadow.io
58
115
  executables: []
@@ -63,12 +120,15 @@ files:
63
120
  - Gemfile
64
121
  - README.md
65
122
  - Rakefile
123
+ - assets/css/style.css
66
124
  - assets/html/inspector.html.erb
67
- - assets/sass/styles.scss
125
+ - assets/javascripts/inspector.js
126
+ - assets/sass/style.scss
68
127
  - bin/console
69
128
  - bin/setup
70
129
  - lib/faraday/inspector.rb
71
130
  - lib/rack/faraday_inspector.rb
131
+ - lib/rack/faraday_inspector/asset_version.rb
72
132
  - lib/rack/faraday_inspector/middleware.rb
73
133
  - lib/rack/faraday_inspector/railtie.rb
74
134
  - lib/rack/faraday_inspector/version.rb
@@ -96,6 +156,6 @@ rubyforge_project:
96
156
  rubygems_version: 2.4.5.1
97
157
  signing_key:
98
158
  specification_version: 4
99
- summary: View Faraday requests made in your controllers on rendered pages
159
+ summary: A web UI for inspecting your Faraday HTTP requests
100
160
  test_files: []
101
161
  has_rdoc: