Sha256: 36b7348895e2069545fef9b98e8fca5ae98d886060b34072d7b8e0b65dda6314
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
module EasySearch def self.included(base) base.send :extend, ClassMethods end module ClassMethods def acts_as_searchable(*args) @search_options = args self.send :extend, SearchClassMethods end end module SearchClassMethods def search(search) if search query = [] values = [] @search_options.each do |opt| condition_type = nil if opt.instance_of?(Hash) debugger case opt[opt.keys.first] when :equals condition_type = "=" else condition_type = "LIKE" end query << "#{opt.keys.first} #{condition_type} ?" else query << "#{opt} LIKE ?" end if condition_type.nil? or condition_type == "LIKE" values << "%#{search}%" else values << search end end conditions = [query.join(" OR ")] conditions += values find(:all, :conditions => conditions) else all end end end end ActiveRecord::Base.send :include, EasySearch
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
easy_search_form-0.1.0 | lib/easy_search/acts_as_searchable.rb |