Compare commits
No commits in common. "1809aed887a175a683b8e7117a26f418bf16c73e" and "e192181ac8dc1306d95d374df7fa1b36e3a5b8ba" have entirely different histories.
1809aed887
...
e192181ac8
8 changed files with 16 additions and 127 deletions
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
[![Go Report Card](https://goreportcard.com/badge/github.com/jakoubek/feragstring)](https://goreportcard.com/report/github.com/jakoubek/feragstring)
|
||||
|
||||
# feragstring
|
||||
|
||||
*feragstring* is a Go package for creating a FERAG string file programmatically. If you don't know what FERAG (the company) or a FERAG string is you probably don't need this package ;-)
|
||||
|
@ -81,7 +83,7 @@ feragString := fs.PrintOut()
|
|||
## Installation
|
||||
|
||||
```bash
|
||||
go get -u git.sr.ht/~jakoubek/feragstring
|
||||
go get -u github.com/jakoubek/feragstring
|
||||
```
|
||||
|
||||
## Need commercial support?
|
||||
|
|
2
ferag.go
2
ferag.go
|
@ -84,10 +84,8 @@ func (fs *FeragString) PrintOut() string {
|
|||
// AddProductReference adds a Product Reference instance to the list
|
||||
// of product references of the FeragString
|
||||
func (fs *FeragString) AddProductReference(pr *ProductReference) error {
|
||||
if pr.productReferenceNumber == 0 {
|
||||
fs.ProductReferencesNr++
|
||||
pr.SetProductReferenceNumber(fs.ProductReferencesNr)
|
||||
}
|
||||
if pr.productReferenceNumber == 1 && pr.productUsageType == 0 {
|
||||
pr.SetProductUsageType(1)
|
||||
}
|
||||
|
|
2
go.mod
2
go.mod
|
@ -1,3 +1,3 @@
|
|||
module git.sr.ht/~jakoubek/feragstring
|
||||
module github.com/jakoubek/feragstring
|
||||
|
||||
go 1.14
|
||||
|
|
|
@ -31,9 +31,6 @@ func NewMissingParameter(missingRate, missingSize int) MissingParameter {
|
|||
}
|
||||
|
||||
func (pr *ProductReference) IssueReference() string {
|
||||
if pr.issueReference == "" {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf("+99195%-8s", pr.issueReference)
|
||||
}
|
||||
|
||||
|
@ -50,7 +47,7 @@ func (pr *ProductReference) SetMissingParameter(missingParameter MissingParamete
|
|||
}
|
||||
|
||||
func (pr *ProductReference) Scatter() string {
|
||||
return fmt.Sprintf("+99276%06d", pr.scatter)
|
||||
return fmt.Sprintf("+99102%06d", pr.scatter)
|
||||
}
|
||||
|
||||
func (pr *ProductReference) SetScatter(scatter int) {
|
||||
|
@ -122,17 +119,13 @@ func (pr *ProductReference) SetProductName(productName string) {
|
|||
}
|
||||
|
||||
func (pr *ProductReference) ProductReferenceNumber() string {
|
||||
return fmt.Sprintf("+99141%03d", pr.productReferenceNumber)
|
||||
return fmt.Sprintf("+41%02d", pr.productReferenceNumber)
|
||||
}
|
||||
|
||||
func (pr *ProductReference) SetProductReferenceNumber(productReferenceNumber int) {
|
||||
pr.productReferenceNumber = productReferenceNumber
|
||||
}
|
||||
|
||||
func (pr *ProductReference) GetProductReferenceNumber() int {
|
||||
return pr.productReferenceNumber
|
||||
}
|
||||
|
||||
func NewProductReference() *ProductReference {
|
||||
pr := ProductReference{
|
||||
FeragMessage: FeragMessage{"2450", "!"},
|
||||
|
@ -154,7 +147,7 @@ func (pr *ProductReference) Payload() string {
|
|||
data += pr.Supervision()
|
||||
data += pr.Overlap()
|
||||
data += pr.FeedingMode()
|
||||
//data += pr.Scatter()
|
||||
data += pr.Scatter()
|
||||
data += pr.MissingParameter()
|
||||
data += pr.IssueReference()
|
||||
return data
|
||||
|
|
|
@ -2,25 +2,15 @@ package feragstring
|
|||
|
||||
import "fmt"
|
||||
|
||||
// ProductionDrop is the struct for one production drop
|
||||
// underneath a route
|
||||
type ProductionDrop struct {
|
||||
FeragMessage
|
||||
agentName string
|
||||
numberOfCopies int
|
||||
ControlCharacters ControlCharacterSet
|
||||
limit int
|
||||
maxStack int
|
||||
standard int
|
||||
parameterN int
|
||||
maxBundle int
|
||||
parameterSz int
|
||||
dontProduce bool
|
||||
topsheetData string
|
||||
productReferenceNumbers []int
|
||||
}
|
||||
|
||||
// TopsheetData returns the formatted topsheet data segment
|
||||
func (pd *ProductionDrop) TopsheetData() string {
|
||||
if pd.topsheetData == "" {
|
||||
return ""
|
||||
|
@ -40,95 +30,30 @@ func (pd *ProductionDrop) TopsheetData() string {
|
|||
return message(&fm, tsdSegment)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) MaxBundle() string {
|
||||
return fmt.Sprintf("+34%04d", pd.maxBundle)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) SetMaxBundle(maxBundle int) {
|
||||
pd.maxBundle = maxBundle
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) ParameterN() string {
|
||||
return fmt.Sprintf("+33%04d", pd.parameterN)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) SetParameterN(parameterN int) {
|
||||
pd.parameterN = parameterN
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) Standard() string {
|
||||
return fmt.Sprintf("+32%04d", pd.standard)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) SetStandard(standard int) {
|
||||
pd.standard = standard
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) MaxStack() string {
|
||||
return fmt.Sprintf("+31%04d", pd.maxStack)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) SetMaxStack(maxStack int) {
|
||||
pd.maxStack = maxStack
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) Limit() string {
|
||||
return fmt.Sprintf("+30%04d", pd.limit)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) SetLimit(limit int) {
|
||||
pd.limit = limit
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) ParameterSz() string {
|
||||
return fmt.Sprintf("+35%04d", pd.parameterSz)
|
||||
}
|
||||
|
||||
func (pd *ProductionDrop) SetParameterSz(parameterSz int) {
|
||||
pd.parameterSz = parameterSz
|
||||
}
|
||||
|
||||
// SetTopsheetData sets the topsheet data to a given string
|
||||
func (pd *ProductionDrop) SetTopsheetData(topsheetData string) {
|
||||
pd.topsheetData = topsheetData
|
||||
}
|
||||
|
||||
// ProductReferenceNumbers returns the string of TSL-formatted ProductReferenceNumbers
|
||||
func (pd *ProductionDrop) ProductReferenceNumbers() string {
|
||||
var prreffmt string
|
||||
for _, pr := range pd.productReferenceNumbers {
|
||||
prreffmt += fmt.Sprintf("+99141%03d", pr)
|
||||
}
|
||||
return prreffmt
|
||||
func (pd *ProductionDrop) SetDontProduce() {
|
||||
pd.dontProduce = true
|
||||
}
|
||||
|
||||
// AddProductReferenceNumber adds a numeric ProductReferenceNumber to the production drop
|
||||
func (pd *ProductionDrop) AddProductReferenceNumber(productReferenceNumber int) {
|
||||
pd.productReferenceNumbers = append(pd.productReferenceNumbers, productReferenceNumber)
|
||||
}
|
||||
|
||||
// NumberOfCopies returns the formatted number of copies in the route
|
||||
func (pd *ProductionDrop) NumberOfCopies() string {
|
||||
return fmt.Sprintf("+13%05d", pd.numberOfCopies)
|
||||
}
|
||||
|
||||
// SetNumberOfCopies sets the number of copies in the production drop
|
||||
func (pd *ProductionDrop) SetNumberOfCopies(numberOfCopies int) {
|
||||
pd.numberOfCopies = numberOfCopies
|
||||
}
|
||||
|
||||
// AgentName returns the formatted agent name
|
||||
func (pd *ProductionDrop) AgentName() string {
|
||||
return fmt.Sprintf("+12%-10s", pd.agentName)
|
||||
}
|
||||
|
||||
// SetAgentName sets the agent name to a given string
|
||||
func (pd *ProductionDrop) SetAgentName(agentName string) {
|
||||
pd.agentName = agentName
|
||||
}
|
||||
|
||||
// NewProductionDrop instantiates a new production drop
|
||||
// struct and returns a pointer to it.
|
||||
func NewProductionDrop() *ProductionDrop {
|
||||
pd := ProductionDrop{
|
||||
FeragMessage: FeragMessage{
|
||||
|
@ -140,24 +65,13 @@ func NewProductionDrop() *ProductionDrop {
|
|||
return &pd
|
||||
}
|
||||
|
||||
// Payload returns the formatted FERAG string
|
||||
// for embedding in the message
|
||||
func (pd *ProductionDrop) Payload() string {
|
||||
data := pd.AgentName()
|
||||
data += pd.NumberOfCopies()
|
||||
data += pd.ControlCharacters.GetControlCharactersMessage()
|
||||
data += pd.Limit()
|
||||
data += pd.MaxStack()
|
||||
data += pd.Standard()
|
||||
data += pd.ParameterN()
|
||||
data += pd.MaxBundle()
|
||||
data += pd.ParameterSz()
|
||||
data += pd.ProductReferenceNumbers()
|
||||
return data
|
||||
}
|
||||
|
||||
// Message returns the formatted FERAG string
|
||||
// for the production drop
|
||||
func (pd *ProductionDrop) Message() string {
|
||||
message := pd.FeragMessage.MessageTemplate()
|
||||
return message(&pd.FeragMessage, pd.Payload())
|
||||
|
|
4
route.go
4
route.go
|
@ -117,10 +117,6 @@ func (ri *Route) SetTopsheetTemplateDirectory(topsheetTemplateDirectory int) {
|
|||
ri.topsheetTemplateDirectory = topsheetTemplateDirectory
|
||||
}
|
||||
|
||||
func (ri *Route) SetEditionName(editionName string) {
|
||||
ri.editionName = editionName
|
||||
}
|
||||
|
||||
func NewRoute() *Route {
|
||||
r := Route{
|
||||
rampNumber: -1,
|
||||
|
|
|
@ -11,7 +11,6 @@ type TitleInfo struct {
|
|||
printObjectName string
|
||||
titleName string
|
||||
publicationDate time.Time
|
||||
issueReference string
|
||||
countryCode string
|
||||
printObjectColor string
|
||||
additionalInfo string
|
||||
|
@ -98,24 +97,12 @@ func (ti *TitleInfo) Payload() string {
|
|||
data := ti.PrintObjectName()
|
||||
data += ti.TitleName()
|
||||
data += ti.PublicationDate()
|
||||
data += ti.IssueReference()
|
||||
data += ti.CountryCode()
|
||||
data += ti.PrintObjectColor()
|
||||
data += ti.AdditionalInfo()
|
||||
return data
|
||||
}
|
||||
|
||||
func (ti *TitleInfo) SetIssueReference(issueReference string) {
|
||||
ti.issueReference = issueReference
|
||||
}
|
||||
|
||||
func (ti *TitleInfo) IssueReference() string {
|
||||
if ti.issueReference == "" {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf("+99195%8s", ti.issueReference)
|
||||
}
|
||||
|
||||
// PrintObjectName returns the print object name segment (+93) FERAG-formatted
|
||||
func (ti *TitleInfo) PrintObjectName() string {
|
||||
if ti.printObjectName == "" {
|
||||
|
|
Loading…
Reference in a new issue