- Notifications
You must be signed in to change notification settings - Fork12
Pipeline pattern for your jobs, tasks, etc.. (Golang)
License
izniburak/pipeline-go
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This package allows you to use the Pipeline pattern in your processes, and it's built upon the Chain of Responsibility (CoR) design pattern.
CoR is a behavioral design pattern that processes given data through a series of handlers. When a request reaches the pipe class, it processes the data and then forwards it to the next handler. The principle behind this pattern is straightforward.
In summary, the Pipeline is a design pattern tailored for managing sequential modifications to an object. Imagine it as an assembly line: each station represents a pipe, and by the end of the line, you're left with a transformed object.
go get github.com/izniburak/pipeline-go
package mainimport ("fmt""strings""github.com/izniburak/pipeline-go")typeUpperCasePipestruct{}func (u*UpperCasePipe)Handle(value pipeline.PipeValue,next pipeline.PipeNext) pipeline.PipeValue {// get valuetext:=value.(string)capitalized:=strings.ToUpper(text)returnnext(capitalized)}typeTrimSpacePipestruct{}func (t*TrimSpacePipe)Handle(value pipeline.PipeValue,next pipeline.PipeNext) pipeline.PipeValue {// get valuetext:=value.(string)trimmed:=strings.Trim(text," ")returnnext(trimmed)}funcmain() {text:=" buki.dev "pipes:= []pipeline.PipeInterface{new(UpperCasePipe),new(TrimSpacePipe),}result:=pipeline.Send(text).Through(pipes).ThenReturn()fmt.Println(result)// BUKI.DEV}
- Fork the repo (https://github.com/izniburak/pipeline-go/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- izniburak İzni Burak Demirtaş - creator, maintainer
The MIT License (MIT) - seelicense.md
for more details
About
Pipeline pattern for your jobs, tasks, etc.. (Golang)
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.