Class: Factbase::Looged::Query

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

Overview

Query decorator.

This is an internal class, it is not supposed to be instantiated directly.

Instance Method Summary collapse

Constructor Details

#initialize(query, expr, loog) ⇒ Query

Returns a new instance of Query.



109
110
111
112
113
# File 'lib/factbase/looged.rb', line 109

def initialize(query, expr, loog)
  @query = query
  @expr = expr
  @loog = loog
end

Instance Method Details

#delete!Object



145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/factbase/looged.rb', line 145

def delete!
  r = nil
  tail = Factbase::Looged.elapsed do
    r = @query.delete!
  end
  raise ".delete! of #{@query.class} returned #{r.class}" unless r.is_a?(Integer)
  if r.zero?
    @loog.debug("Nothing deleted by '#{@expr}' #{tail}")
  else
    @loog.debug("Deleted #{r} fact(s) by '#{@expr}' #{tail}")
  end
  r
end

#eachObject



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/factbase/looged.rb', line 115

def each(&)
  q = Factbase::Syntax.new(@expr).to_term.to_s
  if block_given?
    r = nil
    tail = Factbase::Looged.elapsed do
      r = @query.each(&)
    end
    raise ".each of #{@query.class} returned #{r.class}" unless r.is_a?(Integer)
    if r.zero?
      @loog.debug("Nothing found by '#{q}' #{tail}")
    else
      @loog.debug("Found #{r} fact(s) by '#{q}' #{tail}")
    end
    r
  else
    array = []
    tail = Factbase::Looged.elapsed do
      @query.each do |f|
        array << f
      end
    end
    if array.empty?
      @loog.debug("Nothing found by '#{q}' #{tail}")
    else
      @loog.debug("Found #{array.size} fact(s) by '#{q}' #{tail}")
    end
    array
  end
end