benelux 0.5.7 → 0.5.8
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/CHANGES.txt +8 -0
- data/benelux.gemspec +1 -1
- data/lib/benelux.rb +5 -5
- data/lib/benelux/packer.rb +15 -12
- data/lib/benelux/stats.rb +2 -3
- metadata +2 -2
data/CHANGES.txt
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
BENELUX, CHANGES
|
2
2
|
|
3
|
+
|
4
|
+
#### 0.5.8 (2010-03-05) ###############################
|
5
|
+
|
6
|
+
* CHANGE: Added sum and sumsq to Benelux::Stats::Calculator#to_hash
|
7
|
+
* ADDED: Support for timer and counter aliases
|
8
|
+
|
9
|
+
|
3
10
|
#### 0.5.7 (2010-02-20) ###############################
|
4
11
|
|
5
12
|
* CHANGE: Remove hanna dependency
|
@@ -13,6 +20,7 @@ BENELUX, CHANGES
|
|
13
20
|
* ADDED: Benelux.timeline_chunk, Benelux.timeline_updates
|
14
21
|
* ADDED: Calculator#to_json
|
15
22
|
|
23
|
+
|
16
24
|
#### 0.5.5 (2010-01-16) ###############################
|
17
25
|
|
18
26
|
* ADDED: Benelux.bm
|
data/benelux.gemspec
CHANGED
data/lib/benelux.rb
CHANGED
@@ -4,7 +4,7 @@ require 'thwait'
|
|
4
4
|
require 'selectable'
|
5
5
|
|
6
6
|
module Benelux
|
7
|
-
VERSION = "0.5.
|
7
|
+
VERSION = "0.5.8"
|
8
8
|
NOTSUPPORTED = [Class, Object, Kernel]
|
9
9
|
|
10
10
|
class BeneluxError < RuntimeError; end
|
@@ -147,15 +147,15 @@ module Benelux
|
|
147
147
|
!Benelux.packed_method(klass, meth).nil?
|
148
148
|
end
|
149
149
|
|
150
|
-
def Benelux.add_timer klass, meth, &blk
|
150
|
+
def Benelux.add_timer klass, meth, aliaz=nil, &blk
|
151
151
|
raise NotSupported, klass unless Benelux.supported? klass
|
152
152
|
raise AlreadyTimed, klass if Benelux.packed_method? klass, meth
|
153
|
-
Benelux::MethodTimer.new klass, meth, &blk
|
153
|
+
Benelux::MethodTimer.new klass, meth, aliaz, &blk
|
154
154
|
end
|
155
155
|
|
156
|
-
def Benelux.add_counter klass, meth, &blk
|
156
|
+
def Benelux.add_counter klass, meth, aliaz=nil, &blk
|
157
157
|
raise NotSupported, klass unless Benelux.supported? klass
|
158
|
-
Benelux::MethodCounter.new klass, meth, &blk
|
158
|
+
Benelux::MethodCounter.new klass, meth, aliaz, &blk
|
159
159
|
end
|
160
160
|
|
161
161
|
def Benelux.ld(*msg)
|
data/lib/benelux/packer.rb
CHANGED
@@ -4,6 +4,7 @@ module Benelux
|
|
4
4
|
class MethodPacker
|
5
5
|
include Selectable::Object
|
6
6
|
|
7
|
+
attr_accessor :methorig
|
7
8
|
attr_accessor :aliaz
|
8
9
|
attr_reader :klass
|
9
10
|
attr_reader :meth
|
@@ -11,7 +12,8 @@ module Benelux
|
|
11
12
|
|
12
13
|
# * +k+ is a class
|
13
14
|
# * +m+ is the name of an instance method in +k+
|
14
|
-
#
|
15
|
+
# * +aliaz+ is an optional name for
|
16
|
+
#
|
15
17
|
# This method makes the following changes to class +k+.
|
16
18
|
#
|
17
19
|
# * Add a timeline attic to and include +Benelux+
|
@@ -19,12 +21,13 @@ module Benelux
|
|
19
21
|
# __benelux_execute_2151884308_2165479316
|
20
22
|
# * Install a new method with the name +m+.
|
21
23
|
#
|
22
|
-
def initialize(k,m,&blk)
|
24
|
+
def initialize(k,m,aliaz,&blk)
|
23
25
|
Benelux.ld "%20s: %s#%s" % [self.class, k, m]
|
24
26
|
if Benelux.packed_method? k, m
|
25
27
|
raise SelectableError, "Already defined (#{k} #{m})"
|
26
28
|
end
|
27
|
-
@klass, @meth, @blk = k, m, blk
|
29
|
+
@klass, @meth, @aliaz, @blk = k, m, aliaz, blk
|
30
|
+
@aliaz ||= meth
|
28
31
|
@klass.extend Attic unless @klass.kind_of?(Attic)
|
29
32
|
unless @klass.kind_of?(Benelux)
|
30
33
|
@klass.attic :timeline
|
@@ -36,10 +39,10 @@ module Benelux
|
|
36
39
|
## raise NoMethodError, "undefined method `#{meth}' for #{obj}:Class"
|
37
40
|
##end
|
38
41
|
thread_id, call_id = Thread.current.object_id.abs, @klass.object_id.abs
|
39
|
-
@
|
40
|
-
Benelux.ld "%20s: %s" % ['Alias', @
|
42
|
+
@methorig = methorig = :"__benelux_#{@meth}_#{thread_id}_#{call_id}"
|
43
|
+
Benelux.ld "%20s: %s" % ['Alias', @methorig]
|
41
44
|
@klass.module_eval do
|
42
|
-
alias_method
|
45
|
+
alias_method methorig, m # Can't use the instance variables
|
43
46
|
end
|
44
47
|
install_method # see generate_packed_method
|
45
48
|
self.add_tags :class => @klass.to_s.to_sym,
|
@@ -85,7 +88,7 @@ module Benelux
|
|
85
88
|
end
|
86
89
|
|
87
90
|
# Creates a method definition (for an eval). The
|
88
|
-
# method is named +@meth+ and it calls +@
|
91
|
+
# method is named +@meth+ and it calls +@methorig+.
|
89
92
|
#
|
90
93
|
# The new method adds a Mark to the thread timeline
|
91
94
|
# before and after +@alias+ is called. It also adds
|
@@ -95,16 +98,16 @@ module Benelux
|
|
95
98
|
def #{@meth}(*args, &block)
|
96
99
|
call_id = "" << self.object_id.abs.to_s << args.object_id.abs.to_s
|
97
100
|
Benelux.current_track :global unless Benelux.known_thread?
|
98
|
-
mark_a = Benelux.thread_timeline.add_mark :'#{@
|
101
|
+
mark_a = Benelux.thread_timeline.add_mark :'#{@aliaz}_a'
|
99
102
|
mark_a.add_tag :call_id => call_id
|
100
103
|
tags = mark_a.tags
|
101
|
-
ret = #{@
|
104
|
+
ret = #{@methorig}(*args, &block)
|
102
105
|
rescue => ex # We do this so we can use
|
103
106
|
raise ex # ex in the ensure block.
|
104
107
|
ensure
|
105
|
-
mark_z = Benelux.thread_timeline.add_mark :'#{@
|
108
|
+
mark_z = Benelux.thread_timeline.add_mark :'#{@aliaz}_z'
|
106
109
|
mark_z.tags = tags # In case tags were added between these marks
|
107
|
-
range = Benelux.thread_timeline.add_range :'#{@
|
110
|
+
range = Benelux.thread_timeline.add_range :'#{@aliaz}', mark_a, mark_z
|
108
111
|
range.exception = ex if defined?(ex) && !ex.nil?
|
109
112
|
end
|
110
113
|
}
|
@@ -123,7 +126,7 @@ module Benelux
|
|
123
126
|
Benelux.current_track :global unless Benelux.known_thread?
|
124
127
|
# Get a reference to this MethodCounter instance
|
125
128
|
cmd = Benelux.packed_method #{@klass}, :#{@meth}
|
126
|
-
ret = #{@
|
129
|
+
ret = #{@methorig}(*args, &block)
|
127
130
|
count = cmd.determine_count(args, ret)
|
128
131
|
#Benelux.ld "COUNT(:#{@meth}): \#{count}"
|
129
132
|
Benelux.thread_timeline.add_count :'#{@meth}', count
|
data/lib/benelux/stats.rb
CHANGED
@@ -157,7 +157,6 @@ module Benelux
|
|
157
157
|
@sum += other.sum
|
158
158
|
@sumsq += other.sumsq
|
159
159
|
@n += other.n
|
160
|
-
|
161
160
|
self
|
162
161
|
end
|
163
162
|
|
@@ -210,14 +209,14 @@ module Benelux
|
|
210
209
|
return 0.0 if @n <= 1
|
211
210
|
# (sqrt( ((s).sumsq - ( (s).sum * (s).sum / (s).n)) / ((s).n-1) ))
|
212
211
|
begin
|
213
|
-
return Math.sqrt( (@sumsq - (
|
212
|
+
return Math.sqrt( (@sumsq - (@sum * @sum / @n)) / (@n-1) )
|
214
213
|
rescue Errno::EDOM
|
215
214
|
return 0.0
|
216
215
|
end
|
217
216
|
end
|
218
217
|
|
219
218
|
def to_hash
|
220
|
-
{ :min => min, :mean => mean, :max => max, :sd => sd, :n => n }
|
219
|
+
{ :min => min, :mean => mean, :max => max, :sd => sd, :n => n, :sum => @sum, :sumsq => @sumsq }
|
221
220
|
end
|
222
221
|
|
223
222
|
def to_json
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: benelux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delano Mandelbaum
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-03-05 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|