Class: Ddr::Index::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/ddr/index/query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



4
5
6
# File 'lib/ddr/index/query.rb', line 4

def fields
  @fields
end

#filtersObject (readonly)

Returns the value of attribute filters.



4
5
6
# File 'lib/ddr/index/query.rb', line 4

def filters
  @filters
end

#qObject (readonly)

Returns the value of attribute q.



4
5
6
# File 'lib/ddr/index/query.rb', line 4

def q
  @q
end

#rowsObject (readonly)

Returns the value of attribute rows.



4
5
6
# File 'lib/ddr/index/query.rb', line 4

def rows
  @rows
end

#sortObject (readonly)

Returns the value of attribute sort.



4
5
6
# File 'lib/ddr/index/query.rb', line 4

def sort
  @sort
end

Instance Method Details

#csv(**opts) ⇒ Object



30
31
32
# File 'lib/ddr/index/query.rb', line 30

def csv(**opts)
  CSVQueryResult.new(self, **opts)
end

#inspectObject



8
9
10
11
# File 'lib/ddr/index/query.rb', line 8

def inspect
  "#<#{self.class.name} q=#{q.inspect}, filters=#{filters.inspect}," \
  " sort=#{sort.inspect}, rows=#{rows.inspect}, fields=#{fields.inspect}>"
end

#paramsObject



17
18
19
20
21
22
23
24
# File 'lib/ddr/index/query.rb', line 17

def params
  { q:    q,
    fq:   filters.map(&:clauses).flatten,
    fl:   fields.join(","),
    sort: sort.join(","),
    rows: rows,
  }.select { |k, v| v.present? }
end

#resultObject



26
27
28
# File 'lib/ddr/index/query.rb', line 26

def result
  QueryResult.new(self)
end

#to_sObject



13
14
15
# File 'lib/ddr/index/query.rb', line 13

def to_s
  URI.encode_www_form(params)
end