Sha256: 58a53e111501758b9f74b74aac971ddc04e67a4dc2e000e4e7a7a18dc00e12c4

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

module Cucumber
  module ThinkingSphinx
    class ExternalWorld
      def initialize(suppress_delta_output = true)
        set_flags suppress_delta_output
        create_indexes_folder
        prepare_and_start_daemon
        configure_cleanup
      end
      
      private
      
      def config
        @config ||= ::ThinkingSphinx::Configuration.instance
      end
      
      def set_flags(suppress_delta_output)
        ::ThinkingSphinx.deltas_enabled        = true
        ::ThinkingSphinx.updates_enabled       = true
        ::ThinkingSphinx.suppress_delta_output = suppress_delta_output
      end
      
      def create_indexes_folder
        FileUtils.mkdir_p config.searchd_file_path
      end
      
      def prepare_and_start_daemon
        config.build
        config.controller.index
        config.controller.start
      end 
      
      def configure_cleanup
        Kernel.at_exit do
          config.controller.stop
          sleep(0.5) # Ensure Sphinx has shut down completely
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 3 rubygems

Version Path
moneypools-thinking-sphinx-1.3.1 lib/cucumber/thinking_sphinx/external_world.rb
thinking-sphinx-1.3.1 lib/cucumber/thinking_sphinx/external_world.rb
thinking-sphinx-099-1.3.1 lib/cucumber/thinking_sphinx/external_world.rb