Module: Sheng::Filters

Defined in:
lib/sheng/filters.rb,
lib/sheng/filters/base.rb,
lib/sheng/filters/string_filter.rb,
lib/sheng/filters/numeric_filter.rb,
lib/sheng/filters/currency_formatting_filter.rb

Defined Under Namespace

Classes: Base, CurrencyFormattingFilter, NumericFilter, StringFilter, UnsupportedFilterError

Class Method Summary collapse

Class Method Details

.filter_for(filter_string) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/sheng/filters.rb', line 10

def filter_for(filter_string)
  filter_method, args_list = filter_string.split(/[\(\)]/)
  args = (args_list || "").split(/\s*,\s*/).map { |arg| Sheng::Support.typecast_numeric(arg) }
  filter_class = registry[filter_method.to_sym]
  raise UnsupportedFilterError.new(filter_string) unless filter_class
  filter_class.new(method: filter_method, arguments: args)
end

.registryObject



6
7
8
# File 'lib/sheng/filters.rb', line 6

def registry
  @registry ||= {}
end