package liquid_syntax

  1. Overview
  2. Docs

Source file settings.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
open Syntax

let forloop = "forloop"
let increment = "*increment"
let cycle = "*cycle"
let next = "*next"
let skip = "*skip"
let style_tag = "*style_tag"


type currency =
  | Usd
  | Eur
  | Cad
  | Aud
  | Gbp

type currency_info =
  { symbol : string
  ; abbr : string
  ; name : string
  }

let currency_info_from_currency = function
  | Usd -> { symbol = "$"; abbr = "USD"; name = "US Dollar" }
  | Eur -> { symbol = "€"; abbr = "EUR"; name = "Euro" }
  | Cad -> { symbol = "$"; abbr = "CAD"; name = "Canadian Dollar" }
  | Aud -> { symbol = "$"; abbr = "AUD"; name = "Australian Dollar" }
  | Gbp -> { symbol = "£"; abbr = "GBP"; name = "Pound Sterling" }

type error_handler = string -> unit
type error_policy =
  | Strict
  | Warn
  | Silent
  | Custom of error_handler

type log_policy =
  | Verbose
  | Minimal
  | Never

let log_policy_key = "*log_policy"
let preferred_currency_key = "*preferred_currency"

type t =
  { log_policy : log_policy
  ; error_policy : error_policy
  ; preferred_currency : currency
  ; filters : liquid_filter_lookup
  ; context : variable_context
  ; template_directory : string
  ; log_directory : string option
  ; timezone : Date.Timezone.t
  }

let default_filter_lookup _ = None
let default_custom_ctx = Ctx.empty

let make
    ?(log_policy = Never)
    ?(log_directory = "")
    ?(error_policy = Strict)
    ?(preferred_currency = Usd)
    ?(filters = default_filter_lookup)
    ?(context = default_custom_ctx)
    ?(template_directory = ".")
    ?(timezone = Date.Timezone.default)
    ()
  =
  { log_policy
  ; log_directory = if log_directory = "" then None else Some log_directory
  ; error_policy
  ; preferred_currency
  ; filters
  ; context
  ; template_directory
  ; timezone
  }
OCaml

Innovation. Community. Security.