Sha256: 5aa4027635ac5db4135044250826ac8924bf66678da78bf169f79d1309c1eef7
Contents?: true
Size: 984 Bytes
Versions: 2
Compression:
Stored size: 984 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.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.key?(name) @registry[name] else fail "transformer `#{name}` is not installed" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
munge-0.5.0 | lib/munge/core/alterant.rb |
munge-0.5.0.beta1 | lib/munge/core/alterant.rb |