rack-mini-profiler 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rack-mini-profiler might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ 28-June-2012 - Sam
2
+
3
+ * Started change log
4
+ * Corrected profiler so it properly captures POST requests (was supressing non 200s)
5
+ * Amended Rack.MiniProfiler.config[:user_provider] to use ip addres for identity
6
+ * Fixed bug where unviewed missing ids never got cleared
7
+ * Supress all '/assets/' in the rails tie (makes debugging easier)
data/README.md CHANGED
@@ -70,13 +70,3 @@ In a Rails app, this can be done conveniently in an initializer such as config/i
70
70
  * skip_schema_queries - Whether or not you want to log the queries about the schema of your tables. Default is 'true'
71
71
 
72
72
 
73
- ## TODO: prior to release - pull requests welcome
74
-
75
- - Stack Traces for SQL called (added but mental, needs to be filtered to something usable)
76
- - Decide if we hook up SQL at the driver level (eg mysql gem) or library level (eg active record) - my personal perference is to do driver level hooks (Sam)
77
- - Add automatic instrumentation for Rails (Controller times, Action times, Partial times, Layout times)
78
- - Grab / display the parameters of SQL executed for parameterized SQL
79
- - Beef up the documentation
80
- - Auto-wire-up rails middleware
81
- - Review our API and ensure it is trivial
82
-
@@ -38,7 +38,7 @@ module Rack
38
38
  :backtrace_filter => nil,
39
39
  :skip_schema_queries => true,
40
40
  :storage => MiniProfiler::MemoryStore,
41
- :user_provider => Proc.new{|env| "TODO" }
41
+ :user_provider => Proc.new{|env| Rack::Request.new(env).ip }
42
42
  }
43
43
  end
44
44
 
@@ -76,16 +76,17 @@ module Rack
76
76
 
77
77
  def serve_results(env)
78
78
  request = Rack::Request.new(env)
79
- page_struct = @storage.load(request['id'])
79
+ id = request['id']
80
+ page_struct = @storage.load(id)
80
81
  unless page_struct
81
- @storage.set_viewed(user(env), request['Id'])
82
- return [404, {}, ["No such result #{request['id']}"]]
82
+ @storage.set_viewed(user(env), id)
83
+ return [404, {}, ["Request not found: #{request['id']} - user #{user(env)}"]]
83
84
  end
84
85
  unless page_struct['HasUserViewed']
85
86
  page_struct['ClientTimings'].init_from_form_data(env, page_struct)
86
87
  page_struct['HasUserViewed'] = true
87
88
  @storage.save(page_struct)
88
- @storage.set_viewed(user(env), page_struct['Id'])
89
+ @storage.set_viewed(user(env), id)
89
90
  end
90
91
 
91
92
  result_json = page_struct.to_json
@@ -194,10 +195,12 @@ module Rack
194
195
  page_struct = current['page_struct']
195
196
  page_struct['Root'].record_time((Time.now - start) * 1000)
196
197
 
197
- # inject headers, script
198
+ # no matter what it is, it should be unviewed, otherwise we will miss POST
199
+ @storage.set_unviewed(user(env), page_struct['Id'])
200
+ @storage.save(page_struct)
201
+
202
+ # inject headers, script
198
203
  if status == 200
199
- @storage.save(page_struct)
200
- @storage.set_unviewed(user(env), page_struct['Id'])
201
204
 
202
205
  # inject header
203
206
  if headers.is_a? Hash
@@ -4,7 +4,8 @@ module Rack
4
4
 
5
5
  EXPIRE_SECONDS = 60 * 60 * 24
6
6
 
7
- def initialize(args = {})
7
+ def initialize(args)
8
+ args ||= {}
8
9
  @prefix = args[:prefix] || 'MPRedisStore'
9
10
  end
10
11
 
@@ -4,9 +4,14 @@ module MiniProfilerRails
4
4
  initializer "rack_mini_profiler.configure_rails_initialization" do |app|
5
5
 
6
6
  # By default, only show the MiniProfiler in development mode
7
- Rack::MiniProfiler.configuration[:authorize_cb] = lambda {|env| Rails.env.development? }
7
+ Rack::MiniProfiler.configuration[:authorize_cb] = lambda { |env|
8
+ Rails.env.development? && !(env['PATH_INFO'] =~ /^\/assets\//)
9
+ }
10
+
11
+ # The file store is just so much less flaky
8
12
  tmp = Rails.root.to_s + "/tmp/miniprofiler"
9
13
  Dir::mkdir(tmp) unless File.exists?(tmp)
14
+
10
15
  Rack::MiniProfiler.configuration[:storage_options] = {:path => tmp}
11
16
  Rack::MiniProfiler.configuration[:storage] = Rack::MiniProfiler::FileStore
12
17
 
@@ -14,8 +19,6 @@ module MiniProfilerRails
14
19
  Rack::MiniProfiler.configuration[:backtrace_remove] = Rails.root.to_s + "/"
15
20
  Rack::MiniProfiler.configuration[:backtrace_filter] = /^\/?(app|config|lib|test)/
16
21
 
17
- # The file store is just so much less flaky
18
-
19
22
  # Install the Middleware
20
23
  app.middleware.insert_before 'Rack::Lock', 'Rack::MiniProfiler'
21
24
 
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "rack-mini-profiler"
3
- s.version = "0.1"
4
- s.summary = "Profiles loading speed for html pages."
3
+ s.version = "0.1.1"
4
+ s.summary = "Profiles loading speed for rack applications."
5
5
  s.authors = ["Aleks Totic","Sam Saffron", "Robin Ward"]
6
6
  s.date = "2012-04-02"
7
7
  s.description = "Page loading speed displayed on every page. Optimize while you develop, performance is a feature."
@@ -11,7 +11,8 @@ Gem::Specification.new do |s|
11
11
  'rack-mini-profiler.gemspec',
12
12
  ].concat( Dir.glob('lib/**/*').reject {|f| File.directory?(f) || f =~ /~$/ } )
13
13
  s.extra_rdoc_files = [
14
- "README.md"
14
+ "README.md",
15
+ "CHANGELOG.md"
15
16
  ]
16
17
  s.add_runtime_dependency 'rack', '>= 1.1.3'
17
18
  if RUBY_VERSION < "1.9"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-mini-profiler
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -84,6 +84,7 @@ executables: []
84
84
  extensions: []
85
85
  extra_rdoc_files:
86
86
  - README.md
87
+ - CHANGELOG.md
87
88
  files:
88
89
  - rack-mini-profiler.gemspec
89
90
  - lib/mini_profiler/sql_timer_struct.rb
@@ -113,6 +114,7 @@ files:
113
114
  - lib/mini_profiler_rails/railtie.rb
114
115
  - lib/patches/sql_patches.rb
115
116
  - README.md
117
+ - CHANGELOG.md
116
118
  homepage: http://miniprofiler.com
117
119
  licenses: []
118
120
  post_install_message:
@@ -127,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
129
  version: '0'
128
130
  segments:
129
131
  - 0
130
- hash: -1062659085
132
+ hash: -779964803
131
133
  required_rubygems_version: !ruby/object:Gem::Requirement
132
134
  none: false
133
135
  requirements:
@@ -136,11 +138,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
138
  version: '0'
137
139
  segments:
138
140
  - 0
139
- hash: -1062659085
141
+ hash: -779964803
140
142
  requirements: []
141
143
  rubyforge_project:
142
144
  rubygems_version: 1.8.24
143
145
  signing_key:
144
146
  specification_version: 3
145
- summary: Profiles loading speed for html pages.
147
+ summary: Profiles loading speed for rack applications.
146
148
  test_files: []