Class: Factbase::Looged::Query

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

Overview

Query decorator.

Instance Method Summary collapse

Constructor Details

#initialize(query, expr, loog) ⇒ Query

Returns a new instance of Query.



105
106
107
108
109
# File 'lib/factbase/looged.rb', line 105

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

Instance Method Details

#delete!Object



137
138
139
140
141
142
143
144
145
146
# File 'lib/factbase/looged.rb', line 137

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

#eachObject



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/factbase/looged.rb', line 111

def each(&)
  if block_given?
    r = @query.each(&)
    raise ".each of #{@query.class} returned #{r.class}" unless r.is_a?(Integer)
    if r.zero?
      @loog.debug("Nothing found by '#{@expr}'")
    else
      @loog.debug("Found #{r} fact(s) by '#{@expr}'")
    end
    r
  else
    array = []
    # rubocop:disable Style/MapIntoArray
    @query.each do |f|
      array << f
    end
    # rubocop:enable Style/MapIntoArray
    if array.empty?
      @loog.debug("Nothing found by '#{@expr}'")
    else
      @loog.debug("Found #{array.size} fact(s) by '#{@expr}'")
    end
    array
  end
end