Esempio n. 1
0
            public void transforms_compound_tokens()
            {
                var transformer = new CompoundStreamTransformer(new [] { new TokenStreamTransformer("i", "u"), new TokenStreamTransformer("F", "B") });
                var result      = transformer.Transform("Fizz".ToStream()).ReadAsString();

                Assert.Equal("Buzz", result);
            }
Esempio n. 2
0
        protected virtual IEnumerable <Operation> BuildOperations(OperationStep step, ScaffoldOperationConfiguration configuration, SourcingContext context)
        {
            var source          = step.GetSource(configuration);
            var sourcingResults = source.Generate(context);

            foreach (var result in sourcingResults)
            {
                var destinationFilename = result.FileName;
                var destinationFilepath = result.FilePath;
                var streamTransformers  = new List <IStreamTransformer>();

                foreach (var transformer in configuration.GlobalTransformers.Union(step.GetTransformers()))
                {
                    destinationFilepath = transformer.TransformFilename(destinationFilepath);
                    destinationFilename = transformer.TransformFilename(destinationFilename);
                    streamTransformers.Add(transformer.CreateStreamTransformer());
                }

                var actualTransformer = new CompoundStreamTransformer(streamTransformers);

                var persistenceContext = new PersistenceContext()
                {
                    FilePath        = destinationFilepath,
                    Filename        = destinationFilename,
                    TargetDirectory = context.TargetRoot
                };

                foreach (var emitter in step.GetEmitters())
                {
                    foreach (var actualEmitter in  emitter.CreatePersisters(persistenceContext))
                    {
                        yield return(new Operation(result.Provider, actualTransformer, actualEmitter));
                    }
                }
            }
        }