Class: Promptmenot::PatternRegistry
- Inherits:
-
Object
- Object
- Promptmenot::PatternRegistry
- Includes:
- Enumerable
- Defined in:
- lib/promptmenot/pattern_registry.rb
Instance Method Summary collapse
- #categories ⇒ Object
- #clear ⇒ Object
- #each(&block) ⇒ Object
- #for_category(category) ⇒ Object
- #for_sensitivity(level) ⇒ Object
- #for_sensitivity_and_categories(sensitivity, categories: nil) ⇒ Object
-
#initialize ⇒ PatternRegistry
constructor
A new instance of PatternRegistry.
- #register(pattern) ⇒ Object
- #register_all(patterns) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize ⇒ PatternRegistry
Returns a new instance of PatternRegistry.
9 10 11 |
# File 'lib/promptmenot/pattern_registry.rb', line 9 def initialize @patterns = Set.new end |
Instance Method Details
#categories ⇒ Object
45 46 47 |
# File 'lib/promptmenot/pattern_registry.rb', line 45 def categories @patterns.map(&:category).uniq end |
#clear ⇒ Object
49 50 51 |
# File 'lib/promptmenot/pattern_registry.rb', line 49 def clear @patterns.clear end |
#each(&block) ⇒ Object
21 22 23 |
# File 'lib/promptmenot/pattern_registry.rb', line 21 def each(&block) @patterns.each(&block) end |
#for_category(category) ⇒ Object
33 34 35 |
# File 'lib/promptmenot/pattern_registry.rb', line 33 def for_category(category) @patterns.select { |p| p.category == category.to_sym } end |
#for_sensitivity(level) ⇒ Object
29 30 31 |
# File 'lib/promptmenot/pattern_registry.rb', line 29 def for_sensitivity(level) @patterns.select { |p| p.active_at?(level) } end |
#for_sensitivity_and_categories(sensitivity, categories: nil) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/promptmenot/pattern_registry.rb', line 37 def for_sensitivity_and_categories(sensitivity, categories: nil) filtered = for_sensitivity(sensitivity) return filtered unless categories category_syms = Array(categories).map(&:to_sym) filtered.select { |p| category_syms.include?(p.category) } end |
#register(pattern) ⇒ Object
13 14 15 |
# File 'lib/promptmenot/pattern_registry.rb', line 13 def register(pattern) @patterns.add(pattern) end |
#register_all(patterns) ⇒ Object
17 18 19 |
# File 'lib/promptmenot/pattern_registry.rb', line 17 def register_all(patterns) patterns.each { |p| register(p) } end |
#size ⇒ Object
25 26 27 |
# File 'lib/promptmenot/pattern_registry.rb', line 25 def size @patterns.size end |