rory 0.6.0 → 0.6.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.
- checksums.yaml +4 -4
- data/lib/rory/application.rb +15 -2
- data/lib/rory/request_parameter_logger.rb +2 -2
- data/lib/rory/version.rb +1 -1
- data/rory.gemspec +1 -1
- data/spec/fixture_app/config/application.rb +1 -0
- data/spec/lib/rory/application_spec.rb +72 -11
- data/spec/lib/rory/dispatcher_spec.rb +9 -0
- data/spec/lib/rory/request_parameter_logger_spec.rb +6 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df765583fa4f315b7f217e8324523d7dd4b3c2ba
|
4
|
+
data.tar.gz: f977ad97a93566d606319301ea03a06447c2a260
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c2dd88f139db2931ebe7fdb9153c6ca4180d65f36622fdc51e18859ae55f6661636fe5c5b525564b9ac6973f9980a2e6266b8508317579f87bce4218b68bf83
|
7
|
+
data.tar.gz: 152c81f7ab8498553a4d4e1dce0d583c25d29bd882c8c776178e8b73815b3a3f9a08e2ab3e2300b8c95f50d0b2efc034348522125a0089efac00574ebc5c8a4f
|
data/lib/rory/application.rb
CHANGED
@@ -118,15 +118,28 @@ module Rory
|
|
118
118
|
end
|
119
119
|
|
120
120
|
def turn_off_request_logging!
|
121
|
-
|
121
|
+
reset_stack
|
122
122
|
@request_logging = false
|
123
123
|
end
|
124
124
|
|
125
|
+
def parameters_to_filter
|
126
|
+
@parameters_to_filter || [:password]
|
127
|
+
end
|
128
|
+
|
129
|
+
def filter_parameters(*params)
|
130
|
+
reset_stack
|
131
|
+
@parameters_to_filter = params
|
132
|
+
end
|
133
|
+
|
134
|
+
def reset_stack
|
135
|
+
@stack = nil
|
136
|
+
end
|
137
|
+
|
125
138
|
def use_default_middleware
|
126
139
|
if request_logging_on?
|
127
140
|
use_middleware Rack::PostBodyContentTypeParser
|
128
141
|
use_middleware Rack::CommonLogger, logger
|
129
|
-
use_middleware Rory::RequestParameterLogger, logger
|
142
|
+
use_middleware Rory::RequestParameterLogger, logger, :filters => parameters_to_filter
|
130
143
|
end
|
131
144
|
end
|
132
145
|
|
@@ -3,10 +3,10 @@ require_relative 'parameter_filter'
|
|
3
3
|
module Rory
|
4
4
|
class RequestParameterLogger
|
5
5
|
|
6
|
-
def initialize(app, logger=nil,
|
6
|
+
def initialize(app, logger = nil, options = {})
|
7
7
|
@app = app
|
8
8
|
@logger = logger
|
9
|
-
@filters = filters
|
9
|
+
@filters = options.fetch(:filters, [])
|
10
10
|
end
|
11
11
|
|
12
12
|
def call(env)
|
data/lib/rory/version.rb
CHANGED
data/rory.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.name = "rory"
|
9
9
|
s.version = Rory::VERSION
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
|
-
s.authors = ["Ravi Gadad"]
|
11
|
+
s.authors = ["Ravi Gadad", "Michael Irey", "David Begin"]
|
12
12
|
s.email = ["ravi@screamingmuse.com"]
|
13
13
|
s.homepage = "http://github.com/screamingmuse/rory"
|
14
14
|
s.summary = "Another Ruby web framework. Just what the world needs."
|
@@ -61,14 +61,20 @@ describe Rory::Application do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
describe ".dispatcher" do
|
65
|
+
it "returns new dispatcher rack app" do
|
66
|
+
allow(Rory::Dispatcher).to receive(:rack_app).
|
67
|
+
with(subject).and_return(:dispatcher_app)
|
68
|
+
expect(subject.dispatcher).to eq(:dispatcher_app)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
64
72
|
describe ".call" do
|
65
|
-
it "
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
expect(Rory::Dispatcher).to receive(:new).with(rack_request, subject.instance).and_return(dispatcher)
|
71
|
-
expect(subject.call(env)).to eq(:expected)
|
73
|
+
it "calls the stack with the given environment" do
|
74
|
+
stack = double
|
75
|
+
allow(stack).to receive(:call).with(:the_env).and_return(:expected)
|
76
|
+
expect(subject.instance).to receive(:stack).and_return(stack)
|
77
|
+
expect(subject.call(:the_env)).to eq(:expected)
|
72
78
|
end
|
73
79
|
end
|
74
80
|
|
@@ -90,7 +96,7 @@ describe Rory::Application do
|
|
90
96
|
end
|
91
97
|
|
92
98
|
describe ".logger" do
|
93
|
-
it "
|
99
|
+
it "returns a logger" do
|
94
100
|
logger = double
|
95
101
|
allow_any_instance_of(subject).to receive(:log_file)
|
96
102
|
allow(Logger).to receive(:new).and_return(logger)
|
@@ -98,19 +104,68 @@ describe Rory::Application do
|
|
98
104
|
end
|
99
105
|
end
|
100
106
|
|
107
|
+
describe ".turn_off_request_logging!" do
|
108
|
+
it "resets stack and turns off request logging" do
|
109
|
+
subject.instance.instance_variable_set(:@request_logging, :true)
|
110
|
+
expect(subject.request_logging_on?).to eq(true)
|
111
|
+
expect(subject.instance).to receive(:reset_stack)
|
112
|
+
subject.turn_off_request_logging!
|
113
|
+
expect(subject.request_logging_on?).to eq(false)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe ".filter_parameters" do
|
118
|
+
it "resets stack and sets parameters to filter" do
|
119
|
+
expect(subject.instance).to receive(:reset_stack)
|
120
|
+
subject.filter_parameters :dog, :kitty
|
121
|
+
expect(subject.parameters_to_filter).to eq([:dog, :kitty])
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe ".reset_stack" do
|
126
|
+
it "clears memoization of stack" do
|
127
|
+
stack = subject.stack
|
128
|
+
expect(subject.stack).to eq(stack)
|
129
|
+
subject.reset_stack
|
130
|
+
expect(subject.stack).not_to eq(stack)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe ".stack" do
|
135
|
+
it "returns a rack builder instance with configured middleware" do
|
136
|
+
builder = double
|
137
|
+
allow(subject.instance).to receive(:dispatcher).
|
138
|
+
and_return(:the_dispatcher)
|
139
|
+
allow(Rack::Builder).to receive(:new).and_return(builder)
|
140
|
+
subject.use_middleware :horse
|
141
|
+
expect(subject.instance).to receive(:use_default_middleware)
|
142
|
+
expect(builder).to receive(:use).with(:horse)
|
143
|
+
expect(builder).to receive(:run).with(:the_dispatcher)
|
144
|
+
expect(subject.stack).to eq(builder)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
describe ".parameters_to_filter" do
|
149
|
+
it "returns [:password] by default" do
|
150
|
+
expect(subject.parameters_to_filter).to eq([:password])
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
101
154
|
describe ".use_default_middleware" do
|
102
155
|
it "adds middleware when request logging is on" do
|
103
156
|
allow(subject.instance).to receive(:request_logging_on?).and_return(true)
|
157
|
+
allow(subject.instance).to receive(:parameters_to_filter).and_return([:horses])
|
104
158
|
allow(subject.instance).to receive(:logger).and_return(:the_logger)
|
159
|
+
expect(subject.instance).to receive(:use_middleware).with(Rack::PostBodyContentTypeParser)
|
160
|
+
expect(subject.instance).to receive(:use_middleware).with(Rack::CommonLogger, :the_logger)
|
161
|
+
expect(subject.instance).to receive(:use_middleware).with(Rory::RequestParameterLogger, :the_logger, :filters => [:horses])
|
105
162
|
subject.use_default_middleware
|
106
|
-
expect(subject.middleware.count).to_not eq(0)
|
107
163
|
end
|
108
164
|
|
109
165
|
it "does not add middleware when request logging is off" do
|
110
166
|
allow(subject.instance).to receive(:request_logging_on?).and_return(false)
|
111
|
-
|
167
|
+
expect(subject.instance).to receive(:use_middleware).never
|
112
168
|
subject.use_default_middleware
|
113
|
-
expect(subject.middleware.count).to eq(0)
|
114
169
|
end
|
115
170
|
end
|
116
171
|
|
@@ -201,5 +256,11 @@ describe Rory::Application do
|
|
201
256
|
]
|
202
257
|
end
|
203
258
|
end
|
259
|
+
|
260
|
+
describe ".parameters_to_filter" do
|
261
|
+
it "returns overridden parameters" do
|
262
|
+
expect(subject.parameters_to_filter).to eq([:orcas, :noodles])
|
263
|
+
end
|
264
|
+
end
|
204
265
|
end
|
205
266
|
end
|
@@ -55,6 +55,15 @@ describe Rory::Dispatcher do
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
+
describe ".rack_app" do
|
59
|
+
it "returns a callable object that dispatches to a new dispatcher" do
|
60
|
+
allow(Rack::Request).to receive(:new).with(:env).and_return(:a_request)
|
61
|
+
allow(described_class).to receive(:new).with(:a_request, :the_app).and_return(subject)
|
62
|
+
allow(subject).to receive(:dispatch).and_return(:the_dispatch)
|
63
|
+
expect(described_class.rack_app(:the_app).call(:env)).to eq(:the_dispatch)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
58
67
|
describe "#dispatch" do
|
59
68
|
let(:request) { { :whatever => :yay } }
|
60
69
|
before(:each) do
|
@@ -2,7 +2,7 @@ describe Rory::RequestParameterLogger do
|
|
2
2
|
|
3
3
|
let(:logger) { double(:write) }
|
4
4
|
let(:app) { double(:call) }
|
5
|
-
subject { described_class.new(app, logger, :filters) }
|
5
|
+
subject { described_class.new(app, logger, :filters => :filters) }
|
6
6
|
|
7
7
|
describe '#initialize' do
|
8
8
|
it 'returns a new RequestParameterLogger' do
|
@@ -14,6 +14,11 @@ describe Rory::RequestParameterLogger do
|
|
14
14
|
expect(subject.instance_variable_get(:@logger)).to eq(logger)
|
15
15
|
expect(subject.instance_variable_get(:@filters)).to eq(:filters)
|
16
16
|
end
|
17
|
+
|
18
|
+
it 'defaults filters to empty array' do
|
19
|
+
no_filter_logger = described_class.new(app, logger)
|
20
|
+
expect(no_filter_logger.instance_variable_get(:@filters)).to eq([])
|
21
|
+
end
|
17
22
|
end
|
18
23
|
|
19
24
|
describe '#log_request' do
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ravi Gadad
|
8
|
+
- Michael Irey
|
9
|
+
- David Begin
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
13
|
+
date: 2015-06-18 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: rack
|