Sha256: 0e9b2c0eb48aeb9deda5fd4445df6a4b9f662410bca1cab33f4a5d4335fbca3f

Contents?: true

Size: 1017 Bytes

Versions: 5

Compression:

Stored size: 1017 Bytes

Contents

module RSolr::Ext::Response
  
  autoload :Facets, 'rsolr-ext/response/facets'
  autoload :Docs, 'rsolr-ext/response/docs'
  
  class Base < Mash
    
    def header
      self['responseHeader']
    end
    
    def params
      header['params']
    end
    
    def ok?
      header['status'] == 0
    end
    
  end
  
  # 
  class Standard < Base
    
    def initialize(*args)
      super(*args)
      extend Docs if self['response']['docs']
      extend Facets if key?('facet_counts')
    end
    
    def response
      self['response']
    end
    
  end
  
  class Dismax < Standard
    
  end
  
  # 
  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)
      fields.select do |k,v|
        rule ? k =~ rule : true
      end.collect{|k,v|k}
    end
    
    def fields
      self['fields']
    end

  end# end Luke
  
  # Update
  class Update < Base
    
  end
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mwmitchell-rsolr-ext-0.7.0 lib/rsolr-ext/response.rb
mwmitchell-rsolr-ext-0.7.1 lib/rsolr-ext/response.rb
mwmitchell-rsolr-ext-0.7.5 lib/rsolr-ext/response.rb
mwmitchell-rsolr-ext-0.7.6 lib/rsolr-ext/response.rb
mwmitchell-rsolr-ext-0.7.7 lib/rsolr-ext/response.rb