Sha256: c8c215d886aacbc10e63c50a5be27dbd168c45fb44c545547584893d4b648edc
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
#vi: ts=2 sw=2 et require 'common' require 'lims-core/resource' require 'lims-core/persistence/persistor' require 'lims-core/persistence/filter' # We need to load all the possible filter to be able load them by name. require_all('*filter') module Lims::Core module Persistence # base class handling searches. A Search represent a set of parameters # which when executed returns a set of similar object (.i.e the same class). # A search is savable. class Search include Resource attribute :description, String, :required => true, :initializable => true, :write => :private attribute :model, Class, :required => true, :initializable => true, :writer => :private attribute :filter, Filter, :required => true, :initializable => true, :writer => :private # Main method. Take an session an return an filtered persistor. # @param [Session] # @return [Persistor] def call(session) filter.call(session.persistor_for(@model)) end # Base persistor for Search object. # It should be called Persistence::Search but, this is # already taken by the main Search class. class SearchPersistor < Persistence::Persistor Model = Persistence::Search # Override default one, because filter are serialized # and even though they are a Resource they are not counted as parents def parents(resource) [] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lims-core-3.2.3 | lib/lims-core/persistence/search/search_persistor.rb |