module ShortFind
Constants
- VERSION
Public Class Methods
in_array(array)
click to toggle source
# File lib/short_find.rb, line 37 def self.in_array(array) r_format = "first" attr = "to_s" loop do input = get_input return if !input && @@back result = array.select do |element| element.downcase.gsub('ú', 'u').gsub(/[^a-z0-9]/,'').start_with?(input.downcase.gsub(/[^a-z0-9]/,'')) end output = test_result(result, r_format, attr) return output if output end end
in_hash(hash, by=:value)
click to toggle source
# File lib/short_find.rb, line 53 def self.in_hash(hash, by=:value) by = by.to_s r_format = "to_h" attr = "last" loop do input = get_input return if !input && @@back result = hash.select do |key, value| if by == "key" attr = "first" key.to_s.downcase.gsub('ú', 'u').gsub(/[^a-z0-9]/,'').start_with?(input.downcase.gsub(/[^a-z0-9]/,'')) elsif by == "value" value.downcase.gsub('ú', 'u').gsub(/[^a-z0-9]/,'').start_with?(input.downcase.gsub(/[^a-z0-9]/,'')) end end output = test_result(result, r_format, attr) return output if output end end
object(objects, attr=:name)
click to toggle source
# File lib/short_find.rb, line 21 def self.object(objects, attr=:name) attr = attr.to_s r_format = "first" loop do input = get_input return if !input && @@back result = objects.select do |object| object.public_send(attr).downcase.gsub('ú', 'u').gsub(/[^a-z0-9]/,'').start_with?(input.downcase.gsub(/[^a-z0-9]/,'')) end output = test_result(result, r_format, attr) return output if output end end
outs(boolean)
click to toggle source
# File lib/short_find.rb, line 16 def self.outs(boolean) @@back = boolean @@exit = boolean end
use_back(boolean)
click to toggle source
# File lib/short_find.rb, line 8 def self.use_back(boolean) @@back = boolean end
use_exit(boolean)
click to toggle source
# File lib/short_find.rb, line 12 def self.use_exit(boolean) @@exit = boolean end
Private Class Methods
get_input()
click to toggle source
# File lib/short_find.rb, line 77 def self.get_input input = gets.strip return if input == "back" && @@back exit if input == "exit" && @@exit input end
test_result(result, r_format, attr)
click to toggle source
# File lib/short_find.rb, line 84 def self.test_result(result, r_format, attr) if result.count == 0 puts "" puts "No match found" puts "Try again" elsif result.count == 1 return result.public_send(r_format) else puts "" puts "Multiple matches found" puts "" result.each do |result| puts result.public_send(attr) end puts "" puts "Try again" end end