Sha256: db8b2c7e95d5a3539db55badacc64cd8bd6735920017550e6f0ce4c8e715fb7b

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

#!/usr/bin/env ruby
# Copyright Ultragreen (c) 2012
#---
# Author : Romain GEORGES 
# type : class definition Ruby
# obj : Generic Debugs tools library
#---


require 'rubygems'
require 'methodic'


module Carioca
  module Services
    
    # standard RAA dependency
    
    
    class ProxyDebug
      
      def initialize(_options)
        options = Methodic.get_options(_options)
        options.specify_classes_of :service => String, :params => Hash
        options.specify_presence_of([:service])
        options.validate!
        if options[:params] then
          @obj = Registry.init.start_service :name  => options[:service], :params => options[:params]
        else
          @obj = Registry.init.start_service :name  => options[:service]
        end
        @log  = Registry.init.get_service :name => 'logger'
        @mapped_service = options[:service]
      end
      
      def method_missing(methodname, *args,&block)
        @log.debug("ProxyDebug") { "BEGIN CALL for mapped service #{@mapped_service} "} 
        @log.debug("ProxyDebug") { "called: #{methodname} " }
        @log.debug("ProxyDebug") { "args : #{args}" }

        if block_given? then
          @log.debug("ProxyDebug") { "block given" }
          a = @obj.send(methodname, *args,&block)
        else
          
          a = @obj.send(methodname, *args)
        end

        @log.debug("ProxyDebug") { "=> returned: #{a} " }
        @log.debug("ProxyDebug") { 'END CALL' }
        return a
      end
    end
    
    
  end
end

# protection for loading libs
if $0 == __FILE__ then
  puts "#{File::basename(__FILE__)}:"
  puts 'this is a RUBY library file'
  puts "Copyright (c) Ultragreen"
  puts "Version : #{Agents::LIB_VERSION}"
  puts "Author : #{Agents::AUTHOR}"
  puts "Date release : #{Agents::DATE}"
  puts "Observation : #{Agents::OBS}"
end


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
carioca-0.1 lib/services/debug.rb