rubyperf 1.4.0 → 1.5.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/VERSION +1 -1
- data/lib/perf/meter_factory.rb +14 -0
- data/lib/perf/production_meter_factory.rb +11 -0
- data/lib/rubyperf.rb +1 -0
- data/rubyperf.gemspec +3 -2
- data/test/perf_test_example.rb +2 -2
- data/test/test_meter_factory.rb +24 -1
- data/test/test_perf_meter.rb +2 -2
- metadata +5 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
data/lib/perf/meter_factory.rb
CHANGED
@@ -79,6 +79,12 @@ module Perf
|
|
79
79
|
@factory_options.merge!(options)
|
80
80
|
end
|
81
81
|
|
82
|
+
# Clear factory options.
|
83
|
+
|
84
|
+
def clear_factory_options!
|
85
|
+
@factory_options.clear
|
86
|
+
end
|
87
|
+
|
82
88
|
# If you use set_new_meters_options, or if you pass options to Perf::MeterFactory.get, you are setting options
|
83
89
|
# only for if the meter is created. For this reason you might need to find out if the meter already exist.
|
84
90
|
|
@@ -116,5 +122,13 @@ module Perf
|
|
116
122
|
@perf_meters.clear
|
117
123
|
end
|
118
124
|
|
125
|
+
# Used by ProductionMeterFactory to return the instance ensuring that no Perf::Meters will be created if they
|
126
|
+
# do not exist.
|
127
|
+
|
128
|
+
def no_op_instance
|
129
|
+
@factory_options[:noop] = true
|
130
|
+
self
|
131
|
+
end
|
132
|
+
|
119
133
|
end
|
120
134
|
end
|
data/lib/rubyperf.rb
CHANGED
data/rubyperf.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rubyperf}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["lpasqualis"]
|
12
|
-
s.date = %q{2012-01-
|
12
|
+
s.date = %q{2012-01-22}
|
13
13
|
s.description = %q{Used to easily measure the performance of blocks of Ruby code, expressions and methods; provides reporting in various formats}
|
14
14
|
s.email = %q{lpasqualis@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
"lib/perf/meter.rb",
|
28
28
|
"lib/perf/meter_factory.rb",
|
29
29
|
"lib/perf/no_op_meter.rb",
|
30
|
+
"lib/perf/production_meter_factory.rb",
|
30
31
|
"lib/perf/report_format.rb",
|
31
32
|
"lib/perf/report_format_html.rb",
|
32
33
|
"lib/perf/report_format_list_of_measures.rb",
|
data/test/perf_test_example.rb
CHANGED
@@ -12,14 +12,14 @@ class PerfTestExample
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_with_measure
|
15
|
-
Perf::MeterFactory.get.measure(:test_with_measure_block) do
|
15
|
+
Perf::MeterFactory.instance.get.measure(:test_with_measure_block) do
|
16
16
|
test(1,2,3)
|
17
17
|
PerfTestExample.static_method
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_with_measure_static
|
22
|
-
Perf::MeterFactory.get.measure(:test_with_measure_block) do
|
22
|
+
Perf::MeterFactory.instance.get.measure(:test_with_measure_block) do
|
23
23
|
static_method
|
24
24
|
end
|
25
25
|
end
|
data/test/test_meter_factory.rb
CHANGED
@@ -11,11 +11,12 @@ class TestMeterFactory < Test::Unit::TestCase
|
|
11
11
|
|
12
12
|
def setup()
|
13
13
|
Perf::MeterFactory.instance.clear_all!
|
14
|
+
Perf::MeterFactory.instance.clear_factory_options!
|
14
15
|
end
|
15
16
|
|
16
17
|
def teardown()
|
17
18
|
Perf::MeterFactory.instance.clear_all!
|
18
|
-
Perf::MeterFactory.instance.
|
19
|
+
Perf::MeterFactory.instance.clear_factory_options!
|
19
20
|
end
|
20
21
|
|
21
22
|
def test_noop
|
@@ -28,6 +29,28 @@ class TestMeterFactory < Test::Unit::TestCase
|
|
28
29
|
assert m1.report_simple.nil?
|
29
30
|
end
|
30
31
|
|
32
|
+
def test_production_meter_factory
|
33
|
+
# If we get the production factory first, the :noop option is set so the first get returns a NoOpMeter
|
34
|
+
m=Perf::ProductionMeterFactory.instance.get
|
35
|
+
assert m.is_a? Perf::NoOpMeter
|
36
|
+
|
37
|
+
# The second get, even with the MeterFactory, still returns a NoOpMeter
|
38
|
+
m=Perf::MeterFactory.instance.get
|
39
|
+
assert m.is_a? Perf::NoOpMeter
|
40
|
+
|
41
|
+
# If we clean everything up...
|
42
|
+
Perf::MeterFactory.instance.clear_all!
|
43
|
+
Perf::MeterFactory.instance.clear_factory_options!
|
44
|
+
|
45
|
+
# And we use MeterFactory as first get, we get a normal meter
|
46
|
+
m=Perf::MeterFactory.instance.get
|
47
|
+
assert m.is_a? Perf::Meter
|
48
|
+
|
49
|
+
# At this point ProductionFactory also gets a normal meter.
|
50
|
+
m=Perf::ProductionMeterFactory.instance.get
|
51
|
+
assert m.is_a? Perf::Meter
|
52
|
+
end
|
53
|
+
|
31
54
|
def test_meter
|
32
55
|
m=Perf::MeterFactory.instance.meter
|
33
56
|
assert m.is_a? Perf::NoOpMeter
|
data/test/test_perf_meter.rb
CHANGED
@@ -153,8 +153,8 @@ class TestPerfMeter < Test::Unit::TestCase
|
|
153
153
|
end
|
154
154
|
|
155
155
|
def test_methods_with_measure
|
156
|
-
Perf::MeterFactory.clear_all!
|
157
|
-
m=Perf::MeterFactory.get
|
156
|
+
Perf::MeterFactory.instance.clear_all!
|
157
|
+
m=Perf::MeterFactory.instance.get
|
158
158
|
m.method_meters(PerfTestExample,[:test,:test_np,:test_with_measure],[:static_method]) do
|
159
159
|
a=PerfTestExample.new
|
160
160
|
a.test(1,2,3)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyperf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 5
|
9
9
|
- 0
|
10
|
-
version: 1.
|
10
|
+
version: 1.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- lpasqualis
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-22 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- lib/perf/meter.rb
|
99
99
|
- lib/perf/meter_factory.rb
|
100
100
|
- lib/perf/no_op_meter.rb
|
101
|
+
- lib/perf/production_meter_factory.rb
|
101
102
|
- lib/perf/report_format.rb
|
102
103
|
- lib/perf/report_format_html.rb
|
103
104
|
- lib/perf/report_format_list_of_measures.rb
|