lib/rspectacular/plugins/elasticsearch.rb



##############################################################################
#                          Elasticsearch Plugin
##############################################################################

begin
  require 'elasticsearch-extensions'

  RSpec.configure do |config|
    config.before(:suite, :elasticsearch => lambda { |v| !!v }) do
      Elasticsearch::Extensions::Test::Cluster.start(:port => 9200) unless Elasticsearch::Extensions::Test::Cluster.running?
    end

    config.around(:each, :elasticsearch => lambda { |v| !!v }) do |example|
      model = case example.metadata[:elasticsearch]
              when String
                example.metadata[:elasticsearch].constantize
              end

      model.__elasticsearch__.client.indices.delete :index => '_all'
      model.__elasticsearch__.create_index!         :index => model.index_name

      example.run

      model.__elasticsearch__.client.indices.delete :index => '_all'
    end

    config.after(:suite, :elasticsearch => lambda { |v| !!v }) do
      Elasticsearch::Extensions::Test::Cluster.stop(:port => 9200) if Elasticsearch::Extensions::Test::Cluster.running?
    end
  end
rescue LoadError
end