Skip to content

Commit b781284

Browse files
committed
Replace struct with function
1 parent 22ce540 commit b781284

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

refactoring/theatre/statement.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func (s StatementPrinter) Print(invoice Invoice, plays map[string]Play) (string,
5454
statementData.totalAmount = s.totalAmount(statementData)
5555
statementData.totalVolumeCredits = s.totalVolumeCredits(statementData)
5656

57-
return PlainTextStatement{statementData}.Render(), nil
57+
return renderPlainText(statementData), nil
5858
}
5959

6060
func (StatementPrinter) totalVolumeCredits(data StatementData) int {
@@ -121,35 +121,31 @@ func (StatementPrinter) amountFor(aPerformance EnrichedPerformance) (int, error)
121121
return result, nil
122122
}
123123

124-
type PlainTextStatement struct {
125-
data StatementData
126-
}
127-
128124
type StatementData struct {
129125
Customer string
130126
Performances []EnrichedPerformance
131127
totalAmount int
132128
totalVolumeCredits int
133129
}
134130

135-
func (s PlainTextStatement) Render() string {
136-
result := fmt.Sprintf("Statement for %s\n", s.data.Customer)
131+
func renderPlainText(data StatementData) string {
132+
result := fmt.Sprintf("Statement for %s\n", data.Customer)
137133

138-
for _, perf := range s.data.Performances {
134+
for _, perf := range data.Performances {
139135
result += fmt.Sprintf(
140136
" %s: %s (%d seats)\n",
141137
perf.play.Name,
142-
s.usd(perf.amount),
138+
usd(perf.amount),
143139
perf.Audience,
144140
)
145141
}
146142

147-
result += fmt.Sprintf("Amount owed is %s\n", s.usd(s.data.totalAmount))
148-
result += fmt.Sprintf("You earned %d credits\n", s.data.totalVolumeCredits)
143+
result += fmt.Sprintf("Amount owed is %s\n", usd(data.totalAmount))
144+
result += fmt.Sprintf("You earned %d credits\n", data.totalVolumeCredits)
149145
return result
150146
}
151147

152-
func (PlainTextStatement) usd(number int) string {
148+
func usd(number int) string {
153149
ac := accounting.Accounting{Symbol: "$", Precision: 2}
154150
return ac.FormatMoney(number / 100)
155151
}

0 commit comments

Comments
 (0)