Class: ClWiki::IndexClient

Inherits:
Object
  • Object
show all
Defined in:
lib/cl_wiki/index.rb

Instance Method Summary collapse

Constructor Details

#initialize(wiki_conf = $wiki_conf) ⇒ IndexClient

Returns a new instance of IndexClient.



304
305
306
307
308
309
310
311
312
313
314
315
# File 'lib/cl_wiki/index.rb', line 304

def initialize(wiki_conf=$wiki_conf)
  case wiki_conf.useIndex
    when ClWiki::Configuration::USE_INDEX_NO
      raise 'wikiConf.useIndex says to not use an index'
    when ClWiki::Configuration::USE_INDEX_DRB
      DRb.start_service()
      @indexer = DRbObject.new(nil, "druby://localhost:#{wiki_conf.indexPort}")
    when ClWiki::Configuration::USE_INDEX_LOCAL
      $indexer ||= ClWiki::Indexer.new(wiki_conf, wiki_conf.index_log_fn)
      @indexer = $indexer
  end
end

Instance Method Details

#add_hit(fullPageName) ⇒ Object



343
344
345
# File 'lib/cl_wiki/index.rb', line 343

def add_hit(fullPageName)
  @indexer.add_hit(fullPageName)
end

#hit_summary(start_index = 0, end_index = -1)) ⇒ Object



347
348
349
# File 'lib/cl_wiki/index.rb', line 347

def hit_summary(start_index=0, end_index=-1)
  @indexer.hit_summary(start_index, end_index)
end

#page_exists?(fullPageName) ⇒ Boolean

Returns:

  • (Boolean)


331
332
333
# File 'lib/cl_wiki/index.rb', line 331

def page_exists?(fullPageName)
  @indexer.page_exists?(fullPageName)
end

#recent(top = -1)) ⇒ Object



339
340
341
# File 'lib/cl_wiki/index.rb', line 339

def recent(top=-1)
  @indexer.recent(top)
end

#reindex_page(fullPageName) ⇒ Object



317
318
319
# File 'lib/cl_wiki/index.rb', line 317

def reindex_page(fullPageName)
  @indexer.reindex_and_save_async(fullPageName)
end

#search(term, titles_only = false) ⇒ Object



321
322
323
324
325
326
327
328
329
# File 'lib/cl_wiki/index.rb', line 321

def search(term, titles_only=false)
  hits = @indexer.search(term).flatten
  if titles_only
    hits.delete_if do |fullName|
      !(fullName =~ /#{term}/i)
    end
  end
  hits
end

#sort_hits_by_recent(hits, top = -1)) ⇒ Object



335
336
337
# File 'lib/cl_wiki/index.rb', line 335

def sort_hits_by_recent(hits, top=-1)
  @indexer.sort_hits_by_recent(hits, top)
end