Skip to content

Commit 9eef451

Browse files
committed
Use custom type for file parts
1 parent 45e452c commit 9eef451

File tree

3 files changed

+19
-22
lines changed

3 files changed

+19
-22
lines changed

src/UniqueFileGenerator.Console/Io.fs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,16 @@ module Io =
9090

9191
let generateFiles (args: Args) =
9292
let count, prefix, baseLength, extension, outputDir, size, delay =
93-
(args.FileCount,
94-
args.Options.Prefix,
95-
args.Options.NameBaseLength,
96-
args.Options.Extension,
97-
args.Options.OutputDirectory,
98-
args.Options.Size,
99-
args.Options.Delay)
93+
args.FileCount,
94+
args.Options.Prefix,
95+
args.Options.NameBaseLength,
96+
args.Options.Extension,
97+
args.Options.OutputDirectory,
98+
args.Options.Size,
99+
args.Options.Delay
100100

101101
let updateFileName baseName =
102-
baseName
103-
|> toFileName prefix extension
102+
toFileName { Prefix = prefix; BaseName = baseName; Extension = extension }
104103

105104
let sleep (ms: int) x =
106105
Thread.Sleep ms
@@ -114,5 +113,5 @@ module Io =
114113
|> printResult
115114

116115
generateMultiple baseLength count
117-
|> Array.map updateFileName
118-
|> Array.iter writeFile
116+
|> Array.map updateFileName
117+
|> Array.iter writeFile

src/UniqueFileGenerator.Console/StringGeneration.fs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ namespace UniqueFileGenerator.Console
33
open System
44

55
module StringGeneration =
6+
type FileNameParts = { Prefix: string; BaseName: string; Extension: string; }
7+
68
let private charBank =
79
[ 'A' .. 'Z' ] @ [ 'a' .. 'z' ] @ [ '0' .. '9' ]
810
|> List.map string
@@ -17,14 +19,14 @@ module StringGeneration =
1719
let generateMultiple itemLength count : string array =
1820
Array.init count (fun _ -> generateSingle itemLength)
1921

20-
let toFileName (prefix: string) (extension: string) (baseName: string) : string =
22+
let toFileName parts : string =
2123
let safeExtension =
22-
match extension.Trim() with
24+
match parts.Extension.Trim() with
2325
| ext when String.IsNullOrWhiteSpace ext -> String.Empty
2426
| ext when ext.StartsWith '.' -> ext
2527
| ext -> $".%s{ext}"
2628

27-
$"%s{prefix}%s{baseName}%s{safeExtension}"
29+
$"%s{parts.Prefix.Trim()}%s{parts.BaseName}%s{safeExtension}"
2830

2931
let generateFileContent sizeInBytes fallback : string =
3032
sizeInBytes

src/UniqueFileGenerator.Tests/StringGenerationTests.fs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ module FileNames =
5050

5151
let fileNames =
5252
generated
53-
|> Array.map (fun x ->
54-
x |> toFileName prefix extension)
53+
|> Array.map (fun x -> toFileName { Prefix = prefix; BaseName = x; Extension = extension })
5554

5655
Assert.Equal<string[]>(generated, fileNames)
5756

@@ -63,8 +62,7 @@ module FileNames =
6362

6463
let fileNames =
6564
generated
66-
|> Array.map (fun x ->
67-
x |> toFileName prefix extension)
65+
|> Array.map (fun x -> toFileName { Prefix = prefix; BaseName = x; Extension = extension })
6866

6967
Assert.True(fileNames |> Array.forall (fun x -> x.StartsWith prefix))
7068

@@ -76,8 +74,7 @@ module FileNames =
7674

7775
let fileNames =
7876
generated
79-
|> Array.map (fun x ->
80-
x |> toFileName prefix extension)
77+
|> Array.map (fun x -> toFileName { Prefix = prefix; BaseName = x; Extension = extension })
8178

8279
Assert.True(fileNames |> Array.forall (fun x -> x.EndsWith extension))
8380

@@ -89,8 +86,7 @@ module FileNames =
8986

9087
let fileNames =
9188
generated
92-
|> Array.map (fun x ->
93-
x |> toFileName prefix extension)
89+
|> Array.map (fun x -> toFileName { Prefix = prefix; BaseName = x; Extension = extension })
9490

9591
Assert.True(fileNames |> Array.forall (fun x -> x.StartsWith prefix))
9692
Assert.True(fileNames |> Array.forall (fun x -> x.EndsWith extension))

0 commit comments

Comments
 (0)