package spin

  1. Overview
  2. Docs

Source file helpers.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let slugify value =
  value
  |> Str.global_replace (Str.regexp " ") "-"
  |> String.lowercase_ascii
  |> Str.global_replace (Str.regexp "[^a-z0-9\\-]") ""

let snake_case value =
  value
  |> Str.global_replace (Str.regexp "-") "_"
  |> Str.global_replace (Str.regexp " ") "_"
  |> Str.global_replace (Str.regexp "\\([^_A-Z]\\)\\([A-Z]\\)") "\\1_\\2"
  |> String.lowercase_ascii

let camel_case value =
  value
  |> Str.global_substitute
       (Str.regexp "^\\([a-z]\\)\\|[_\\-]\\([a-z]\\)")
       (fun s -> String.uppercase_ascii (Str.matched_string s))
  |> Str.global_replace (Str.regexp "[_\\-]") ""