Module: Awesome::Definitions::Filters::ClassMethods
- Defined in:
- lib/awesome/definitions/filters.rb
Instance Method Summary collapse
- #get_class_for_filter(filter) ⇒ Object
- #get_filter_modifiers(anytext, filter = nil) ⇒ Object
- #get_search_filter_from_modifier(mod) ⇒ Object
- #search_filter_keys(symring = true) ⇒ Object
- #search_filter_modifiers(symring = true) ⇒ Object
- #search_filter_modifiers_regex(whitespace = false) ⇒ Object
- #search_filters_enabled ⇒ Object
-
#valid_filter_modifiers(anytext, filter) ⇒ Object
filter param is an array of filters.
Instance Method Details
#get_class_for_filter(filter) ⇒ Object
17 18 19 |
# File 'lib/awesome/definitions/filters.rb', line 17 def get_class_for_filter(filter) self.get_class(self.search_filters[:search_filters_to_classes][filter]) end |
#get_filter_modifiers(anytext, filter = nil) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/awesome/definitions/filters.rb', line 50 def get_filter_modifiers(anytext, filter = nil) mods = anytext.scan(self.search_filter_modifiers_regex(false)).flatten.compact #If no filter mods are in the search string then the filter requested is valid so we pretend it was requested as a modifier mods = !filter.blank? && mods.empty? ? [self.make_symring(filter)] : mods #mods = (self.search_filter_modifiers & mods) | filter puts "get_filter_modifiers #{mods.reject {|x| x == ''}.inspect}" if self.verbose_filters mods.reject {|x| x == ''} end |
#get_search_filter_from_modifier(mod) ⇒ Object
59 60 61 |
# File 'lib/awesome/definitions/filters.rb', line 59 def get_search_filter_from_modifier(mod) self.search_filters[:filter_modifiers_to_search_filters][mod] end |
#search_filter_keys(symring = true) ⇒ Object
21 22 23 |
# File 'lib/awesome/definitions/filters.rb', line 21 def search_filter_keys(symring = true) self.search_filters[:search_filters_to_filter_modifiers].map {|k,v| symring ? k : self.unmake_symring(k)} end |
#search_filter_modifiers(symring = true) ⇒ Object
25 26 27 28 |
# File 'lib/awesome/definitions/filters.rb', line 25 def search_filter_modifiers(symring = true) # Needs to be flattened because the values are arrays self.search_filters[:search_filters_to_filter_modifiers].map {|k,v| symring ? v : self.unmake_symring(v)}.flatten end |
#search_filter_modifiers_regex(whitespace = false) ⇒ Object
63 64 65 |
# File 'lib/awesome/definitions/filters.rb', line 63 def search_filter_modifiers_regex(whitespace = false) self.modifier_regex_from_array(self.search_filter_modifiers, whitespace) end |
#search_filters_enabled ⇒ Object
13 14 15 |
# File 'lib/awesome/definitions/filters.rb', line 13 def search_filters_enabled self.search_filter_keys(false) end |
#valid_filter_modifiers(anytext, filter) ⇒ Object
filter param is an array of filters
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/awesome/definitions/filters.rb', line 31 def valid_filter_modifiers(anytext, filter) # Weed out invalid filter requests puts "checking valid_filter_modifiers: #{anytext}, filter: #{filter.inspect}" if self.verbose_filters # We do not make_symring for two reasons: # 1. people will use whatever kind of filter value they need, and ruby can compare it. # 2. the filter param is an array # #filter = self.make_symring(filter) # Weed out invalid filter requests allowed = (self.search_filter_keys & filter) return false if !filter.empty? && allowed.empty? valid_filter_mods = self.get_filter_modifiers(anytext, allowed) valid_search_filters = valid_filter_mods.map do |fmod| puts "filter mod #{fmod.inspect} => #{self.search_filters[:filter_modifiers_to_search_filters][fmod]}" if self.verbose_filters self.search_filters[:filter_modifiers_to_search_filters][fmod] end.compact puts "valid_filter_modifiers: #{valid_search_filters.inspect}" if self.verbose_filters return valid_search_filters end |