module LightIO::Library::Addrinfo::WrapHelper

Protected Instance Methods

wrap_addrinfo_return_method(method) click to toggle source
# File lib/lightio/library/socket.rb, line 33
def wrap_addrinfo_return_method(method)
  define_method method do |*args|
    result = @obj.send(method, *args)
    if result.is_a?(::Addrinfo)
      self.class.wrap_to_library(result)
    elsif result.respond_to?(:map)
      result.map {|r| self.class.wrap_to_library(r)}
    else
      result
    end
  end
end
wrap_addrinfo_return_methods(*methods) click to toggle source
# File lib/lightio/library/socket.rb, line 46
def wrap_addrinfo_return_methods(*methods)
  methods.each {|m| wrap_addrinfo_return_method(m)}
end
wrap_socket_method(method) { |socket| ... } click to toggle source
# File lib/lightio/library/socket.rb, line 14
def wrap_socket_method(method)
  define_method method do |*args|
    socket = self.class.wrap_to_library(@obj.send(method, *args))
    if block_given?
      begin
        yield socket
      ensure
        socket.close
      end
    else
      socket
    end
  end
end
wrap_socket_methods(*methods) click to toggle source
# File lib/lightio/library/socket.rb, line 29
def wrap_socket_methods(*methods)
  methods.each {|m| wrap_socket_method(m)}
end