module SearchDisplay

Public Instance Methods

check_for_title(line) click to toggle source
# File lib/models/utils/searchfile.rb, line 5
def check_for_title(line)
        line.match(/\*\*\*\* Snippet \d+:/)
end
delete(file, ids) click to toggle source
# File lib/models/utils/searchfile.rb, line 62
def delete(file, ids)
      return_search_results(file).reject do |snip|
              ids.include?(snip.match(/\*\*\*\* Snippet (\d+):/).captures[0])
      end
end
divide_snips(file) click to toggle source
# File lib/models/utils/searchfile.rb, line 18
def divide_snips(file)
      snip_array = []
      snip_str = ""
  File.open(file, "r").each do |line|
      if check_for_title(line)
            snip_array << snip_str
             snip_str = line
          else
            snip_str << line
          end
  end
  snip_array << snip_str
  snip_array.shift # todo: check on this
  snip_array
end
return_search_results(file,text=nil,ext=nil) click to toggle source
# File lib/models/utils/searchfile.rb, line 9
    def return_search_results(file,text=nil,ext=nil)
search_results = search_snips(divide_snips(file), text, ext)
            if search_results.any?
                     search_results
            else
                    ViewFormatter.no_results
            end
    end
search_snips(array,text,ext) click to toggle source
# File lib/models/utils/searchfile.rb, line 34
def search_snips(array,text,ext)
      array.select do |snip|
    if ext
      includes_ext = (snip.include?("(.#{ext})") || snip.include?(".#{ext}:"))
    else
      includes_ext = true
    end
    # matches either clipboard or normal formatting
    if text
      includes_text = smart_text_search_results?(snip, text)
    else
      includes_text = true
    end
    includes_ext && includes_text
  end
end
smart_text_search_results?(snip, text) click to toggle source
# File lib/models/utils/searchfile.rb, line 51
def smart_text_search_results?(snip, text)
  snip = snip.downcase
  words_arr = text.split(" ")
  words_arr.each do |word|
    unless snip.include?(word.downcase)
      return false
    end
  end
  true
end