class Traildb::TrailDBEventFilter
Public Class Methods
new(db, query)
click to toggle source
Calls superclass method
# File lib/traildb.rb, line 397 def initialize(db, query) super Traildb.tdb_event_filter_new() if !query[0][0].is_a? Array query = [query] end query.each_with_index do |clause, i| if i > 0 ret = Traildb.tdb_event_filter_new_clause(self) raise TrailDBError.new("Out of memory in create_filter", ret) if ret != 0 end clause.each do |term| ret = 0 if term.size == 2 and term[0].is_a? Integer and term[0].is_a? Integer start_time, end_time = term ret = Traildb.tdb_event_filter_add_time_range(self, start_time, end_time) else is_negative = false if term.size == 3 field, value, is_negative = term else field, value = term end item = begin db.get_item(field, value) rescue TrailDBError, ValueError 0 end ret = Traildb.tdb_event_filter_add_term(self, item, is_negative ? 1 : 0) end raise TrailDBError.new("Out of memory in create_filter", ret) if ret != 0 end end end
release(ptr)
click to toggle source
# File lib/traildb.rb, line 431 def self.release(ptr) Traildb.tdb_event_filter_free(ptr) end