Class: Factbase::Looged::Query
- Inherits:
-
Object
- Object
- Factbase::Looged::Query
- 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
- #delete! ⇒ Object
- #each(params = {}) ⇒ Object
-
#initialize(fb, expr, loog) ⇒ Query
constructor
A new instance of Query.
- #one(params = {}) ⇒ Object
Constructor Details
#initialize(fb, expr, loog) ⇒ Query
Returns a new instance of Query.
114 115 116 117 118 |
# File 'lib/factbase/looged.rb', line 114 def initialize(fb, expr, loog) @fb = fb @expr = expr @loog = loog end |
Instance Method Details
#delete! ⇒ Object
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'lib/factbase/looged.rb', line 164 def delete! r = nil before = @fb.size tail = Factbase::Looged.elapsed do r = @fb.query(@expr).delete! end raise ".delete! of #{@query.class} returned #{r.class}" unless r.is_a?(Integer) if before.zero? @loog.debug("There were no facts, nothing deleted by '#{@expr}' #{tail}") elsif r.zero? @loog.debug("No facts out of #{before} deleted by '#{@expr}' #{tail}") else @loog.debug("Deleted #{r} fact(s) out of #{before} by '#{@expr}' #{tail}") end r end |
#each(params = {}) ⇒ Object
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/factbase/looged.rb', line 134 def each(params = {}, &) q = Factbase::Syntax.new(@expr).to_term.to_s if block_given? r = nil tail = Factbase::Looged.elapsed do r = @fb.query(@expr).each(params, &) 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 @fb.query(@expr).each(params) 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 |
#one(params = {}) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/factbase/looged.rb', line 120 def one(params = {}) q = Factbase::Syntax.new(@expr).to_term.to_s r = nil tail = Factbase::Looged.elapsed do r = @fb.query(@expr).one(params) end if r.nil? @loog.debug("Nothing found by '#{q}' #{tail}") else @loog.debug("Found #{r} (#{r.class}) by '#{q}' #{tail}") end r end |