Module: Kward::TextMatcher
- Defined in:
- lib/kward/text_matcher.rb
Overview
Allocation-conscious text matching helpers shared by interactive search UI.
Class Method Summary collapse
- .subsequence?(value, query, pattern = subsequence_pattern(query)) ⇒ Boolean
- .subsequence_pattern(query) ⇒ Object
Class Method Details
.subsequence?(value, query, pattern = subsequence_pattern(query)) ⇒ Boolean
12 13 14 15 16 |
# File 'lib/kward/text_matcher.rb', line 12 def subsequence?(value, query, pattern = subsequence_pattern(query)) text = value.to_s needle = query.to_s needle.empty? || text.match?(pattern) end |
.subsequence_pattern(query) ⇒ Object
7 8 9 10 |
# File 'lib/kward/text_matcher.rb', line 7 def subsequence_pattern(query) source = query.to_s.each_char.map { |character| Regexp.escape(character) }.join(".*") Regexp.new(source, Regexp::MULTILINE) end |