trace-util-adv 0.2.4 → 0.3.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/TODO.txt +18 -2
 - data/VERSION +1 -1
 - data/lib/appenders/appender.rb +1 -1
 - data/lib/appenders/base_appender.rb +18 -20
 - data/lib/appenders/include.rb +2 -2
 - data/lib/appenders/types/html_appender.rb +1 -1
 - data/lib/appenders/types/logger_appender.rb +1 -1
 - data/lib/appenders/types/xml_appender.rb +1 -1
 - data/lib/extensions/hash_extensions.rb +41 -19
 - data/lib/extensions/hash_rule_extensions.rb +4 -0
 - data/lib/extensions/symbol_extensions.rb +7 -5
 - data/lib/filters/composite/composite_class_filter.rb +1 -0
 - data/lib/filters/composite/composite_module_filter.rb +1 -0
 - data/lib/filters/executor/filter_exec.rb +6 -2
 - data/lib/filters/filter.rb +12 -17
 - data/lib/filters/filter_factory.rb +1 -1
 - data/lib/filters/filter_mappings.rb +4 -2
 - data/lib/filters/include.rb +4 -8
 - data/lib/filters/list/list_instance_var_filter.rb +1 -0
 - data/lib/filters/name_filter.rb +13 -0
 - data/lib/filters/simple/argument_filter.rb +2 -1
 - data/lib/filters/simple/class_filter.rb +1 -1
 - data/lib/filters/simple/instance_var_filter.rb +9 -6
 - data/lib/filters/simple/method_filter.rb +1 -0
 - data/lib/filters/simple/module_filter.rb +6 -3
 - data/lib/rules/rule_match.rb +5 -4
 - data/lib/targets/file_target.rb +11 -0
 - data/lib/templates/base_template.rb +11 -12
 - data/lib/templates/html_template.rb +35 -36
 - data/lib/templates/string_template.rb +0 -1
 - data/lib/templates/template_mappings.rb +4 -4
 - data/lib/templates/xml_template.rb +0 -1
 - data/lib/trace-util-adv.rb +36 -20
 - data/lib/trace_calls/trace_ext.rb +4 -17
 - data/test/action_handler/include.rb +4 -0
 - data/test/action_handler/test_action_handler.rb +1 -2
 - data/test/action_handler/test_create_action_handler.rb +6 -9
 - data/test/appenders/include.rb +4 -0
 - data/test/appenders/test_appender_templates.rb +57 -0
 - data/test/appenders/test_create_appender.rb +9 -10
 - data/test/extensions/include.rb +4 -0
 - data/test/extensions/test_filters_creation.rb +4 -28
 - data/test/extensions/test_hash_extensions.rb +44 -47
 - data/test/extensions/test_hash_filter_extensions.rb +46 -29
 - data/test/extensions/test_set_context.rb +9 -11
 - data/test/extensions/test_string_extensions.rb +1 -3
 - data/test/extensions/test_symbol_extensions.rb +2 -4
 - data/test/filters/chain/test_filters_chain.rb +1 -51
 - data/test/filters/composite/test_composite_class_filter.rb +1 -3
 - data/test/filters/composite/test_composite_module_filter.rb +1 -3
 - data/test/filters/composite/test_composite_var_filter.rb +8 -11
 - data/test/filters/executor/test_filter_exec.rb +1 -3
 - data/test/filters/include.rb +8 -0
 - data/test/filters/msg_context/test_custom_filters.rb +13 -14
 - data/test/filters/simple/test_base_filter.rb +8 -6
 - data/test/filters/simple/test_class_filter.rb +1 -3
 - data/test/filters/simple/test_instancevar_filter.rb +5 -9
 - data/test/filters/simple/test_method_filter.rb +4 -9
 - data/test/filters/simple/test_module_filter.rb +13 -10
 - data/test/samples/sample_composite_filters.rb +15 -12
 - data/test/targets/test_create_targets.rb +21 -0
 - data/test/templates/include.rb +4 -0
 - data/test/templates/test_create_templates.rb +23 -0
 - data/test/templates/test_exec_templates.rb +6 -0
 - data/test/trace_calls/include.rb +4 -0
 - data/test/trace_calls/test_configure_.rb +17 -14
 - data/test/trace_calls/tracing/test_html_tracing.rb +2 -3
 - data/test/trace_calls/tracing/test_logger_tracing.rb +5 -4
 - data/test/trace_calls/tracing/test_stream_tracing.rb +2 -3
 - data/test/trace_calls/tracing/test_teamplate_log_tracing.rb +2 -3
 - data/test/trace_calls/tracing/test_xml_tracing.rb +2 -3
 - data/trace-util-adv.gemspec +14 -6
 - metadata +13 -5
 - data/test/appenders/test_appender_tracers.rb +0 -56
 - data/test/tracers/test_create_tracers.rb +0 -46
 - data/test/tracers/test_exec_tracers.rb +0 -11
 
    
        data/lib/filters/include.rb
    CHANGED
    
    | 
         @@ -1,8 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            include_folder_rec(dir + 'list')
         
     | 
| 
       6 
     | 
    
         
            -
            include_folder_rec(dir + 'msg_context')
         
     | 
| 
       7 
     | 
    
         
            -
            include_folder_rec(dir + 'executor')
         
     | 
| 
       8 
     | 
    
         
            -
            include_folder(dir)
         
     | 
| 
      
 1 
     | 
    
         
            +
            require 'filters/filter'
         
     | 
| 
      
 2 
     | 
    
         
            +
            rfolders = Require.rfolder('filters', {:folders => ['simple', 'composite', 'list', 'msg_context', 'executor'], :root_files => :after, :exclude => 'include'})
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
         @@ -5,11 +5,12 @@ module Tracing 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
                def initialize(options)
         
     | 
| 
       7 
7 
     | 
    
         
             
                  super(options)    
         
     | 
| 
       8 
     | 
    
         
            -
                  @rules = options[:arg_rules] || {}
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @rules = options[:arg_rules] || options[:args_filter] || {}
         
     | 
| 
       9 
9 
     | 
    
         
             
                  @var_name = options[:arg_name]
         
     | 
| 
       10 
10 
     | 
    
         
             
                end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                def allow_action(msg, context)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  puts "AMF"
         
     | 
| 
       13 
14 
     | 
    
         
             
                  obj = context[:args]
         
     | 
| 
       14 
15 
     | 
    
         
             
                  if var_name.kind_of?(Symbol) || var_name.kind_of?(String)
         
     | 
| 
       15 
16 
     | 
    
         
             
                    key = var_name.to_sym
         
     | 
| 
         @@ -6,20 +6,23 @@ module Tracing 
     | 
|
| 
       6 
6 
     | 
    
         
             
                def initialize(options)
         
     | 
| 
       7 
7 
     | 
    
         
             
                  super(options)    
         
     | 
| 
       8 
8 
     | 
    
         
             
                  # puts "create inst.var filter: #{options.inspect}"  
         
     | 
| 
       9 
     | 
    
         
            -
                  @rules = options[:var_rules] || {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @rules = options[:var_rules] || options[:vars_filter] || {}
         
     | 
| 
       10 
10 
     | 
    
         
             
                  @var_name = options[:var_name]
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                def allow_action(msg, context)
         
     | 
| 
       14 
     | 
    
         
            -
                   
     | 
| 
      
 14 
     | 
    
         
            +
                  puts "InstanceVarFilter.allow_action"
         
     | 
| 
       15 
15 
     | 
    
         
             
                  obj = context[:self]
         
     | 
| 
       16 
     | 
    
         
            -
                   
     | 
| 
      
 16 
     | 
    
         
            +
                  puts "var_name: #{var_name}"
         
     | 
| 
       17 
17 
     | 
    
         
             
                  if var_name.kind_of?(Symbol) || var_name.kind_of?(String)
         
     | 
| 
       18 
18 
     | 
    
         
             
                    value = obj.instance_variable_get("@#{var_name}")      
         
     | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
      
 19 
     | 
    
         
            +
                    puts "value: #{value}"
         
     | 
| 
       20 
20 
     | 
    
         
             
                    return name_allow_action(value)
         
     | 
| 
       21 
     | 
    
         
            -
                   
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
                  else
         
     | 
| 
      
 22 
     | 
    
         
            +
                    puts "return default :yield"
         
     | 
| 
      
 23 
     | 
    
         
            +
                    :yield
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end            
         
     | 
| 
       23 
25 
     | 
    
         
             
                end    
         
     | 
| 
      
 26 
     | 
    
         
            +
                
         
     | 
| 
       24 
27 
     | 
    
         
             
              end  
         
     | 
| 
       25 
28 
     | 
    
         
             
            end  
         
     | 
| 
         @@ -3,12 +3,15 @@ module Tracing 
     | 
|
| 
       3 
3 
     | 
    
         
             
              class ModuleFilter < BaseFilter
         
     | 
| 
       4 
4 
     | 
    
         
             
                def initialize(options)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  super(options)
         
     | 
| 
       6 
     | 
    
         
            -
                  @rules = options[:module_rules] || {}
         
     | 
| 
      
 6 
     | 
    
         
            +
                  @rules = options[:module_rules] || options[:module_filter] || {}
         
     | 
| 
       7 
7 
     | 
    
         
             
                end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                def allow_action(msg, context)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  puts "ModuleF"
         
     | 
| 
       10 
11 
     | 
    
         
             
                  name = context[:full_modules_name]
         
     | 
| 
       11 
     | 
    
         
            -
                   
     | 
| 
      
 12 
     | 
    
         
            +
                  puts "name: #{name}"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # allow = name_allow_action(name)
         
     | 
| 
       12 
14 
     | 
    
         
             
                end
         
     | 
| 
       13 
15 
     | 
    
         
             
              end
         
     | 
| 
       14 
     | 
    
         
            -
            end  
         
     | 
| 
      
 16 
     | 
    
         
            +
            end  
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
    
        data/lib/rules/rule_match.rb
    CHANGED
    
    | 
         @@ -3,15 +3,15 @@ module Tracing 
     | 
|
| 
       3 
3 
     | 
    
         
             
                class RuleTypeError < RuntimeError; end  
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
                def matches_any?(name) 
         
     | 
| 
       6 
     | 
    
         
            -
                  puts "matches any: #{name.inspect}"
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # puts "matches any: #{name.inspect}"
         
     | 
| 
       7 
7 
     | 
    
         
             
                  self.any? do |rule| 
         
     | 
| 
       8 
     | 
    
         
            -
                    puts "rule:" + rule.inspect
         
     | 
| 
       9 
     | 
    
         
            -
                    puts "against:" + name.inspect
         
     | 
| 
      
 8 
     | 
    
         
            +
                    # puts "rule:" + rule.inspect
         
     | 
| 
      
 9 
     | 
    
         
            +
                    # puts "against:" + name.inspect
         
     | 
| 
       10 
10 
     | 
    
         
             
                    if rule.kind_of? Regexp
         
     | 
| 
       11 
11 
     | 
    
         
             
                      # match return position of match, or nil if no match
         
     | 
| 
       12 
12 
     | 
    
         
             
                      # here converted into boolean result
         
     | 
| 
       13 
13 
     | 
    
         
             
                      match = !(name =~ rule).nil? 
         
     | 
| 
       14 
     | 
    
         
            -
                      puts "match: #{match}"
         
     | 
| 
      
 14 
     | 
    
         
            +
                      # puts "match: #{match}"
         
     | 
| 
       15 
15 
     | 
    
         
             
                      match
         
     | 
| 
       16 
16 
     | 
    
         
             
                    elsif rule.kind_of? String
         
     | 
| 
       17 
17 
     | 
    
         
             
                      match = (name == rule)
         
     | 
| 
         @@ -28,6 +28,7 @@ module Tracing 
     | 
|
| 
       28 
28 
     | 
    
         
             
                end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                def rules_allow_action(name)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  puts "rules_allow_action: #{name}"
         
     | 
| 
       31 
32 
     | 
    
         
             
                  self.each do |rule|
         
     | 
| 
       32 
33 
     | 
    
         
             
                    res = rule.rule_allow_action(name)
         
     | 
| 
       33 
34 
     | 
    
         
             
                    return :exclude if (res == :exclude)
         
     | 
    
        data/lib/targets/file_target.rb
    CHANGED
    
    | 
         @@ -1,10 +1,21 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Tracing
         
     | 
| 
       2 
2 
     | 
    
         
             
              class FileTarget
         
     | 
| 
       3 
3 
     | 
    
         
             
                include Tracing::DefaultPath
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_accessor :to_file    
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
       4 
7 
     | 
    
         
             
                class << self
         
     | 
| 
       5 
8 
     | 
    
         
             
                  include Tracing::DefaultPath
         
     | 
| 
       6 
9 
     | 
    
         
             
                end    
         
     | 
| 
       7 
10 
     | 
    
         | 
| 
      
 11 
     | 
    
         
            +
                def initialize(options)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  def_path = options[:default_path]
         
     | 
| 
      
 13 
     | 
    
         
            +
                  _to_file = options[:to_file]
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  @default_path = def_path if def_path
         
     | 
| 
      
 16 
     | 
    
         
            +
                  @to_file = _to_file if _to_file
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       8 
19 
     | 
    
         
             
                def append(txt, context)
         
     | 
| 
       9 
20 
     | 
    
         
             
                  file = get_file(context)
         
     | 
| 
       10 
21 
     | 
    
         
             
                  write_file(file, txt)
         
     | 
| 
         @@ -2,20 +2,19 @@ require 'templates/trace_output_handler' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Tracing 
         
     | 
| 
       4 
4 
     | 
    
         
             
              class BaseTemplate
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
                include Tracing::OutputHandler
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
                def handle_after_call(context)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  template = end_template(context)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  output(template, context)              
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def handle_before_call(context)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  template = before_template(context)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  if context[:block]       
         
     | 
| 
      
 15 
     | 
    
         
            +
                    template << before_block_template
         
     | 
| 
       10 
16 
     | 
    
         
             
                  end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                  def handle_before_call(context)
         
     | 
| 
       13 
     | 
    
         
            -
                    template = before_template(context)
         
     | 
| 
       14 
     | 
    
         
            -
                    if context[:block]       
         
     | 
| 
       15 
     | 
    
         
            -
                      template << before_block_template
         
     | 
| 
       16 
     | 
    
         
            -
                    end
         
     | 
| 
       17 
     | 
    
         
            -
                    output(template, context)
         
     | 
| 
       18 
     | 
    
         
            -
                  end  
         
     | 
| 
      
 17 
     | 
    
         
            +
                  output(template, context)
         
     | 
| 
       19 
18 
     | 
    
         
             
                end  
         
     | 
| 
       20 
19 
     | 
    
         
             
              end
         
     | 
| 
       21 
20 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,47 +1,46 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Tracing 
         
     | 
| 
       2 
2 
     | 
    
         
             
              class HtmlTemplate < BaseTemplate
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                        </div>
         
     | 
| 
      
 4 
     | 
    
         
            +
                def before_template(context)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  # method_name = context[:method_full_name]
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # args = context[:args].inspect
         
     | 
| 
      
 7 
     | 
    
         
            +
                  template = <<-EOF
         
     | 
| 
      
 8 
     | 
    
         
            +
                  <div class="method-title"><%= context[:method_full_name] %></div>
         
     | 
| 
      
 9 
     | 
    
         
            +
                  <div class="method-body">
         
     | 
| 
      
 10 
     | 
    
         
            +
                    <div class="begin">
         
     | 
| 
      
 11 
     | 
    
         
            +
                      <div class="method-name"><%= context[:method_full_name] %> :: BEGIN</div>
         
     | 
| 
      
 12 
     | 
    
         
            +
                      <div class="args">
         
     | 
| 
      
 13 
     | 
    
         
            +
                        <div class="method-args"><%= context[:args] %> </div>
         
     | 
| 
      
 14 
     | 
    
         
            +
                        #block#
         
     | 
| 
       16 
15 
     | 
    
         
             
                      </div>
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
      
 16 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 17 
     | 
    
         
            +
                EOF
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                def before_block_template 
         
     | 
| 
      
 21 
     | 
    
         
            +
                  template = <<-EOF
         
     | 
| 
      
 22 
     | 
    
         
            +
                <div class="method block-arg">(and a block)</div>
         
     | 
| 
      
 23 
     | 
    
         
            +
                EOF
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                      </div>
         
     | 
| 
      
 26 
     | 
    
         
            +
                def end_template(context) 
         
     | 
| 
      
 27 
     | 
    
         
            +
                  # method_name = context[:method_full_name]
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # result = context[:result].inspect
         
     | 
| 
      
 29 
     | 
    
         
            +
                  template = <<-EOF
         
     | 
| 
      
 30 
     | 
    
         
            +
                    <div class="end">
         
     | 
| 
      
 31 
     | 
    
         
            +
                      <div class="method-name"><%= context[:method_full_name] %> :: END</div>
         
     | 
| 
      
 32 
     | 
    
         
            +
                      <div class="method-result"><%= context[:result] %></div>
         
     | 
| 
       34 
33 
     | 
    
         
             
                    </div>
         
     | 
| 
       35 
     | 
    
         
            -
                   
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 34 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 35 
     | 
    
         
            +
                EOF
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                # override
         
     | 
| 
      
 39 
     | 
    
         
            +
                def handle_before_call(context)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  template = before_template(context)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  block_replace = context[:block] ? before_block_template : ""
         
     | 
| 
      
 42 
     | 
    
         
            +
                  template.gsub!(/#block#/, block_replace)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  output(template, context)
         
     | 
| 
       45 
44 
     | 
    
         
             
                end
         
     | 
| 
       46 
45 
     | 
    
         
             
              end
         
     | 
| 
       47 
46 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module TemplateMappings  
         
     | 
| 
       2 
2 
     | 
    
         
             
              def self.defaults
         
     | 
| 
       3 
3 
     | 
    
         
             
                {
         
     | 
| 
       4 
     | 
    
         
            -
                  :string => Tracing:: 
     | 
| 
       5 
     | 
    
         
            -
                  :xml => Tracing:: 
     | 
| 
       6 
     | 
    
         
            -
                  :html => Tracing:: 
     | 
| 
       7 
     | 
    
         
            -
                  :default => Tracing:: 
     | 
| 
      
 4 
     | 
    
         
            +
                  :string => Tracing::StringTemplate, 
         
     | 
| 
      
 5 
     | 
    
         
            +
                  :xml => Tracing::XmlTemplate,
         
     | 
| 
      
 6 
     | 
    
         
            +
                  :html => Tracing::HtmlTemplate,          
         
     | 
| 
      
 7 
     | 
    
         
            +
                  :default => Tracing::StringTemplate
         
     | 
| 
       8 
8 
     | 
    
         
             
                }
         
     | 
| 
       9 
9 
     | 
    
         
             
              end
         
     | 
| 
       10 
10 
     | 
    
         
             
            end
         
     | 
    
        data/lib/trace-util-adv.rb
    CHANGED
    
    | 
         @@ -1,24 +1,40 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'rubygems'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'duration'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
                require f 
         
     | 
| 
       8 
     | 
    
         
            -
              }
         
     | 
| 
       9 
     | 
    
         
            -
            end
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            def include_folder(name)
         
     | 
| 
       12 
     | 
    
         
            -
              Dir.glob(File.join(File.dirname(__FILE__), "#{name}/*.rb")).each {|f| 
         
     | 
| 
       13 
     | 
    
         
            -
                puts f
         
     | 
| 
       14 
     | 
    
         
            -
                require f 
         
     | 
| 
       15 
     | 
    
         
            -
              }
         
     | 
| 
       16 
     | 
    
         
            -
            end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            include_folder_rec('rules')
         
     | 
| 
       19 
     | 
    
         
            -
            include_folder_rec('extensions')
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'require-magic'
         
     | 
| 
      
 4 
     | 
    
         
            +
            Require.base_path = File.dirname(__FILE__)
         
     | 
| 
      
 5 
     | 
    
         
            +
            Require.rfolder 'rules'
         
     | 
| 
      
 6 
     | 
    
         
            +
            Require.folder 'extensions'
         
     | 
| 
       20 
7 
     | 
    
         
             
            require 'filters/include'
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            Require.folder 'output_handler'
         
     | 
| 
       22 
9 
     | 
    
         
             
            require 'appenders/include'
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 10 
     | 
    
         
            +
            Require.rfolder('action_handler')
         
     | 
| 
      
 11 
     | 
    
         
            +
            Require.rfolder('targets')
         
     | 
| 
      
 12 
     | 
    
         
            +
            Require.rfolder('templates')
         
     | 
| 
      
 13 
     | 
    
         
            +
            Require.folder('trace_calls')
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            # Module_filter = {
         
     | 
| 
      
 17 
     | 
    
         
            +
            #   :name => 'my modules',
         
     | 
| 
      
 18 
     | 
    
         
            +
            #   :default => :exclude,
         
     | 
| 
      
 19 
     | 
    
         
            +
            #   :module_rules => [{
         
     | 
| 
      
 20 
     | 
    
         
            +
            #     # id of modules rule set
         
     | 
| 
      
 21 
     | 
    
         
            +
            #     :name => ['my_modules'],
         
     | 
| 
      
 22 
     | 
    
         
            +
            #     :include => [/Hobo/],
         
     | 
| 
      
 23 
     | 
    
         
            +
            #     :exclude => [/Dryml/],
         
     | 
| 
      
 24 
     | 
    
         
            +
            #     :default => :exclude
         
     | 
| 
      
 25 
     | 
    
         
            +
            #   }]
         
     | 
| 
      
 26 
     | 
    
         
            +
            # }
         
     | 
| 
      
 27 
     | 
    
         
            +
            # 
         
     | 
| 
      
 28 
     | 
    
         
            +
            #   _filter = Module_filter
         
     | 
| 
      
 29 
     | 
    
         
            +
            # 
         
     | 
| 
      
 30 
     | 
    
         
            +
            #   context = {:modules => ['Blip', 'Blap']}.context
         
     | 
| 
      
 31 
     | 
    
         
            +
            #   
         
     | 
| 
      
 32 
     | 
    
         
            +
            #   puts context.inspect
         
     | 
| 
      
 33 
     | 
    
         
            +
            # 
         
     | 
| 
      
 34 
     | 
    
         
            +
            #   options = {:filters => _filter}    
         
     | 
| 
      
 35 
     | 
    
         
            +
            #   exec = Tracing::Filter::Executor.new(options)       
         
     | 
| 
      
 36 
     | 
    
         
            +
            #   result = exec.filters_allow?('msg', context)
         
     | 
| 
      
 37 
     | 
    
         
            +
            # 
         
     | 
| 
      
 38 
     | 
    
         
            +
            #   puts "Result:" + result.inspect  
         
     | 
| 
      
 39 
     | 
    
         
            +
            # 
         
     | 
| 
      
 40 
     | 
    
         
            +
            #   assert_equal false, result, "Filter should NOT allow passage"    
         
     | 
| 
         @@ -11,23 +11,10 @@ module Tracing 
     | 
|
| 
       11 
11 
     | 
    
         
             
                include Tracing::Filter::Exec
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                class << self
         
     | 
| 
       14 
     | 
    
         
            -
                   
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                   
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                  include Tracing::ActionHandler::Registration
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                  attr_accessor :final_yield_action
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                  def configure(options)
         
     | 
| 
       23 
     | 
    
         
            -
                    # puts "Filters before config: " + Tracing::TraceExt.filters.inspect        
         
     | 
| 
       24 
     | 
    
         
            -
                    
         
     | 
| 
       25 
     | 
    
         
            -
                    register_filters(options[:filters])
         
     | 
| 
       26 
     | 
    
         
            -
                    
         
     | 
| 
       27 
     | 
    
         
            -
                    # puts "Filters after config: " + Tracing::TraceExt.filters.inspect        
         
     | 
| 
       28 
     | 
    
         
            -
                    
         
     | 
| 
       29 
     | 
    
         
            -
                    register_action_handlers(options[:action_handlers] || options)
         
     | 
| 
       30 
     | 
    
         
            -
                    @final_yield_action = options[:final_yield] || :include
         
     | 
| 
      
 14 
     | 
    
         
            +
                  attr_accessor :configuration
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  def configure(configuration)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    @configuration ||= configuration if configuration.kind_of? Tracing::Configuration
         
     | 
| 
       31 
18 
     | 
    
         
             
                  end
         
     | 
| 
       32 
19 
     | 
    
         | 
| 
       33 
20 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,9 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require  
     | 
| 
       2 
     | 
    
         
            -
            require "trace_calls"
         
     | 
| 
       3 
     | 
    
         
            -
            require "sample_filters"
         
     | 
| 
       4 
     | 
    
         
            -
            require "rubygems"
         
     | 
| 
       5 
     | 
    
         
            -
            require "duration"
         
     | 
| 
       6 
     | 
    
         
            -
            require "test/unit"
         
     | 
| 
      
 1 
     | 
    
         
            +
            require 'include'
         
     | 
| 
       7 
2 
     | 
    
         | 
| 
       8 
3 
     | 
    
         
             
            class TestCreateActionHandler < Test::Unit::TestCase
         
     | 
| 
       9 
4 
     | 
    
         | 
| 
         @@ -15,14 +10,16 @@ class TestCreateActionHandler < Test::Unit::TestCase 
     | 
|
| 
       15 
10 
     | 
    
         
             
                config = {:action_handlers => {:appenders => :html}}
         
     | 
| 
       16 
11 
     | 
    
         
             
                result = config.action_handlers
         
     | 
| 
       17 
12 
     | 
    
         
             
                assert_equal Tracing::HtmlAppender, result.appenders[0].class, "Should result in action handler with HtmlAppender registered"    
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
              
         
     | 
| 
      
 15 
     | 
    
         
            +
              def test_ah
         
     | 
| 
       19 
16 
     | 
    
         
             
                config = {:action_handlers => {:filters => {:i_method_filter => "a,b"}}}
         
     | 
| 
       20 
17 
     | 
    
         
             
                result = config.action_handlers
         
     | 
| 
       21 
18 
     | 
    
         
             
                assert_equal Tracing::MethodFilter, result.filters[0].class, "Should result in action handler with MethodFilter registered"    
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                
         
     | 
| 
       23 
20 
     | 
    
         
             
                ah1 = {:filters => {:i_method_filter => "a,b"}, :appenders => :html}
         
     | 
| 
       24 
21 
     | 
    
         
             
                ah2 = {:filters => {:x_method_filter => "c,d"}, :appenders => :xml}
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
                  
         
     | 
| 
       26 
23 
     | 
    
         
             
                config = {:action_handlers => [ah1, ah2]}
         
     | 
| 
       27 
24 
     | 
    
         
             
                result = config.action_handlers
         
     | 
| 
       28 
25 
     | 
    
         
             
                assert_equal Tracing::MethodFilter, result[0].filters[0].class, "Should result in action handler with MethodFilter registered"    
         
     |