def service_call(method, *args)
      result = nil
      @blocks[:before].each {|block| self.instance_exec(method, args, &block) }

      begin
        if provider.respond_to?(method)
          result = @provider.send(method, *args)
        else
          raise Gitomator::Exception::UnsupportedProviderMethod.new(@provider, method)
        end
      rescue Exception => e
        @blocks[:error].each {|block| self.instance_exec(method, args, e, &block) }
        raise e
      end

      @blocks[:after].each {|block| self.instance_exec(method, args, result, &block) }
      return result
    end
def service_call(method, *args)
      result = nil
      @blocks[:before].each {|block| self.instance_exec(method, args, &block) }

      begin
        if provider.respond_to?(method)
          result = @provider.send(method, *args)
        else
          raise Gitomator::Exception::UnsupportedProviderMethod.new(@provider, method)
        end
      rescue Exception => e
        @blocks[:error].each {|block| self.instance_exec(method, args, e, &block) }
        raise e
      end

      @blocks[:after].each {|block| self.instance_exec(method, args, result, &block) }
      return result
    end
---------------------------------------------------------------------------