lib/rsolr-ext/response.rb in mwmitchell-rsolr-ext-0.5.6 vs lib/rsolr-ext/response.rb in mwmitchell-rsolr-ext-0.5.7
- old
+ new
@@ -4,56 +4,62 @@
autoload :Pageable, 'rsolr-ext/response/pageable'
autoload :DocExt, 'rsolr-ext/response/doc_ext'
class Base < Mash
- attr_reader :raw_response
-
- def initialize(raw_response)
- @raw_response = raw_response
- super(raw_response)
- RSolr::Ext::HashMethodizer.methodize!(self)
+ def header
+ self[:responseHeader]
end
def ok?
- response_header.status == 0
+ header[:status] == 0
end
end
#
class Standard < Base
include Facetable
def initialize(*a)
- super
+ super(*a)
activate_pagination!
end
+ def response
+ self[:response]
+ end
+
+ def docs
+ response[:docs]
+ end
+
+ private
+
def activate_pagination!
- response.docs.each{ |d| d.extend DocExt }
- d = response.docs
+ d = self[:response][:docs]
+ d.each{|dhash| dhash.extend DocExt }
d.extend Pageable
- d.start = response_header.params[:start].to_s.to_i
- d.per_page = response_header.params[:rows].to_s.to_i
- d.total = response.num_found
+ d.start = self[:responseHeader][:params][:start].to_s.to_i
+ d.per_page = self[:responseHeader][:params][:rows].to_s.to_i
+ d.total = self[:response][:numFound]
end
end
class Dismax < Standard
end
#
- class RSolr::Ext::Response::Luke < Base
+ class Luke < Base
# Returns an array of fields from the index
# An optional rule can be used for "grepping" field names:
# field_list(/_facet$/)
def field_list(rule=nil)
- fetch(:fields).select do |k,v|
+ self[:fields].select do |k,v|
rule ? k =~ rule : true
end.collect{|k,v|k}
end
end# end Luke
\ No newline at end of file