class SearchIndex

Attributes

index[R]

Public Class Methods

new(all_items) click to toggle source
# File lib/coursegen/course/lib/search_data_generator.rb, line 3
def initialize all_items
  all_citems = all_items.map { |itm| Toc.instance.n2c(itm) }
  @index = all_citems.select { |citem| include_in_index? (citem)}.map do
    |item|
      nok_parse = Nokogiri::HTML(all_items[item.identifier].compiled_content).at('body')
      nok_parse_inner_text = nok_parse.nil? ? "" : nok_parse.inner_text
      { title:  clean_string(item.title),
        text:   clean_string(nok_parse_inner_text),
        tags:   "",
        loc:  all_items[item.identifier].reps[:default].path }
  end
end

Public Instance Methods

clean_string(str) click to toggle source
# File lib/coursegen/course/lib/search_data_generator.rb, line 16
def clean_string str
  str.nil? ? "" : str.gsub(/(\s+|\"|\“|\”)/, " ")
end
include_in_index?(citem) click to toggle source
# File lib/coursegen/course/lib/search_data_generator.rb, line 20
def include_in_index?(citem)
  skiplist = Regexp.union([/\/tipuesearch\/.*/, /\/bootstrap\/.*/, /\/config\/.*/, /\/tipuesearch\/.*/])
  citem.type == "page" &&
    !citem.nitem.binary? &&
    !citem.identifier.to_s.match(skiplist)
end