Sha256: ae125662f509b6a3a722a812d0a83ab6fb2185f97a26288a75d840c7242693bf

Contents?: true

Size: 963 Bytes

Versions: 7

Compression:

Stored size: 963 Bytes

Contents

class ThinkingSphinx::RealTime::Populator
  def self.populate(index)
    new(index).populate
  end

  def initialize(index)
    @index = index
  end

  def populate(&block)
    instrument 'start_populating'

    remove_files

    scope.find_each do |instance|
      transcriber.copy instance
      instrument 'populated', :instance => instance
    end

    controller.rotate
    instrument 'finish_populating'
  end

  private

  attr_reader :index

  delegate :controller, :to => :configuration
  delegate :scope,      :to => :index

  def configuration
    ThinkingSphinx::Configuration.instance
  end

  def instrument(message, options = {})
    ActiveSupport::Notifications.instrument(
      "#{message}.thinking_sphinx.real_time", options.merge(:index => index)
    )
  end

  def remove_files
    Dir["#{index.path}*"].each { |file| FileUtils.rm file }
  end

  def transcriber
    @transcriber ||= ThinkingSphinx::RealTime::Transcriber.new index
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
thinking-sphinx-3.1.4 lib/thinking_sphinx/real_time/populator.rb
thinking-sphinx-3.1.3 lib/thinking_sphinx/real_time/populator.rb
thinking-sphinx-3.1.2 lib/thinking_sphinx/real_time/populator.rb
thinking-sphinx-3.1.1 lib/thinking_sphinx/real_time/populator.rb
thinking-sphinx-3.1.0 lib/thinking_sphinx/real_time/populator.rb
thinking-sphinx-3.0.6 lib/thinking_sphinx/real_time/populator.rb
thinking-sphinx-3.0.5 lib/thinking_sphinx/real_time/populator.rb