class Geos::Handle

Attributes

ptr[R]

Public Class Methods

new() click to toggle source
# File lib/ffi-geos.rb, line 1341
def initialize
  @ptr = FFI::AutoPointer.new(FFIGeos.GEOS_init_r, self.class.method(:release))

  reset_notice_handler
  reset_error_handler
end
release(ptr) click to toggle source
# File lib/ffi-geos.rb, line 1348
def self.release(ptr)
  FFIGeos.GEOS_finish_r(ptr)
end

Public Instance Methods

error_handler(&block) click to toggle source
# File lib/ffi-geos.rb, line 1367
def error_handler(&block)
  self.error_handler = block if block_given?
  @error_handler
end
error_handler=(method_or_block) click to toggle source
# File lib/ffi-geos.rb, line 1357
def error_handler=(method_or_block)
  @error_handler = method_or_block
  FFIGeos.GEOSContext_setErrorMessageHandler_r(@ptr, @error_handler, nil)
end
notice_handler(&block) click to toggle source
# File lib/ffi-geos.rb, line 1362
def notice_handler(&block)
  self.notice_handler = block if block_given?
  @notice_handler
end
notice_handler=(method_or_block) click to toggle source
# File lib/ffi-geos.rb, line 1352
def notice_handler=(method_or_block)
  @notice_handler = method_or_block
  FFIGeos.GEOSContext_setNoticeMessageHandler_r(@ptr, @notice_handler, nil)
end
reset_error_handler() click to toggle source
# File lib/ffi-geos.rb, line 1376
def reset_error_handler
  self.error_handler = method(:default_error_handler)
end
reset_notice_handler() click to toggle source
# File lib/ffi-geos.rb, line 1372
def reset_notice_handler
  self.notice_handler = method(:default_notice_handler)
end

Private Instance Methods

default_error_handler(*args) click to toggle source
# File lib/ffi-geos.rb, line 1407
def default_error_handler(*args)
  raise Geos::GEOSException, sprintf(args[0], *args[1])
end
default_notice_handler(*args) click to toggle source
# File lib/ffi-geos.rb, line 1403
def default_notice_handler(*args)
  # no-op
end