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