Class: Factbase::Impatient

Inherits:
Object
  • Object
show all
Defined in:
lib/factbase/impatient.rb

Overview

A decorator of a Factbase, that terminates long-running queries.

Author

Yegor Bugayenko ([email protected])

Copyright

Copyright © 2024-2025 Yegor Bugayenko

License

MIT

Defined Under Namespace

Classes: Query

Instance Method Summary collapse

Constructor Details

#initialize(fb, timeout: 15) ⇒ Impatient

Ctor.

Parameters:

  • fb (Factbase)

    The factbase to decorate

  • timeout (Integer) (defaults to: 15)

    Timeout in seconds



20
21
22
23
24
# File 'lib/factbase/impatient.rb', line 20

def initialize(fb, timeout: 15)
  raise 'The "fb" is nil' if fb.nil?
  @origin = fb
  @timeout = timeout.to_f
end

Instance Method Details

#insertObject



28
29
30
# File 'lib/factbase/impatient.rb', line 28

def insert
  @origin.insert
end

#query(term, maps = nil) ⇒ Object



32
33
34
35
# File 'lib/factbase/impatient.rb', line 32

def query(term, maps = nil)
  term = to_term(term) if term.is_a?(String)
  Query.new(term, maps, @timeout, @origin)
end

#txnObject



37
38
39
40
41
# File 'lib/factbase/impatient.rb', line 37

def txn
  @origin.txn do |fbt|
    yield Factbase::Impatient.new(fbt, timeout: @timeout)
  end
end