Files
integreat/src/clj/auto_ap/parse/util.clj
2019-11-30 18:07:27 -08:00

37 lines
1022 B
Clojure

(ns auto-ap.parse.util
(:require [clj-fuzzy.metrics :as m]
[clojure.java.shell :as sh]
[clojure.string :as str]
[clj-time.format :as f]
[clj-time.core :as time]))
(defmulti parse-value (fn [method _ _]
method))
(defmethod parse-value :trim-commas
[_ _ value]
(str/replace value #"," "")
)
(defmethod parse-value :trim-commas-and-negate
[_ _ value]
(let [[_ raw-value] (re-find #"([\d\.]+)"
(-> value
(str/replace #"," "")
(str/replace #"-" "")))]
(if (or (str/includes? value "-")
(str/includes? value "CR"))
(str (- (Double/parseDouble raw-value)))
(str raw-value))))
(defmethod parse-value :clj-time
[_ format value]
(time/from-time-zone (f/parse (f/formatter format) value)
(time/time-zone-for-id "America/Los_Angeles")))
(defmethod parse-value nil
[_ _ value]
value)