rackamole 0.3.8 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -72,4 +72,6 @@
72
72
  0.3.7 Updates to use the latest mongo ruby gem
73
73
  NOTE: Some api changed in this version of the mongo ruby driver and hosed OrderedHash refs.
74
74
 
75
- 0.3.8 Updates for ruby 1.9 compatibility
75
+ 0.3.8 Updates for ruby 1.9 compatibility
76
+
77
+ 0.3.9 Merged Tatsuya - nested filter parameters
@@ -1,7 +1,7 @@
1
1
  module Rackamole
2
2
 
3
3
  # :stopdoc:
4
- VERSION = '0.3.8'
4
+ VERSION = '0.3.9'
5
5
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
6
6
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
7
7
  # :startdoc:
@@ -384,12 +384,19 @@ module Rack
384
384
  end
385
385
 
386
386
  # filters out params hash and convert values to json
387
- def filter_params( source, excludes )
388
- results = BSON::OrderedHash.new
389
- source.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k|
390
- results[k.to_sym] = source[k].to_json unless excludes.include?( k.to_sym )
391
- end
392
- results
387
+ def filter_params( source, excludes, nest=false )
388
+ results = nest ? {} : BSON::OrderedHash.new
389
+ source.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k|
390
+ unless excludes.include? k.to_sym
391
+ results[k.to_sym] = if source[k].is_a?(Hash)
392
+ filter_params( source[k], excludes, true)
393
+ else
394
+ source[k]
395
+ end
396
+ results[k.to_sym] = results[k.to_sym].to_json unless nest
397
+ end
398
+ end
399
+ results
393
400
  end
394
401
 
395
402
  # Trim stack trace
@@ -433,4 +440,4 @@ module Rack
433
440
  # end
434
441
  # end
435
442
  end
436
- end
443
+ end
@@ -557,7 +557,16 @@ describe Rack::Mole do
557
557
  session.keys.size.should == 2
558
558
  session.has_key?( :bobo ).should == false
559
559
  end
560
-
560
+
561
+ it "should check deeply" do
562
+ @opts[:param_excludes] = [:password]
563
+ app( @opts )
564
+ get "/", { :blee => 'duh', :member => {:password => 'secret', :name => 'Kamui'} }, @test_env
565
+
566
+ params = @test_store.mole_result[:params]
567
+ params.keys.size.should == 2
568
+ params[:member].should == {:name=>'Kamui'}.to_json
569
+ end
561
570
  end
562
571
 
563
572
  # ---------------------------------------------------------------------------
@@ -3,10 +3,8 @@ if HAVE_SPEC_RAKE_SPECTASK and not PROJ.spec.files.to_a.empty?
3
3
  require 'spec/rake/verify_rcov'
4
4
 
5
5
  if defined?(Rcov)
6
- puts "!!!!!! HERE !!!!!!!!!"
7
6
  class Rcov::CodeCoverageAnalyzer
8
7
  def update_script_lines__
9
- puts "AAA"
10
8
  if '1.9'.respond_to?(:force_encoding)
11
9
  SCRIPT_LINES__.each do |k,v|
12
10
  v.each { |src| src.force_encoding('utf-8') }
@@ -45,7 +43,6 @@ namespace :spec do
45
43
  t.rcov = true
46
44
  t.rcov_dir = PROJ.rcov.dir
47
45
  t.rcov_opts = PROJ.rcov.opts + ['--exclude', 'gems\/,spec\/', '--rails']
48
- puts t.inspect
49
46
  end
50
47
 
51
48
  RCov::VerifyTask.new(:verify) do |t|
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 8
9
- version: 0.3.8
8
+ - 9
9
+ version: 0.3.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Fernand Galiana
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-12 00:00:00 -06:00
17
+ date: 2010-07-16 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: logging
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -35,6 +36,7 @@ dependencies:
35
36
  name: hitimes
36
37
  prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
38
40
  requirements:
39
41
  - - ">="
40
42
  - !ruby/object:Gem::Version
@@ -49,6 +51,7 @@ dependencies:
49
51
  name: mongo
50
52
  prerelease: false
51
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
52
55
  requirements:
53
56
  - - ">="
54
57
  - !ruby/object:Gem::Version
@@ -63,6 +66,7 @@ dependencies:
63
66
  name: bson
64
67
  prerelease: false
65
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
66
70
  requirements:
67
71
  - - ">="
68
72
  - !ruby/object:Gem::Version
@@ -77,6 +81,7 @@ dependencies:
77
81
  name: bson_ext
78
82
  prerelease: false
79
83
  requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
80
85
  requirements:
81
86
  - - ">="
82
87
  - !ruby/object:Gem::Version
@@ -91,6 +96,7 @@ dependencies:
91
96
  name: chronic
92
97
  prerelease: false
93
98
  requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
94
100
  requirements:
95
101
  - - ">="
96
102
  - !ruby/object:Gem::Version
@@ -105,6 +111,7 @@ dependencies:
105
111
  name: twitter4r
106
112
  prerelease: false
107
113
  requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
108
115
  requirements:
109
116
  - - ">="
110
117
  - !ruby/object:Gem::Version
@@ -119,6 +126,7 @@ dependencies:
119
126
  name: erubis
120
127
  prerelease: false
121
128
  requirement: &id008 !ruby/object:Gem::Requirement
129
+ none: false
122
130
  requirements:
123
131
  - - ">="
124
132
  - !ruby/object:Gem::Version
@@ -133,6 +141,7 @@ dependencies:
133
141
  name: mail
134
142
  prerelease: false
135
143
  requirement: &id009 !ruby/object:Gem::Requirement
144
+ none: false
136
145
  requirements:
137
146
  - - ">="
138
147
  - !ruby/object:Gem::Version
@@ -147,6 +156,7 @@ dependencies:
147
156
  name: ruby-growl
148
157
  prerelease: false
149
158
  requirement: &id010 !ruby/object:Gem::Requirement
159
+ none: false
150
160
  requirements:
151
161
  - - ">="
152
162
  - !ruby/object:Gem::Version
@@ -156,20 +166,6 @@ dependencies:
156
166
  version: "2.0"
157
167
  type: :runtime
158
168
  version_requirements: *id010
159
- - !ruby/object:Gem::Dependency
160
- name: bones
161
- prerelease: false
162
- requirement: &id011 !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- segments:
167
- - 2
168
- - 5
169
- - 1
170
- version: 2.5.1
171
- type: :development
172
- version_requirements: *id011
173
169
  description: " The MOle is a rack application that monitors user interactions with your web site. We are not \n talking about counting page hits here. The MOle tracks all the information available to capture\n the essence of a user interaction with your application. Using the MOle, you are able to see\n which feature is a hit or a bust. As an added bonus, the MOle also track performance and exceptions \n that might have escaped your test suites or alpha env. To boot your managers will love you for it! \n\n Whether you are releasing a new application or improving on an old one, it is always a good thing \n to know if anyone is using your application and if they are, how they are using it. \n What features are your users most fond of and which features find their way into the abyss? \n You will be able to rapidly assess whether or not your application is a hit and if\n your coolest features are thought as such by your users. You will be able to elegantly record user\n interactions and leverage these findings for the next iteration of your application. "
174
170
  email: fernand.galiana@gmail.com
175
171
  executables: []
@@ -243,6 +239,7 @@ rdoc_options:
243
239
  require_paths:
244
240
  - lib
245
241
  required_ruby_version: !ruby/object:Gem::Requirement
242
+ none: false
246
243
  requirements:
247
244
  - - ">="
248
245
  - !ruby/object:Gem::Version
@@ -250,6 +247,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
247
  - 0
251
248
  version: "0"
252
249
  required_rubygems_version: !ruby/object:Gem::Requirement
250
+ none: false
253
251
  requirements:
254
252
  - - ">="
255
253
  - !ruby/object:Gem::Version
@@ -261,7 +259,7 @@ requirements: []
261
259
  rubyforge_project: !binary |
262
260
  AA==
263
261
 
264
- rubygems_version: 1.3.6
262
+ rubygems_version: 1.3.7
265
263
  signing_key:
266
264
  specification_version: 3
267
265
  summary: The MOle is a rack application that monitors user interactions with your web site