Module: Macaroni::Plugin::Filter

Defined in:
lib/macaroni/plugin/filter.rb,
lib/macaroni/plugin/filter/base.rb,
lib/macaroni/plugin/filter/deduped.rb

Defined Under Namespace

Classes: Base, Deduped

Class Method Summary collapse

Class Method Details

.const_missing(name) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/macaroni/plugin/filter.rb', line 7

def self.const_missing(name)
  method_name = name.to_s.
                gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
                gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").
                downcase
  klass = Class.new(Base) do
    define_method :exec do |data|
      data.send(method_name, *@args, &@block)
    end
  end
  const_set(name, klass)
end