Sha256: 7ed9af5f03fc7b6654d29471c870a329afe9c64ab1d144fb82dee3d410815230
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
module Munge module Core class Transform def initialize(source_path, layouts_path, global_data, source) @scope_factory = Core::TransformScopeFactory.new( source_path, layouts_path, global_data, source, Munge::Helper ) end def call(item) item.transforms .map { |name, args| [resolve_transformer(name), args] } .inject(item.content) do |content, params| transformer, args = params t = transformer.new(@scope_factory) t.call(item, content, *args) end end def resolve_transformer(identifier) resolver = proc do |name| if Munge::Transformer.constants.include?(name) return Munge::Transformer.const_get(name) end end resolver.call(identifier.to_sym) resolver.call(underscore_to_camel(identifier.to_s).to_sym) end private def underscore_to_camel(string) string .split("_") .map(&:capitalize) .join("") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
munge-0.2.0 | lib/munge/core/transform.rb |