pantheios-ruby 0.11.2 → 0.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pantheios/api.rb +22 -17
- data/lib/pantheios/core.rb +72 -11
- data/lib/pantheios/globals.rb +25 -4
- data/lib/pantheios/version.rb +2 -2
- data/test/performance/test_perf_simple_statements.rb +99 -0
- data/test/performance/test_perf_trace_variants.rb +131 -0
- data/test/scratch/log_using_blocks.rb +68 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11967109aaed8da770e480f5e845e9cac404d665
|
4
|
+
data.tar.gz: af33cdea7f4977ec3bac10a0e7b5db1546de7d2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deccf69e633dc5d8d596312e285e6708adca6c36000e1a273d707b6474583afa51c9acae9cafa68137bc7a3b34ad5afcd8e854de75e5563e05e88ecd96b67013
|
7
|
+
data.tar.gz: c6e66cd2de127d5dcaa270d3af1da1fc999632bcee26a0cd2741f0b94e24e86485a79e69e5dbf00e40b18fd094e5ec1100334ae194de1f5d867331ff41dc6ae9
|
data/lib/pantheios/api.rb
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
# Purpose: The Pantheios.Ruby API (::Pantheios::API)
|
6
6
|
#
|
7
7
|
# Created: 2nd April 2011
|
8
|
-
# Updated:
|
8
|
+
# Updated: 22nd January 2018
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/Pantheios-Ruby
|
11
11
|
#
|
12
12
|
# Author: Matthew Wilson
|
13
13
|
#
|
14
|
-
# Copyright (c) 2011-
|
14
|
+
# Copyright (c) 2011-2018, Matthew Wilson and Synesis Software
|
15
15
|
# All rights reserved.
|
16
16
|
#
|
17
17
|
# Redistribution and use in source and binary forms, with or without
|
@@ -77,54 +77,54 @@ module Pantheios
|
|
77
77
|
module API
|
78
78
|
|
79
79
|
# Logs an arbitrary set of parameters at the given severity level
|
80
|
-
def log severity, *args
|
80
|
+
def log severity, *args, &block
|
81
81
|
|
82
82
|
return nil unless severity_logged? severity
|
83
83
|
|
84
|
-
|
84
|
+
log_or_trace_with_block_ 1, severity, args, &block
|
85
85
|
end
|
86
86
|
|
87
87
|
# Logs an array of parameters at the given severity level
|
88
|
-
def log_v severity, argv
|
88
|
+
def log_v severity, argv, &block
|
89
89
|
|
90
90
|
return nil unless severity_logged? severity
|
91
91
|
|
92
|
-
|
92
|
+
log_or_trace_with_block_ 1, severity, argv, &block
|
93
93
|
end
|
94
94
|
|
95
95
|
# Logs an arbitrary set of parameters at the Trace (:trace) level
|
96
|
-
def trace *args
|
96
|
+
def trace *args, &block
|
97
97
|
|
98
98
|
return nil unless tracing?
|
99
99
|
|
100
|
-
|
100
|
+
trace_with_block_ 1, args, &block
|
101
101
|
end
|
102
102
|
|
103
103
|
# Logs an array of parameters at the Trace (:trace) level
|
104
|
-
def trace_v argv
|
104
|
+
def trace_v argv, &block
|
105
105
|
|
106
106
|
return nil unless tracing?
|
107
107
|
|
108
|
-
|
108
|
+
trace_with_block_ 1, argv, &block
|
109
109
|
end
|
110
110
|
|
111
111
|
if Util::VersionUtil.version_compare(RUBY_VERSION, [ 2, 1 ]) >= 0
|
112
112
|
|
113
|
-
def trace_blv b, lvars
|
113
|
+
def trace_blv b, lvars, &block
|
114
114
|
|
115
115
|
return nil unless tracing?
|
116
116
|
|
117
|
-
::Pantheios::Core.trace_v_impl
|
117
|
+
::Pantheios::Core.trace_v_impl(self, 1, ApplicationLayer::ParamNameList[*lvars], :trace, lvars.map { |lv| b.local_variable_get(lv) }, &block)
|
118
118
|
end
|
119
119
|
end # RUBY_VERSION
|
120
120
|
|
121
121
|
if Util::VersionUtil.version_compare(RUBY_VERSION, [ 2, 2 ]) >= 0
|
122
122
|
|
123
|
-
def trace_b b
|
123
|
+
def trace_b b, &block
|
124
124
|
|
125
125
|
return nil unless tracing?
|
126
126
|
|
127
|
-
::Pantheios::Core.trace_v_impl
|
127
|
+
::Pantheios::Core.trace_v_impl(self, 1, ApplicationLayer::ParamNameList[*b.local_variables], :trace, b.local_variables.map { |lv| b.local_variable_get(lv) }, &block)
|
128
128
|
end
|
129
129
|
end # RUBY_VERSION
|
130
130
|
|
@@ -259,14 +259,19 @@ module API
|
|
259
259
|
private
|
260
260
|
|
261
261
|
# Private implementation method that should not need to be overridden
|
262
|
-
def
|
262
|
+
def log_or_trace_with_block_ call_depth, severity, argv, &block
|
263
263
|
|
264
264
|
if :trace == severity
|
265
265
|
|
266
|
-
return ::Pantheios::Core.trace_v_impl self, 1 + call_depth, nil, severity, argv
|
266
|
+
return ::Pantheios::Core.trace_v_impl self, 1 + call_depth, nil, severity, argv, &block
|
267
267
|
end
|
268
268
|
|
269
|
-
::Pantheios::Core.
|
269
|
+
::Pantheios::Core.log_v_impl self, severity, argv, &block
|
270
|
+
end
|
271
|
+
|
272
|
+
def trace_with_block_ call_depth, argv, &block
|
273
|
+
|
274
|
+
return ::Pantheios::Core.trace_v_impl self, 1 + call_depth, nil, :trace, argv, &block
|
270
275
|
end
|
271
276
|
|
272
277
|
end # module API
|
data/lib/pantheios/core.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# Purpose: The Pantheios.Ruby core (::Pantheios::Core)
|
6
6
|
#
|
7
7
|
# Created: 2nd April 2011
|
8
|
-
# Updated:
|
8
|
+
# Updated: 22nd January 2018
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/Pantheios-Ruby
|
11
11
|
#
|
@@ -88,7 +88,7 @@ module Core
|
|
88
88
|
# :nodoc:
|
89
89
|
class State
|
90
90
|
|
91
|
-
def initialize default_fe
|
91
|
+
def initialize default_fe, **options
|
92
92
|
|
93
93
|
@mx_service = Mutex.new
|
94
94
|
@front_end = nil
|
@@ -148,13 +148,22 @@ module Core
|
|
148
148
|
return r
|
149
149
|
end
|
150
150
|
|
151
|
-
|
151
|
+
if ::Pantheios::Globals.SYNCHRONISED_SEVERITY_LOGGED?
|
152
152
|
|
153
|
-
|
153
|
+
def severity_logged? severity
|
154
|
+
|
155
|
+
@mx_service.synchronize do
|
154
156
|
|
155
|
-
|
157
|
+
return nil unless @front_end
|
156
158
|
|
157
|
-
|
159
|
+
@front_end.severity_logged? severity
|
160
|
+
end
|
161
|
+
end
|
162
|
+
else
|
163
|
+
|
164
|
+
def severity_logged? severity
|
165
|
+
|
166
|
+
return @front_end.severity_logged? severity
|
158
167
|
end
|
159
168
|
end
|
160
169
|
|
@@ -354,20 +363,72 @@ module Core
|
|
354
363
|
end
|
355
364
|
|
356
365
|
|
366
|
+
|
357
367
|
# Internal implementation method, not to be called by application code
|
358
|
-
def self.
|
368
|
+
def self.get_block_value_ &block
|
369
|
+
|
370
|
+
case block.arity
|
371
|
+
when 0
|
359
372
|
|
360
|
-
|
373
|
+
yield
|
374
|
+
when 1
|
361
375
|
|
362
|
-
|
376
|
+
yield severity
|
377
|
+
when 2
|
378
|
+
|
379
|
+
yield severity, argv
|
380
|
+
when 3
|
381
|
+
|
382
|
+
yield severity, argv, self
|
363
383
|
else
|
364
384
|
|
365
|
-
|
385
|
+
warn 'too many parameters in logging block'
|
386
|
+
|
387
|
+
yield severity, argv, self
|
366
388
|
end
|
367
389
|
end
|
368
390
|
|
369
391
|
# Internal implementation method, not to be called by application code
|
370
|
-
def self.
|
392
|
+
def self.log_v_impl prefix_provider, severity, argv, &block
|
393
|
+
|
394
|
+
argv << get_block_value_(&block) if block_given?
|
395
|
+
|
396
|
+
self.log_raw prefix_provider, severity, argv.join
|
397
|
+
end
|
398
|
+
|
399
|
+
# Internal implementation method, not to be called by application code
|
400
|
+
def self.trace_v_impl prefix_provider, call_depth, param_list, severity, argv, &block
|
401
|
+
|
402
|
+
unless param_list
|
403
|
+
|
404
|
+
if ApplicationLayer::ParamNameList === argv[0]
|
405
|
+
|
406
|
+
param_list = argv.shift
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
if block_given?
|
411
|
+
|
412
|
+
br = get_block_value_ &block
|
413
|
+
|
414
|
+
if ApplicationLayer::ParamNameList === br
|
415
|
+
|
416
|
+
param_list = br
|
417
|
+
else
|
418
|
+
if ::Array === br
|
419
|
+
|
420
|
+
if ApplicationLayer::ParamNameList === br[0]
|
421
|
+
|
422
|
+
param_list = br.shift
|
423
|
+
end
|
424
|
+
|
425
|
+
argv += br
|
426
|
+
else
|
427
|
+
|
428
|
+
argv << br
|
429
|
+
end
|
430
|
+
end
|
431
|
+
end
|
371
432
|
|
372
433
|
case param_list
|
373
434
|
when nil
|
data/lib/pantheios/globals.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# Purpose: The Pantheios.Ruby "globals" (::Pantheios::Globals)
|
6
6
|
#
|
7
7
|
# Created: 24th December 2017
|
8
|
-
# Updated:
|
8
|
+
# Updated: 22nd January 2018
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/Pantheios-Ruby
|
11
11
|
#
|
@@ -54,6 +54,18 @@ module Pantheios
|
|
54
54
|
#
|
55
55
|
# NOTE: The "globals" in this namespace are operative before
|
56
56
|
# +::Pantheios::Core+ and +::Pantheios::API+
|
57
|
+
#
|
58
|
+
# === Variables
|
59
|
+
#
|
60
|
+
# * *HAS_CASCADED_INCLUDES* [boolean] Determines whether including
|
61
|
+
# +::Pantheios+ also includes all relevant parts of subordinate
|
62
|
+
# namespaces. See the documentation for the +::Pantheios+ namespace for
|
63
|
+
# further details
|
64
|
+
#
|
65
|
+
# * *SYNCHRONISED_SEVERITY_LOGGED* [boolean] Determines whether the core
|
66
|
+
# protects the call to the underlying log-service's +severity_logged?+
|
67
|
+
# with a mutex (which has a non-trivial cost).
|
68
|
+
#
|
57
69
|
module Globals
|
58
70
|
|
59
71
|
module Internals_
|
@@ -64,17 +76,24 @@ module Globals
|
|
64
76
|
|
65
77
|
module Helpers_
|
66
78
|
|
67
|
-
def self.cattr receiver, name, types, initial_value
|
79
|
+
def self.cattr receiver, name, types, initial_value, **options
|
80
|
+
|
81
|
+
if options[:boolean] && types.nil?
|
82
|
+
|
83
|
+
types = Internals_::TRUTHY_CLASSES
|
84
|
+
end
|
68
85
|
|
69
86
|
types = nil if !types.nil? && types.empty?
|
70
87
|
|
71
88
|
receiver.class_eval do
|
72
89
|
|
73
|
-
field_name
|
90
|
+
field_name = '@' + name
|
91
|
+
get_name = name
|
92
|
+
get_name += '?' if options[:boolean]
|
74
93
|
|
75
94
|
instance_variable_set field_name, initial_value
|
76
95
|
|
77
|
-
define_singleton_method(
|
96
|
+
define_singleton_method(get_name) do
|
78
97
|
|
79
98
|
instance_variable_get field_name
|
80
99
|
end
|
@@ -98,6 +117,8 @@ module Globals
|
|
98
117
|
|
99
118
|
Helpers_.cattr self, 'INITIAL_SERVICE_CLASSES', nil, nil
|
100
119
|
|
120
|
+
Helpers_.cattr self, 'SYNCHRONISED_SEVERITY_LOGGED', nil, true, boolean: true
|
121
|
+
|
101
122
|
def self.included receiver
|
102
123
|
|
103
124
|
abort "Attempt to include #{self} into #{receiver}. This is not allowed"
|
data/lib/pantheios/version.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# Purpose: Version for Pantheios.Ruby library
|
6
6
|
#
|
7
7
|
# Created: 2nd April 2011
|
8
|
-
# Updated:
|
8
|
+
# Updated: 22nd 2018
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/Pantheios-Ruby
|
11
11
|
#
|
@@ -50,7 +50,7 @@
|
|
50
50
|
module Pantheios
|
51
51
|
|
52
52
|
# Current version of the Pantheios.Ruby library
|
53
|
-
VERSION = '0.
|
53
|
+
VERSION = '0.12.1'
|
54
54
|
|
55
55
|
private
|
56
56
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#############################################################################
|
4
|
+
# File: test/performance/test_perf_simple_statements.rb
|
5
|
+
#
|
6
|
+
# Purpose: COMPLETE_ME
|
7
|
+
#
|
8
|
+
# Created: 22nd January 2018
|
9
|
+
# Updated: 22nd January 2018
|
10
|
+
#
|
11
|
+
# Author: Matthew Wilson
|
12
|
+
#
|
13
|
+
# Copyright: <<TBD>>
|
14
|
+
#
|
15
|
+
#############################################################################
|
16
|
+
|
17
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..'] * 2), 'lib')
|
18
|
+
|
19
|
+
require 'pantheios/globals'
|
20
|
+
require 'pantheios/services/null_log_service'
|
21
|
+
|
22
|
+
::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [ ::Pantheios::Services::NullLogService ]
|
23
|
+
|
24
|
+
require 'pantheios'
|
25
|
+
|
26
|
+
require 'benchmark'
|
27
|
+
|
28
|
+
include Pantheios
|
29
|
+
|
30
|
+
N = 5000000
|
31
|
+
|
32
|
+
def severity_logged? severity
|
33
|
+
|
34
|
+
return false
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
Benchmark.benchmark(Benchmark::CAPTION, 24, Benchmark::FORMAT, 'total:', 'avg:') do |r|
|
39
|
+
|
40
|
+
at_0 = r.report("arguments (1-arg)") do
|
41
|
+
|
42
|
+
for i in (0...N) do
|
43
|
+
|
44
|
+
log :notice, 'the cat in the hat.'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
bt_0 = r.report("blocks (1-arg)") do
|
49
|
+
|
50
|
+
for i in (0...N) do
|
51
|
+
|
52
|
+
log(:notice) { 'the cat in the hat!' }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
at_1 = r.report("arguments (simple)") do
|
57
|
+
|
58
|
+
for i in (0...N) do
|
59
|
+
|
60
|
+
log :notice, 'the ', 'cat ', 'in ', 'the ', 'hat.'
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
bt_1 = r.report("blocks (simple)") do
|
65
|
+
|
66
|
+
for i in (0...N) do
|
67
|
+
|
68
|
+
log(:notice) { 'the ' + 'cat ' + 'in ' + 'the ' + 'hat!' }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
at_2 = r.report("arguments (complex)") do
|
73
|
+
|
74
|
+
cat = 'cat'
|
75
|
+
hat = :hat
|
76
|
+
t = Time.now
|
77
|
+
|
78
|
+
for i in (0...N) do
|
79
|
+
|
80
|
+
log :notice, "the #{cat} in the #{hat} (#{t})"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
bt_2 = r.report("blocks (complex)") do
|
85
|
+
|
86
|
+
cat = 'cat'
|
87
|
+
hat = :hat
|
88
|
+
t = Time.now
|
89
|
+
|
90
|
+
for i in (0...N) do
|
91
|
+
|
92
|
+
log(:notice) { "the #{cat} in the #{hat} (#{t})" }
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
[ at_0 + at_1 + at_2 + bt_0 + bt_1 + bt_2, (at_0 + at_1 + at_2 + bt_0 + bt_1 + bt_2) / 2 ]
|
97
|
+
end
|
98
|
+
|
99
|
+
|
@@ -0,0 +1,131 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#############################################################################
|
4
|
+
# File: test/performance/test_perf_trace_variants.rb
|
5
|
+
#
|
6
|
+
# Purpose: COMPLETE_ME
|
7
|
+
#
|
8
|
+
# Created: 22nd January 2018
|
9
|
+
# Updated: 22nd January 2018
|
10
|
+
#
|
11
|
+
# Author: Matthew Wilson
|
12
|
+
#
|
13
|
+
# Copyright: <<TBD>>
|
14
|
+
#
|
15
|
+
#############################################################################
|
16
|
+
|
17
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..'] * 2), 'lib')
|
18
|
+
|
19
|
+
require 'pantheios/globals'
|
20
|
+
require 'pantheios/services/null_log_service'
|
21
|
+
|
22
|
+
::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [ ::Pantheios::Services::NullLogService ]
|
23
|
+
|
24
|
+
require 'pantheios'
|
25
|
+
|
26
|
+
require 'benchmark'
|
27
|
+
|
28
|
+
include Pantheios
|
29
|
+
|
30
|
+
N = 1000000
|
31
|
+
T = Time.now
|
32
|
+
|
33
|
+
def severity_logged? severity
|
34
|
+
|
35
|
+
return ::Pantheios::Core.severity_logged? severity
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def blank_trace p0, p1, p2, p3, t
|
40
|
+
|
41
|
+
trace
|
42
|
+
end
|
43
|
+
|
44
|
+
def anonymous_trace p0, p1, p2, p3, t
|
45
|
+
|
46
|
+
trace p0, p1, p2, p3, t
|
47
|
+
end
|
48
|
+
|
49
|
+
def parameter_trace p0, p1, p2, p3, t
|
50
|
+
|
51
|
+
trace ParamNames[ :p0, :p1, :p2, :p3, :t ], p0, p1, p2, p3, t
|
52
|
+
end
|
53
|
+
|
54
|
+
def parameter_cond p0, p1, p2, p3, t
|
55
|
+
|
56
|
+
trace ParamNames[ :p0, :p1, :p2, :p3, :t ], p0, p1, p2, p3, t if severity_logged? :trace
|
57
|
+
end
|
58
|
+
|
59
|
+
def names_in_block p0, p1, p2, p3, t
|
60
|
+
|
61
|
+
trace(p0, p1, p2, p3, t) { ParamNames[ :p0, :p1, :p2, :p3, :t ] }
|
62
|
+
end
|
63
|
+
|
64
|
+
def all_in_block p0, p1, p2, p3, t
|
65
|
+
|
66
|
+
trace { [ ParamNames[ :p0, :p1, :p2, :p3, :t ], p0, p1, p2, p3, t ] }
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
Benchmark.benchmark(Benchmark::CAPTION, 24, Benchmark::FORMAT, 'total:', 'avg:') do |r|
|
71
|
+
|
72
|
+
t_log = r.report('plain log') do
|
73
|
+
|
74
|
+
for i in (0...N) do
|
75
|
+
|
76
|
+
log :abc, 'd', 'ef', 't=', T
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
t_blank_trace = r.report('blank_trace') do
|
81
|
+
|
82
|
+
for i in (0...N) do
|
83
|
+
|
84
|
+
blank_trace :abc, 'd', 'ef', 't=', T
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
t_anonymous_trace = r.report('anonymous_trace') do
|
89
|
+
|
90
|
+
for i in (0...N) do
|
91
|
+
|
92
|
+
anonymous_trace :abc, 'd', 'ef', 't=', T
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
t_parameter_trace = r.report('parameter_trace') do
|
97
|
+
|
98
|
+
for i in (0...N) do
|
99
|
+
|
100
|
+
parameter_trace :abc, 'd', 'ef', 't=', T
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
t_parameter_cond = r.report('parameter_cond') do
|
105
|
+
|
106
|
+
for i in (0...N) do
|
107
|
+
|
108
|
+
parameter_cond :abc, 'd', 'ef', 't=', T
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
t_names_in_block = r.report('names_in_block') do
|
113
|
+
|
114
|
+
for i in (0...N) do
|
115
|
+
|
116
|
+
names_in_block :abc, 'd', 'ef', 't=', T
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
t_all_in_block = r.report('all_in_block') do
|
121
|
+
|
122
|
+
for i in (0...N) do
|
123
|
+
|
124
|
+
all_in_block :abc, 'd', 'ef', 't=', T
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
# [ at_0 + at_1 + at_2 + bt_0 + bt_1 + bt_2, (at_0 + at_1 + at_2 + bt_0 + bt_1 + bt_2) / 2 ]
|
129
|
+
end
|
130
|
+
|
131
|
+
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#############################################################################
|
4
|
+
# File: test/scratch/log_using_blocks.rb
|
5
|
+
#
|
6
|
+
# Purpose: COMPLETE_ME
|
7
|
+
#
|
8
|
+
# Created: 22nd January 2018
|
9
|
+
# Updated: 22nd January 2018
|
10
|
+
#
|
11
|
+
# Author: Matthew Wilson
|
12
|
+
#
|
13
|
+
# Copyright: <<TBD>>
|
14
|
+
#
|
15
|
+
#############################################################################
|
16
|
+
|
17
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..'] * 2), 'lib')
|
18
|
+
|
19
|
+
require 'pantheios'
|
20
|
+
|
21
|
+
include Pantheios
|
22
|
+
|
23
|
+
log :notice, 'program starting ...'
|
24
|
+
|
25
|
+
log(:notice) { 'program started' }
|
26
|
+
|
27
|
+
def f param0, param1
|
28
|
+
|
29
|
+
trace
|
30
|
+
|
31
|
+
log :trace
|
32
|
+
|
33
|
+
trace param0, param1
|
34
|
+
|
35
|
+
log :trace, param0, param1
|
36
|
+
|
37
|
+
trace ParamNames[ :param0, :param1 ], param0, param1
|
38
|
+
|
39
|
+
log :trace, ParamNames[ :param0, :param1 ], param0, param1
|
40
|
+
|
41
|
+
trace { [ ParamNames[ :param0, :param1 ], param0, param1 ] }
|
42
|
+
end
|
43
|
+
|
44
|
+
def g param0, param1
|
45
|
+
|
46
|
+
trace(param0, param1) { [ ParamNames[ :param0, :param1 ]] }
|
47
|
+
|
48
|
+
f param0, param1
|
49
|
+
end
|
50
|
+
|
51
|
+
def h param0, param1, param2
|
52
|
+
|
53
|
+
trace(param0, param1, param2) { ParamNames[ :param0, :param1, :param2 ] }
|
54
|
+
|
55
|
+
g param0, param1
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
f :abc, 'def'
|
60
|
+
|
61
|
+
puts
|
62
|
+
|
63
|
+
g :ghi, 'k'
|
64
|
+
|
65
|
+
puts
|
66
|
+
|
67
|
+
h 'lmnop', :q, :rst
|
68
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pantheios-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xqsr3
|
@@ -51,6 +51,9 @@ files:
|
|
51
51
|
- lib/pantheios/util/thread_util.rb
|
52
52
|
- lib/pantheios/util/version_util.rb
|
53
53
|
- lib/pantheios/version.rb
|
54
|
+
- test/performance/test_perf_simple_statements.rb
|
55
|
+
- test/performance/test_perf_trace_variants.rb
|
56
|
+
- test/scratch/log_using_blocks.rb
|
54
57
|
- test/unit/application_layer/tc_param_name_list.rb
|
55
58
|
- test/unit/application_layer/tc_stock_severity_levels.rb
|
56
59
|
- test/unit/application_layer/ts_all.rb
|