class LazyTsquery

LazyTsquery delays the connection and the execution of following commands (`use`, `login`) until another command is executed. This allows to create ready-to-use Tsquery objects without ever hitting the server.

Public Instance Methods

close() click to toggle source
# File lib/lazy_tsquery.rb, line 67
def close
  __getobj__.close
rescue NoMethodError
end
connect(lazy: true, **kwargs) click to toggle source
Calls superclass method
# File lib/lazy_tsquery.rb, line 11
def connect(lazy: true, **kwargs)
  if lazy
    @connection_info = kwargs
    nil
  else
    super(**kwargs)
  end
end
execute(command, *args) click to toggle source
Calls superclass method
# File lib/lazy_tsquery.rb, line 21
def execute(command, *args)
  case command
  when 'use', 'login'
    @commands ||= []
    @commands << [command, args]

    nil
  else
    connect **@connection_info, lazy: false

    @commands.each do |command, args|
      super(command, *args)
    end
    @commands = []

    super
  end
end
inspect() click to toggle source
# File lib/lazy_tsquery.rb, line 62
def inspect
  __getobj__.inspect
end
login(username: 'serveradmin', password:) click to toggle source
# File lib/lazy_tsquery.rb, line 54
def login(username: 'serveradmin', password:)
  execute 'login', username, password
  nil
rescue Tsquery::Error
  false
end
method_missing(command, *args) click to toggle source

Needed for the delegation to work.

# File lib/lazy_tsquery.rb, line 44
def method_missing(command, *args)
  execute(command.to_s, *args)
end
respond_to_missing?(command, *) click to toggle source
# File lib/lazy_tsquery.rb, line 49
def respond_to_missing?(command, *)
  !!(command =~ /[[:alnum:]]$/)
end