Sha256: 244738ad045e681f4c83a4aa667588cdf540e16f3b8777ad7b12f50af7aa2392
Contents?: true
Size: 680 Bytes
Versions: 2
Compression:
Stored size: 680 Bytes
Contents
module Administrate class Search def initialize(resolver, term) @resolver = resolver @term = term end def run if @term.blank? resource_class.all else resource_class.where(query, *search_terms) end end private delegate :resource_class, to: :resolver def query search_attributes.map { |attr| "#{attr} ILIKE ?" }.join(" OR ") end def search_terms ["%#{term}%"] * search_attributes.count end def search_attributes resolver.dashboard_class::ATTRIBUTE_TYPES.select do |_, type| type.searchable? end.keys end attr_reader :resolver, :term end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
administrate-0.1.0 | lib/administrate/search.rb |
administrate-0.0.12 | lib/administrate/search.rb |