Sha256: 406add645d61a49e47bdd8da86603025818722d0ad68bbda4c0fb78953981e5e
Contents?: true
Size: 1.08 KB
Versions: 2
Compression:
Stored size: 1.08 KB
Contents
module ActsAsFilterable module ActiveRecordExt module Base def self.included(klazz) klazz.extend ClassMethods klazz.before_validation :apply_filters end private module ClassMethods def filter_for_digits(*args) filtered_attributes[:digits] |= args unless args.empty? end def filters @filters ||= returning(Hash.new([])) do |f| f[:digits] = /[^\d]*/ end.freeze end def filtered_attributes @filtered_attributes ||= Hash.new [] end end protected def apply_filters self.class.filtered_attributes.each do |key, value| value.each do |attr| apply_filter self.class.filters[key], attr end end end private def apply_filter(filter, attr) if not send(attr).blank? and send(attr).is_a?(String) send(attr).gsub!(filter, "") end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rares-acts_as_filterable-0.1.3 | lib/acts_as_filterable/base.rb |
rares-acts_as_filterable-0.1.4 | lib/acts_as_filterable/base.rb |