Class: RightSupport::Notifier::Blacklister::SnakeCase
- Defined in:
- lib/right_support/notifiers/blacklisters/snake_case.rb
Overview
implements a blacklister that matches snake_case keys.
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
- .normalize_keys(keys) ⇒ Object
-
.to_snake_case(key) ⇒ Object
converts a key (field name) to snake_case.
Instance Method Summary collapse
-
#filter(data) ⇒ Object
implements RightSupport::Notifier::Blacklister::Base#filter.
-
#initialize(keys, options = {}) ⇒ SnakeCase
constructor
A new instance of SnakeCase.
Constructor Details
#initialize(keys, options = {}) ⇒ SnakeCase
Returns a new instance of SnakeCase.
32 33 34 35 |
# File 'lib/right_support/notifiers/blacklisters/snake_case.rb', line 32 def initialize(keys, = {}) super() @keys = ::RightSupport::Notifier::Blacklister::SnakeCase.normalize_keys(keys) end |
Class Method Details
.normalize_keys(keys) ⇒ Object
48 49 50 |
# File 'lib/right_support/notifiers/blacklisters/snake_case.rb', line 48 def self.normalize_keys(keys) ::Set.new(Array(keys).map(&self.method(:to_snake_case))) end |
.to_snake_case(key) ⇒ Object
converts a key (field name) to snake_case
53 54 55 56 57 58 |
# File 'lib/right_support/notifiers/blacklisters/snake_case.rb', line 53 def self.to_snake_case(key) key.to_s. gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2'). gsub(/([a-z])([A-Z])/, '\1_\2'). downcase end |
Instance Method Details
#filter(data) ⇒ Object
implements RightSupport::Notifier::Blacklister::Base#filter
38 39 40 41 42 43 44 45 |
# File 'lib/right_support/notifiers/blacklisters/snake_case.rb', line 38 def filter(data) data.keys.each do |key| if @keys.include?(self.class.to_snake_case(key)) data[key] = replacement_value end end true end |