# File lib/scrubyt/core/shared/extractor.rb, line 61
    def self.evaluate_subextractor(url, parent_pattern, resolve)
      if @@detail_pattern_relations.keys.include? @@detail_extractor_to_pattern_name[parent_pattern.referenced_extractor]
        detail_root = @@detail_pattern_relations[@@detail_extractor_to_pattern_name[parent_pattern.referenced_extractor]]
        detail_root.last_result = nil
        FetchAction.store_page
        @@original_evaluation_context.push @@evaluation_context
        @@host_stack.push FetchAction.get_host_name
        @@evaluation_context = EvaluationContext.new
        FetchAction.restore_host_name
        fetch url, :resolve => resolve
        @@evaluation_context.extractor = self
        @@evaluation_context.root_pattern = detail_root      
        root_results = evaluate_extractor detail_root      
        @@evaluation_context = @@original_evaluation_context.pop
        FetchAction.restore_page
        FetchAction.store_host_name(@@host_stack.pop)
        root_results
      else      
        @@original_evaluation_context ||= []
        @@host_stack ||= []
        FetchAction.store_page
        @@original_evaluation_context.push @@evaluation_context
        @@host_stack.push FetchAction.get_host_name
        @@evaluation_context = EvaluationContext.new
        FetchAction.restore_host_name      
        fetch url, :resolve => resolve
        class_eval(&parent_pattern.referenced_extractor)
        root_pattern = @@evaluation_context.root_pattern
        @@detail_pattern_relations[@@detail_extractor_to_pattern_name[parent_pattern.referenced_extractor]] = root_pattern
        root_results = evaluate_extractor(root_pattern)
        @@evaluation_context = @@original_evaluation_context.pop
        FetchAction.restore_page
        FetchAction.store_host_name(@@host_stack.pop)
        root_results
      end
    end