lib/rsolr-ext/findable.rb in mwmitchell-rsolr-ext-0.7.4 vs lib/rsolr-ext/findable.rb in mwmitchell-rsolr-ext-0.7.5

- old
+ new

@@ -32,11 +32,11 @@ # find 'jefferson', :phrase_filters=>{:type=>'book'} # q=jefferson&fq=type:"book" - all docs # find {:q=>'something'}, :include_response=>true # q=something -- the entire response def find(*args, &blk) mode, solr_params, opts = extract_find_opts!(*args) - opts[:include_response] ||= true + opts[:include_response] = false unless opts.key?(:include_response) solr_params[:rows] = 1 if mode == :first valid_solr_params = RSolr::Ext.map_params(solr_params) response = opts[:handler] ? send_request(opts[:handler], valid_solr_params) : select(valid_solr_params) @@ -62,32 +62,29 @@ end end end # find_by_id(10, :handler=>'catalog') - # find_by_id(:id=>10) def find_by_id(id, solr_params={}, opts={}, &blk) - if id.respond_to?(:each_pair) - solr_params = id - else - solr_params[:phrases] ||= {} - solr_params[:phrases][:id] = id.to_s - end + solr_params[:phrases] ||= {} + solr_params[:phrases][:id] = id self.find(:first, solr_params, opts, &blk) end protected def extract_find_opts!(*args) mode = :all + # extract the mode (:all or :first) valid_modes = [:all, :first] if args[0].is_a?(Symbol) mode = valid_modes.include?(args[0]) ? args.shift : raise("Invalid find mode; should be :first or :all") end # extract solr params - solr_params = args.shift + solr_params = args.shift || {} + # create a hash if a string was passed in... unless solr_params.respond_to?(:each_pair) - solr_params = {:q=>solr_params.to_s} + solr_params = {:q=>solr_params} end # extract options opts = args.shift || {} [mode, solr_params, opts] end \ No newline at end of file