Module: Flycal::DescriptionQuery
- Defined in:
- lib/flycal/description_query.rb
Overview
Shared helpers for --description filtering and --groupBy string patterns.
OR / group terms are separated by "|" (also ","). Matching is case-insensitive against event summary and description.
Class Method Summary collapse
- .match?(event_summary, event_description, query) ⇒ Boolean
- .match_term?(event_summary, event_description, term) ⇒ Boolean
- .patterns(query) ⇒ Object
Class Method Details
.match?(event_summary, event_description, query) ⇒ Boolean
15 16 17 18 19 20 21 22 |
# File 'lib/flycal/description_query.rb', line 15 def match?(event_summary, event_description, query) terms = patterns(query) return true if terms.empty? summary = event_summary.to_s.downcase description = event_description.to_s.downcase terms.any? { |term| summary.include?(term.downcase) || description.include?(term.downcase) } end |
.match_term?(event_summary, event_description, term) ⇒ Boolean
24 25 26 27 28 29 30 |
# File 'lib/flycal/description_query.rb', line 24 def match_term?(event_summary, event_description, term) needle = term.to_s.downcase return false if needle.empty? event_summary.to_s.downcase.include?(needle) || event_description.to_s.downcase.include?(needle) end |
.patterns(query) ⇒ Object
11 12 13 |
# File 'lib/flycal/description_query.rb', line 11 def patterns(query) query.to_s.split(/[|,]/).map(&:strip).reject(&:empty?) end |