rack-perftools_profiler 0.3.0 → 0.4.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/test/test_helper.rb CHANGED
@@ -8,4 +8,68 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
8
8
  require 'rack/perftools_profiler'
9
9
 
10
10
  class Test::Unit::TestCase
11
+
12
+ end
13
+
14
+ ITERATIONS = case RUBY_VERSION
15
+ # Ruby 1.9.x is so fast that we need to add extra iterations
16
+ # to get profiling data
17
+ when /1\.9\../
18
+ 350_000
19
+ else
20
+ 35_000
21
+ end
22
+
23
+ # From the Rack spec (http://rack.rubyforge.org/doc/files/SPEC.html) :
24
+ # The Body must respond to each and must only yield String values. The Body should not be an instance of String.
25
+ # ... The Body commonly is an Array of Strings, the application instance itself, or a File-like object.
26
+
27
+ class RackResponseBody
28
+ include Test::Unit::Assertions
29
+
30
+ def initialize(body)
31
+ assert !body.instance_of?(String)
32
+ @body = body
33
+ end
34
+
35
+ def to_s
36
+ str = ""
37
+ @body.each do |part|
38
+ str << part
39
+ end
40
+ str
41
+ end
42
+
43
+ end
44
+
45
+ class TestApp
46
+
47
+ def call(env)
48
+ case env['PATH_INFO']
49
+ when /method1/
50
+ ITERATIONS.times do
51
+ self.class.new.method1
52
+ end
53
+ GC.start
54
+ when /method2/
55
+ ITERATIONS.times do
56
+ self.class.new.method2
57
+ end
58
+ GC.start
59
+ end
60
+ [200, {}, ['Done']]
61
+ end
62
+
63
+ def method1
64
+ 100.times do
65
+ 1+2+3+4+5
66
+ end
67
+ end
68
+
69
+ def method2
70
+ 100.times do
71
+ 1+2+3+4+5
72
+ end
73
+ end
74
+
11
75
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-perftools_profiler
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 3
8
+ - 4
8
9
  - 0
9
- version: 0.3.0
10
+ version: 0.4.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Ben Brinckerhoff
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-12-31 00:00:00 -07:00
18
+ date: 2011-01-16 00:00:00 -07:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: perftools.rb
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ~>
26
28
  - !ruby/object:Gem::Version
29
+ hash: 1
27
30
  segments:
28
31
  - 0
29
32
  - 5
@@ -34,9 +37,11 @@ dependencies:
34
37
  name: rack
35
38
  prerelease: false
36
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
37
41
  requirements:
38
42
  - - ~>
39
43
  - !ruby/object:Gem::Version
44
+ hash: 15
40
45
  segments:
41
46
  - 1
42
47
  - 0
@@ -47,9 +52,11 @@ dependencies:
47
52
  name: open4
48
53
  prerelease: false
49
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
50
56
  requirements:
51
57
  - - ~>
52
58
  - !ruby/object:Gem::Version
59
+ hash: 15
53
60
  segments:
54
61
  - 1
55
62
  - 0
@@ -60,9 +67,11 @@ dependencies:
60
67
  name: rack
61
68
  prerelease: false
62
69
  requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
63
71
  requirements:
64
72
  - - ~>
65
73
  - !ruby/object:Gem::Version
74
+ hash: 13
66
75
  segments:
67
76
  - 1
68
77
  - 1
@@ -73,9 +82,11 @@ dependencies:
73
82
  name: shoulda
74
83
  prerelease: false
75
84
  requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
76
86
  requirements:
77
87
  - - ~>
78
88
  - !ruby/object:Gem::Version
89
+ hash: 23
79
90
  segments:
80
91
  - 2
81
92
  - 10
@@ -86,9 +97,11 @@ dependencies:
86
97
  name: mocha
87
98
  prerelease: false
88
99
  requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
89
101
  requirements:
90
102
  - - ~>
91
103
  - !ruby/object:Gem::Version
104
+ hash: 25
92
105
  segments:
93
106
  - 0
94
107
  - 9
@@ -106,7 +119,6 @@ extra_rdoc_files:
106
119
  - README.rdoc
107
120
  files:
108
121
  - .document
109
- - .gitignore
110
122
  - LICENSE
111
123
  - README.rdoc
112
124
  - Rakefile
@@ -121,38 +133,48 @@ files:
121
133
  - lib/rack/perftools_profiler/return_data.rb
122
134
  - lib/rack/perftools_profiler/start_profiling.rb
123
135
  - lib/rack/perftools_profiler/stop_profiling.rb
136
+ - lib/rack/perftools_profiler/utils.rb
137
+ - rack-perftools_profiler.gemspec
138
+ - test/multiple_request_profiling_test.rb
124
139
  - test/rack-perftools-profiler_test.rb
140
+ - test/single_request_profiling_test.rb
125
141
  - test/test_helper.rb
126
142
  has_rdoc: true
127
143
  homepage: http://github.com/bhb/rack-perftools_profiler
128
144
  licenses: []
129
145
 
130
146
  post_install_message:
131
- rdoc_options:
132
- - --charset=UTF-8
147
+ rdoc_options: []
148
+
133
149
  require_paths:
134
150
  - lib
135
151
  required_ruby_version: !ruby/object:Gem::Requirement
152
+ none: false
136
153
  requirements:
137
154
  - - ">="
138
155
  - !ruby/object:Gem::Version
156
+ hash: 3
139
157
  segments:
140
158
  - 0
141
159
  version: "0"
142
160
  required_rubygems_version: !ruby/object:Gem::Requirement
161
+ none: false
143
162
  requirements:
144
163
  - - ">="
145
164
  - !ruby/object:Gem::Version
165
+ hash: 3
146
166
  segments:
147
167
  - 0
148
168
  version: "0"
149
169
  requirements: []
150
170
 
151
171
  rubyforge_project:
152
- rubygems_version: 1.3.6
172
+ rubygems_version: 1.3.7
153
173
  signing_key:
154
174
  specification_version: 3
155
175
  summary: Middleware for profiling Rack-compatible apps using perftools.rb
156
176
  test_files:
177
+ - test/multiple_request_profiling_test.rb
157
178
  - test/rack-perftools-profiler_test.rb
179
+ - test/single_request_profiling_test.rb
158
180
  - test/test_helper.rb
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- *.sw?
2
- .DS_Store
3
- coverage
4
- rdoc
5
- pkg
6
- .rvmrc