Sha256: 31578683c73db0301db59246bb5b147b2f52d70863842a4c1081cd231de52e4c
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
module Feedcellar class GroongaSearcher class << self def search(database, words, options) feeds = database.feeds feeds = feeds.select do |feed| expression = nil words.each do |word| sub_expression = (feed.title =~ word) | (feed.description =~ word) if expression.nil? expression = sub_expression else expression &= sub_expression end end if options[:mtime] base_date = (Time.now - (options[:mtime] * 60 * 60 * 24)) mtime_expression = feed.date > base_date if expression.nil? expression = mtime_expression else expression &= mtime_expression end end if options[:resource] resource_expression = feed.resource =~ options[:resource] if expression.nil? expression = resource_expression else expression &= resource_expression end end expression end order = options[:reverse] ? "ascending" : "descending" sorted_feeds = feeds.sort([{:key => "date", :order => order}]) sorted_feeds end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
feedcellar-0.3.2 | lib/feedcellar/groonga_searcher.rb |
feedcellar-0.3.1 | lib/feedcellar/groonga_searcher.rb |