rackamole 0.2.9 → 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.
- data/lib/rackamole.rb +1 -1
- data/lib/rackamole/mole.rb +18 -3
- data/spec/rackamole/mole_spec.rb +14 -0
- metadata +2 -2
data/lib/rackamole.rb
CHANGED
data/lib/rackamole/mole.rb
CHANGED
@@ -82,7 +82,7 @@ module Rack
|
|
82
82
|
def call( env )
|
83
83
|
# Bail if application is not moleable
|
84
84
|
return @app.call( env ) unless moleable?
|
85
|
-
|
85
|
+
|
86
86
|
@stash = env['mole.stash'] if env['mole.stash']
|
87
87
|
@stash = Rackamole::Stash::Collector.new( options[:app_name], options[:environment], options[:expiration] ) unless stash
|
88
88
|
|
@@ -158,7 +158,7 @@ module Rack
|
|
158
158
|
# send info to configured store
|
159
159
|
options[:store].mole( attrs )
|
160
160
|
|
161
|
-
# Check for dups. If we've
|
161
|
+
# Check for dups. If we've reported this req before don't report it again...
|
162
162
|
unless duplicated?( env, attrs )
|
163
163
|
# send email alert ?
|
164
164
|
if alertable?( :email, attrs[:type] )
|
@@ -289,11 +289,15 @@ module Rack
|
|
289
289
|
# Gather up browser and client machine info
|
290
290
|
agent_info = Rackamole::Utils::AgentDetect.parse( user_agent )
|
291
291
|
%w(browser machine).each { |type| mole?(type.to_sym, info, agent_info[type.to_sym] ) }
|
292
|
-
|
292
|
+
|
293
293
|
# Dump request params
|
294
294
|
unless request.params.empty?
|
295
295
|
info[:params] = filter_params( request.params, options[:param_excludes] || [] )
|
296
296
|
end
|
297
|
+
if route
|
298
|
+
info[:params] ||= {}
|
299
|
+
info[:params].merge!( filter_params( params_from_route( route ), options[:param_excludes] || [] ) )
|
300
|
+
end
|
297
301
|
|
298
302
|
# Dump session var
|
299
303
|
if session and !session.empty?
|
@@ -312,6 +316,17 @@ module Rack
|
|
312
316
|
info
|
313
317
|
end
|
314
318
|
|
319
|
+
# Parse out rails request params if in rails env
|
320
|
+
def params_from_route( route )
|
321
|
+
params = {}
|
322
|
+
except = [:controller, :action]
|
323
|
+
route.each_pair do |k,v|
|
324
|
+
next if except.include?( k )
|
325
|
+
params[k] = v
|
326
|
+
end
|
327
|
+
params
|
328
|
+
end
|
329
|
+
|
315
330
|
# check exclusion to see if the information should be moled
|
316
331
|
def mole?( key, stash, value )
|
317
332
|
# puts "Checking #{key} -- #{options[:mole_excludes].inspect}"
|
data/spec/rackamole/mole_spec.rb
CHANGED
@@ -283,6 +283,20 @@ describe Rack::Mole do
|
|
283
283
|
res[:controller].should == 'fred'
|
284
284
|
res[:action].should == 'blee'
|
285
285
|
end
|
286
|
+
|
287
|
+
it "should extract request parameters correctly" do
|
288
|
+
rack = Rack::Mole.new( nil, :app_name => "test app" )
|
289
|
+
res = rack.send( :params_from_route, {:controller => "blee", :action => "fred", :bobo => "hello" } )
|
290
|
+
res.should_not be_nil
|
291
|
+
res.should have(1).item
|
292
|
+
res.should == { :bobo => "hello" }
|
293
|
+
end
|
294
|
+
|
295
|
+
it "should not pick up params if none are specified" do
|
296
|
+
rack = Rack::Mole.new( nil, :app_name => "test app" )
|
297
|
+
res = rack.send( :params_from_route, {:controller => "blee", :action => "fred" } )
|
298
|
+
res.should be_empty
|
299
|
+
end
|
286
300
|
end
|
287
301
|
|
288
302
|
# ---------------------------------------------------------------------------
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rackamole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernand Galiana
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-05 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|