Sha256: 8c25da7bb2b2e94dc598b6c0f2813115377be5d6e34483b7581dc44b94affdac

Contents?: true

Size: 990 Bytes

Versions: 1

Compression:

Stored size: 990 Bytes

Contents

module Aqua
  module Store 
    module CouchDB
      class ResultSet < Array
        
        def self.document_class
          @document_class
        end
        
        def self.document_class=( klass )
          @document_class = klass
        end    
        
        attr_accessor :offset, :total, :rows, :document_class
        
        def initialize( response, doc_class=nil )
          self.document_class = doc_class || self.class.document_class
          self.total    = response['total_rows']
          self.offset   = response['offset']
          self.rows     = response['rows']
          results = if rows && rows.first && rows.first['doc']
            if document_class
              rows.collect{ |h| document_class.new( h['doc'] ) }
            else
              rows.collect{ |h| h['doc'] }
            end    
          else
            rows.collect{ |h| h['key'] } 
          end    
          super( results )
        end
           
      end
    end
  end
end    

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aqua-0.2.0 lib/aqua/store/couch_db/result_set.rb