From 220a6c724864350cc3e85ec4e312589d212ba500 Mon Sep 17 00:00:00 2001 From: "OPTIMUS-PRIME\\craig" Date: Mon, 3 Sep 2018 17:53:57 +0100 Subject: [PATCH] refactor draw-image to parse the overlay param's. --- SmoulderingBeachBallCLI/ConsoleCommands.fs | 28 ++-------------- SmoulderingBeachBallCLI/Validation.fs | 38 +++++++++++----------- 2 files changed, 21 insertions(+), 45 deletions(-) diff --git a/SmoulderingBeachBallCLI/ConsoleCommands.fs b/SmoulderingBeachBallCLI/ConsoleCommands.fs index a8479b8..3d35c43 100644 --- a/SmoulderingBeachBallCLI/ConsoleCommands.fs +++ b/SmoulderingBeachBallCLI/ConsoleCommands.fs @@ -12,13 +12,6 @@ let exit () = Environment.Exit (Environment.ExitCode) - (* possibe function -- save to desktop and almost set to "default"? - might be to goto for most command calls... - let `draw-basic` imgWidth imgHeight = - buildSimpleSpec - |> makeImage - *) - let ``draw-default`` imgWidth imgHeight = try buildDefaultSpec imgWidth imgHeight @@ -29,9 +22,9 @@ | :? ArgumentException as ex -> ex.Message | _ as ex -> ex.Message - let ``draw-image`` imgWidth imgHeight mainColour path = + let ``draw-image`` imgWidth imgHeight mainColour oColour oType path = try - buildBasicSpec imgWidth imgHeight mainColour path + buildSpec imgWidth imgHeight mainColour oColour oType path |> makeImage |> Async.RunSynchronously showEndOfCommandMessage @@ -39,23 +32,6 @@ | :? ArgumentException as ex -> ex.Message | _ as ex -> ex.Message - let ``draw-borderedImage`` imgWidth imgHeight mainColour oColour oType path = - try - buildOverlaySpec imgWidth imgHeight mainColour oColour oType path - |> makeImage - |> Async.RunSynchronously - showEndOfCommandMessage - with - | :? ArgumentException as ex -> ex.Message - | _ as ex -> ex.Message - - let ``draw-overlayedImage`` () = - try - showEndOfCommandMessage - with - | :? ArgumentException as ex -> ex.Message - | _ as ex -> ex.Message - let ``list-colours`` () = printfn "[INFO.] Listing available colours..." for item in colourList do diff --git a/SmoulderingBeachBallCLI/Validation.fs b/SmoulderingBeachBallCLI/Validation.fs index ea1d4a9..3820173 100644 --- a/SmoulderingBeachBallCLI/Validation.fs +++ b/SmoulderingBeachBallCLI/Validation.fs @@ -52,15 +52,6 @@ } spec - let buildBasicSpec iWidth iHeight mainColour path = - let spec = - { width = iWidth; - height = iHeight; - colour = parseColour mainColour - filePath = parsePath path - overlay = None } - spec - let parseOverlay (oType: string) = match oType.ToLower() with | "border" -> Border @@ -69,17 +60,26 @@ | "f" -> Full | _ -> invalidArg "Overlay Type" "The overlay type must be either 'border' or 'full'." - // Need to think about building the two spec's seperately and bring them together in one place. - // I'm repeating myself a little too much here. - // Also, need to adjust pen width to match the image size (in library proj.). - let buildOverlaySpec iWidth iHeight mainColour oColour oType path = + let buildOverlaySpec oColour (oType: string) = let oSpec = { colour = parseColour oColour; overlayType = parseOverlay oType } + oSpec + + let buildMainSpec iWidth iHeight mainColour path oSpec = let spec = - {width = iWidth; - height = iHeight; - colour = parseColour mainColour; - filePath = parsePath path; - overlay = Some oSpec } - spec \ No newline at end of file + { width = iWidth; + height = iHeight; + colour = parseColour mainColour + filePath = parsePath path + overlay = oSpec } + spec + + let buildSpec iWidth iHeight mainColour oColour (oType: string) path = + let spec = + match oType.ToLower() with + | "none" | "n" -> buildMainSpec iWidth iHeight mainColour path option.None + | _ -> + let oSpec = buildOverlaySpec oColour oType + buildMainSpec iWidth iHeight mainColour path (Some oSpec) + spec