From e8c2c5d7a249ad0c9ac20e7bf63f97fee34ca2eb Mon Sep 17 00:00:00 2001 From: estopaceadrian Date: Tue, 15 Aug 2023 20:36:51 +0800 Subject: [PATCH] created helper that converts string to snake case --- lib/bookkeeping/core/helper.ex | 10 ++++++++++ test/bookkeeping/core/helper_test.exs | 15 +++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 lib/bookkeeping/core/helper.ex create mode 100644 test/bookkeeping/core/helper_test.exs diff --git a/lib/bookkeeping/core/helper.ex b/lib/bookkeeping/core/helper.ex new file mode 100644 index 0000000..f33fd32 --- /dev/null +++ b/lib/bookkeeping/core/helper.ex @@ -0,0 +1,10 @@ +defmodule Bookkeeping.Core.Helper do + def to_snake_case(input) do + transformed_string = + input + |> String.downcase() + |> String.replace(~r/\s+/, "_") + + {:ok, transformed_string} + end +end diff --git a/test/bookkeeping/core/helper_test.exs b/test/bookkeeping/core/helper_test.exs new file mode 100644 index 0000000..0a5f3a4 --- /dev/null +++ b/test/bookkeeping/core/helper_test.exs @@ -0,0 +1,15 @@ +defmodule Bookkeeping.Core.HelperTest do + use ExUnit.Case, async: true + alias Bookkeeping.Core.Helper + + test "converts string to snake_case" do + input0 = "Balance Sheet" + expected_output0 = "balance_sheet" + + assert Helper.to_snake_case(input0) == {:ok, expected_output0} + + input1 = "Owner's Equity" + expected_output1 = "owner's_equity" + assert Helper.to_snake_case(input1) == {:ok, expected_output1} + end +end