Class: ActiveFacet::Filter
- Inherits:
-
Object
- Object
- ActiveFacet::Filter
- Defined in:
- lib/active_facet/filter.rb
Class Method Summary collapse
-
.apply_globals_to(receiver) ⇒ Class
Register queued filters for given resource class.
-
.filterable?(receiver) ⇒ Boolean
Tells if any filters can be registered for the given resource class.
-
.register(receiver, filter_name, filter_method_name) ⇒ Class
Tells that the receiver class implements a filter.
-
.register_global(filter_name, filter_method) ⇒ Proc
Queues a filter to be applied to resource classes.
-
.registered_filters_for(receiver) ⇒ Hash
Returns the list of filters the resource class implements Memoized.
Class Method Details
.apply_globals_to(receiver) ⇒ Class
Register queued filters for given resource class
35 36 37 38 39 40 41 42 |
# File 'lib/active_facet/filter.rb', line 35 def self.apply_globals_to(receiver) raise ActiveFacet::Errors::ConfigurationError.new(ActiveFacet::Errors::ConfigurationError::ACTS_AS_ERROR_MSG) unless filterable?(receiver) global_filters.each do |filter_name, filter_method| filter_method_name = receiver.[:filter_method_name] receiver.send(filter_method_name, filter_name, filter_method) end receiver end |
.filterable?(receiver) ⇒ Boolean
Tells if any filters can be registered for the given resource class
58 59 60 |
# File 'lib/active_facet/filter.rb', line 58 def self.filterable?(receiver) receiver.ancestors.include? ActiveFacet::ActsAsActiveFacet end |
.register(receiver, filter_name, filter_method_name) ⇒ Class
Tells that the receiver class implements a filter
25 26 27 28 29 30 |
# File 'lib/active_facet/filter.rb', line 25 def self.register(receiver, filter_name, filter_method_name) raise ActiveFacet::Errors::ConfigurationError.new(ActiveFacet::Errors::ConfigurationError::ACTS_AS_ERROR_MSG) unless filterable?(receiver) receiver_filters = filters[receiver.name] ||= {} receiver_filters[filter_name.to_sym] = filter_method_name.to_sym receiver end |
.register_global(filter_name, filter_method) ⇒ Proc
Queues a filter to be applied to resource classes
16 17 18 |
# File 'lib/active_facet/filter.rb', line 16 def self.register_global(filter_name, filter_method) global_filters[filter_name.to_sym] = filter_method end |
.registered_filters_for(receiver) ⇒ Hash
Returns the list of filters the resource class implements Memoized
48 49 50 51 52 53 54 |
# File 'lib/active_facet/filter.rb', line 48 def self.registered_filters_for(receiver) registered_filters[receiver.name] ||= begin receiver_filters = filters[receiver.name] ||= {} receiver_filters.reverse_merge!(registered_filters_for(receiver.superclass)) if filterable?(receiver.superclass) receiver_filters end end |