Sha256: 584be4dde1d05a024e8eca1324706af2f318a19e0c36a96a83707effe127157d

Contents?: true

Size: 912 Bytes

Versions: 29

Compression:

Stored size: 912 Bytes

Contents

module Virgo
  class User < ActiveRecord::Base
    module Search
      extend ActiveSupport::Concern

      included do
        scope :search, ->(filters=nil) {
          filters ||= {}

          items = all

          if filters[:term].present?
            parts = filters[:term].split(" ")
            queries = []
            vals = {}

            parts.each_with_index do |part, i|
              vals[:"term_#{i}"] = "%#{part}%"

              queries << \
                "(users.email ILIKE :term_#{i} OR " +
                "users.first_name ILIKE :term_#{i} OR " +
                "users.last_name ILIKE :term_#{i} OR " +
                "users.username ILIKE :term_#{i} OR " +
                "users.byline ILIKE :term_#{i})"
            end

            query  = queries.join(" OR ")

            items = items.where(query, vals)
          end


          items
        }
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
virgo-0.3.3 app/models/concerns/virgo/user/search.rb
virgo-0.3.2 app/models/concerns/virgo/user/search.rb
virgo-0.3.1 app/models/concerns/virgo/user/search.rb
virgo-0.3 app/models/concerns/virgo/user/search.rb
virgo-0.2.9 app/models/concerns/virgo/user/search.rb
virgo-0.2.8 app/models/concerns/virgo/user/search.rb
virgo-0.2.7 app/models/concerns/virgo/user/search.rb
virgo-0.2.6 app/models/concerns/virgo/user/search.rb
virgo-0.2.5 app/models/concerns/virgo/user/search.rb
virgo-0.2.4 app/models/concerns/virgo/user/search.rb
virgo-0.2.2 app/models/concerns/virgo/user/search.rb
virgo-0.2.1 app/models/concerns/virgo/user/search.rb
virgo-0.2 app/models/concerns/virgo/user/search.rb
virgo-0.1.16 app/models/concerns/virgo/user/search.rb
virgo-0.1.15 app/models/concerns/virgo/user/search.rb
virgo-0.1.14 app/models/concerns/virgo/user/search.rb
virgo-0.1.13 app/models/concerns/virgo/user/search.rb
virgo-0.1.12 app/models/concerns/virgo/user/search.rb
virgo-0.1.11 app/models/concerns/virgo/user/search.rb
virgo-0.1.10 app/models/concerns/virgo/user/search.rb