Module: Iord::Search

Extended by:
ActiveSupport::Concern
Defined in:
lib/iord/search.rb

Instance Method Summary collapse

Instance Method Details

#create_collection_with_searchObject



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/iord/search.rb', line 103

def create_collection_with_search
  collection = create_collection_without_search
  if search_term
    if search_operator == :like
      collection = collection.where(search_term => {"$regex" => ".*#{search_value}.*", "$options" => "i"} )
    elsif search_operator == :eq
      if search_value.empty?
        collection = collection.where(search_term.to_sym.in => [nil, ''])
      else
        collection = collection.where(search_term => search_value)
      end
    else
      collection = collection.where(search_term => {"$#{search_operator}" => search_value})
    end
  end
  return collection
end

#search_operatorObject



92
93
94
95
96
97
98
99
100
101
# File 'lib/iord/search.rb', line 92

def search_operator
  if @search_operator.nil? or (params[:op] ? @search_operator != params[:op].to_s : false)
    return @search_operator = nil if search_term.nil?
    @search_operator = (params[:op] || :eq).to_sym
    @search_operator = :eq unless search_operators.include? @search_operator

    collection_url_defaults[:op] = @search_operator if @search_operator
  end
  return @search_operator
end

#search_operatorsObject



88
89
90
# File 'lib/iord/search.rb', line 88

def search_operators
  @search_operators ||= %i(eq lt lte gt gte like)
end

#search_termObject



69
70
71
72
73
74
75
76
# File 'lib/iord/search.rb', line 69

def search_term
  if @search_term.nil?
    @search_term = params[:q]
    @search_term = nil unless resource_attribute_names.include? @search_term
    collection_url_defaults[:q] = @search_term if @search_term
  end
  return @search_term
end

#search_valueObject



78
79
80
81
82
83
84
85
86
# File 'lib/iord/search.rb', line 78

def search_value
  if @search_value.nil?
    return @search_value = nil if search_term.nil?
    @search_value = params[:v]

    collection_url_defaults[:v] = @search_value if @search_value
  end
  return @search_value
end