Module: Unitwise::Search

Defined in:
lib/unitwise/search.rb

Overview

The search module provides a simple search mechanism around known basic units. The full list of avaliable units infinite, so this search creates a small subset of atoms and prefixes to help users find what they are looking for. Thus, there is a multitude of valid units that may be constructed that this module will not be aware of.

Class Method Summary collapse

Class Method Details

.allArray

An abbreviated list of possible units. These are known combinations of atoms and prefixes.



13
14
15
16
17
18
19
20
21
22
# File 'lib/unitwise/search.rb', line 13

def all
  @all ||= begin
    units = []
    Atom.all.each do |a|
      units << build(a)
      Unitwise::Prefix.all.each { |p| units << build(a, p) } if a.metric?
    end
    units
  end
end

.search(term) ⇒ Array

Search the list of known units for a match.



28
29
30
31
32
# File 'lib/unitwise/search.rb', line 28

def search(term)
  all.select do |unit|
    unit.aliases.any? { |str| Regexp.new(term).match(str) }
  end
end