module Sheng::Filters

Public Class Methods

filter_for(filter_string) click to toggle source
# 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
registry() click to toggle source
# File lib/sheng/filters.rb, line 6
def registry
  @registry ||= {}
end