Sha256: 09bb38b384b27f02638111b28ec5f3c5b478091962217630656cbb010712e008
Contents?: true
Size: 992 Bytes
Versions: 1
Compression:
Stored size: 992 Bytes
Contents
module Munge module Core class Alterant def initialize(scope:) @scope = scope @registry = {} end def register(transformer) register_manually(transformer.name, transformer) end # name should be snake_case Symbol def register_manually(name, transformer) if @registry.has_key?(name) fail "already registered transformer `#{name}`" else @registry[name] = transformer end end def transform(item) item.transforms .map { |name, args| [get_transformer(name), args] } .inject(item.content) do |content, params| transformer, args = params transformer.call(item, content, *args) end end private def get_transformer(name) if @registry.has_key?(name) @registry[name] else fail "transformer `#{name}` is not installed" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
munge-0.4.0 | lib/munge/core/alterant.rb |