def parse(options)
      # find the record store, possibly based on the :store option
      store = record_store(options.delete(:store))
      # dispatch the parse call to all known strategies
      Dispatcher.strategy_classes.map{ |klass| klass.parse(@base, store, options) }.flatten.compact.each do |strategy|
        raise "Multiple record cache definitions found for '#{strategy.attribute}' on #{@base.name}" if @strategy_by_attribute[strategy.attribute]
        # and keep track of all strategies
        @strategy_by_attribute[strategy.attribute] = strategy
      end
      # make sure the strategies are ordered again on next call to +ordered_strategies+
      @ordered_strategies = nil
    end
def parse(options)
      # find the record store, possibly based on the :store option
      store = record_store(options.delete(:store))
      # dispatch the parse call to all known strategies
      Dispatcher.strategy_classes.map{ |klass| klass.parse(@base, store, options) }.flatten.compact.each do |strategy|
        raise "Multiple record cache definitions found for '#{strategy.attribute}' on #{@base.name}" if @strategy_by_attribute[strategy.attribute]
        # and keep track of all strategies
        @strategy_by_attribute[strategy.attribute] = strategy
      end
      # make sure the strategies are ordered again on next call to +ordered_strategies+
      @ordered_strategies = nil
    end
Parse the options provided to the cache_records method and create the appropriate cache strategies.