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

- old
+ new

@@ -32,10 +32,14 @@ # 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) + unless solr_params.respond_to?(:each_pair) + solr_params = {:q=>solr_params} + end + 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) @@ -62,13 +66,18 @@ end end end # find_by_id(10, :handler=>'catalog') + # find_by_id(:id=>10) def find_by_id(id, solr_params={}, opts={}, &blk) - solr_params[:phrases] ||= {} - solr_params[:phrases][:id] = id + if id.respond_to?(:each_pair) + solr_params = id + else + solr_params[:phrases] ||= {} + solr_params[:phrases][:id] = id + end self.find(:first, solr_params, opts, &blk) end protected @@ -79,13 +88,9 @@ 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 || {} - # create a hash if a string was passed in... - unless solr_params.respond_to?(:each_pair) - solr_params = {:q=>solr_params} - end # extract options opts = args.shift || {} [mode, solr_params, opts] end \ No newline at end of file