Sha256: 39886e33ac0fc6d5b5f6390ff90f2de5f14d9db55ebe16fc90668f2da00277de
Contents?: true
Size: 1.29 KB
Versions: 13
Compression:
Stored size: 1.29 KB
Contents
require 'ernie' module Hoth module Providers class BertRPCProvider def self.create_ernie_definition Ernie.log "Possible Service implementations: #{Object.constants.grep(/.*Impl$/).inspect}" Object.constants.grep(/.*Impl$/).each do |impl_class_name| if impl_class = Object.const_get(impl_class_name) #&& impl_class.respond_to?(:execute) Ernie.log "Service implementation was loaded! (#{impl_class.inspect})" if impl_class.respond_to?(:execute) service_name = impl_class_name.gsub("Impl", "").underscore.to_sym mod(service_name) do fun(:execute) do |*args| return_value = begin Hoth::Transport::Bert::TuplePreparer.prepare(Hoth::Services.send(service_name, *args)) rescue Exception => e Ernie.log %Q{An Exception occured: #{e.message} -- #{e.backtrace.join("\n\t")}} false end end end else Ernie.log "Implementation wasn't applicatable. :execute method is missing!" end else Ernie.log "Service implementation was not loaded! (#{impl_class_name.inspect})" end end end end end end
Version data entries
13 entries across 13 versions & 2 rubygems