rack-envinspector 0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2df832dd7ec5dde477160441f10e3bdd0d8774d4
4
+ data.tar.gz: dd38f57627ca32c3f5d84d984625b449b2ae98da
5
+ SHA512:
6
+ metadata.gz: 5cdc3b14e4ba434e1d02eb9409e154427da6cbf8f247974902d81eb63b73fe28bf7a170be139fde9848cad99b9137f721a2fe0de88f2427b7d3b78bf66f61553
7
+ data.tar.gz: eb77a198cc47a9805100b7dcf86571a0d122f3c240316aa4888007ede8fbe3403176f14428db7308e73364e7afcde1afd7ed1572ae56575a0de1077b516219a2
@@ -0,0 +1,2 @@
1
+ Gemfile.lock
2
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,21 @@
1
+ # Rack::EnvInspector, a Rack middleware for inspecting the Rack environment
2
+
3
+ This is a simple middleware that allows you to inspect the Rack environment by
4
+ appending a query parameter to any of your app's URLs.
5
+
6
+ ## Configuration
7
+
8
+ To use Rack::EnvInspector, add the following to your Gemfile:
9
+
10
+ gem 'rack-envinspector', :github => 'dancavallaro/rack-envinspector'
11
+
12
+ Then in `config.ru`:
13
+
14
+ use Rack::EnvInspector
15
+
16
+ Or in a Rails app, add the following to `application.rb`, or to an appropriate
17
+ environment-specific config file:
18
+
19
+ config.middleware.use "Rack::EnvInspector"
20
+
21
+ Then, see a JSON dump of the Rack environment by appending `?inspect` to any URL.
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
7
+ task :test => :spec
@@ -0,0 +1,21 @@
1
+ require 'json'
2
+
3
+ module Rack
4
+ class EnvInspector
5
+
6
+ def initialize(app, options={})
7
+ @app = app
8
+ end
9
+
10
+ def call(env)
11
+ request = Rack::Request.new(env)
12
+
13
+ if request.params.key? 'inspect'
14
+ [200, {'Content-Type' => 'application/json'}, [JSON.generate(env)]]
15
+ else
16
+ @app.call(env)
17
+ end
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'rack-envinspector'
3
+ s.version = '0.1'
4
+ s.summary = 'Middleware for dumping Rack environment.'
5
+ s.description = 'Rack::EnvInspector is a Rack middleware for debugging that allows you to dump the Rack environment by appending a query parameter to the URL.'
6
+ s.author = 'Dan Cavallaro'
7
+ s.email = 'dan.t.cavallaro@gmail.com'
8
+ s.homepage = 'https://github.com/dancavallaro/rack-envinspector'
9
+
10
+ s.files = `git ls-files`.split("\n")
11
+ s.test_files = `git ls-files -- spec/*`.split("\n")
12
+
13
+ s.add_development_dependency 'rspec'
14
+ s.add_development_dependency 'rack'
15
+ s.add_development_dependency 'rake'
16
+ end
@@ -0,0 +1,25 @@
1
+ require 'json'
2
+
3
+ describe Rack::EnvInspector do
4
+
5
+ RESPONSE_BODY = 'Hello, world'
6
+
7
+ let(:app) { lambda { |env| [200, {}, [RESPONSE_BODY]] } }
8
+ let(:stack) { Rack::EnvInspector.new app }
9
+ let(:request) { Rack::MockRequest.new stack }
10
+
11
+ it "should return normal response without query param" do
12
+ response = request.get '/'
13
+
14
+ expect(response.body).to eq(RESPONSE_BODY)
15
+ end
16
+
17
+ it "should return environment dump with query param" do
18
+ response = request.get '/?inspect'
19
+ env = JSON.parse(response.body)
20
+
21
+ expect(env["PATH_INFO"]).to eq("/")
22
+ expect(env["QUERY_STRING"]).to eq("inspect")
23
+ end
24
+
25
+ end
@@ -0,0 +1,5 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'rack/mock'
5
+ require 'rack/env_inspector'
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack-envinspector
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Dan Cavallaro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Rack::EnvInspector is a Rack middleware for debugging that allows you
56
+ to dump the Rack environment by appending a query parameter to the URL.
57
+ email: dan.t.cavallaro@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - Gemfile
65
+ - README.md
66
+ - Rakefile
67
+ - lib/rack/env_inspector.rb
68
+ - rack-envinspector.gemspec
69
+ - spec/envinspector_spec.rb
70
+ - spec/spec_helper.rb
71
+ homepage: https://github.com/dancavallaro/rack-envinspector
72
+ licenses: []
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubyforge_project:
90
+ rubygems_version: 2.4.4
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Middleware for dumping Rack environment.
94
+ test_files:
95
+ - spec/envinspector_spec.rb
96
+ - spec/spec_helper.rb