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