def initialize(options = {})
@watchers = {}
@active_watchers = 0
flags = 0
options.each do |option, value|
case option
when :skip_environment
flags |= EVFLAG_NOEV if value
when :fork_check
flags |= EVFLAG_FORKCHECK if value
when :backend
value = [value] unless value.is_a? Array
value.each do |backend|
case backend
when :select then flags |= EVBACKEND_SELECT
when :poll then flags |= EVBACKEND_POLL
when :epoll then flags |= EVBACKEND_EPOLL
when :kqueue then flags |= EVBACKEND_KQUEUE
when :port then flags |= EVBACKEND_PORT
else raise ArgumentError, "no such backend: #{backend}"
end
end
else raise ArgumentError, "no such option: #{option}"
end
end
@loop = ev_loop_new(flags)
end