Sha256: 7d4131f747f0ee39cfdd43a6cf91a1fb9bcb400793896491270136d60cfe951a
Contents?: true
Size: 943 Bytes
Versions: 1
Compression:
Stored size: 943 Bytes
Contents
module Aqua::Query def self.included( klass ) klass.class_eval do extend ClassMethods include InstanceMethods klass.class_eval " def self.storage #{klass}::Storage end " end end module ClassMethods def index_on( *ivars ) ivars.each do |var| storage.index_on_ivar( var ) end end def query( index, opts={} ) opts = Mash.new( opts ) equals = opts.delete(:equals) opts[:equals] = _encode_query( equals ) if equals _build_results( storage.query( index, opts ) ) end def _encode_query( object ) CGI.escape( Aqua::Translator.pack_object( object ).pack.to_json ) end def _build_results( docs ) if docs.is_a? Array docs.map{ |doc| build( doc ) } else build( doc ) end end end module InstanceMethods end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aqua-0.2.0 | lib/aqua/object/query.rb |