diff --git a/frontend/src/uxbox/main/data/colors.cljs b/frontend/src/uxbox/main/data/colors.cljs index 9a5efbbf5..fba0b2538 100644 --- a/frontend/src/uxbox/main/data/colors.cljs +++ b/frontend/src/uxbox/main/data/colors.cljs @@ -7,7 +7,7 @@ (ns uxbox.main.data.colors (:require [clojure.set :as set] [beicon.core :as rx] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.uuid :as uuid] [potok.core :as ptk] [uxbox.util.router :as r] diff --git a/frontend/src/uxbox/main/data/history.cljs b/frontend/src/uxbox/main/data/history.cljs index a322205fc..80383c699 100644 --- a/frontend/src/uxbox/main/data/history.cljs +++ b/frontend/src/uxbox/main/data/history.cljs @@ -15,7 +15,7 @@ [uxbox.util.forms :as sc] [uxbox.main.data.pages :as udp] [uxbox.store :as st] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.data :refer (without-keys replace-by-id index-by)])) diff --git a/frontend/src/uxbox/main/data/pages.cljs b/frontend/src/uxbox/main/data/pages.cljs index 50e9478cc..b7d7f4d20 100644 --- a/frontend/src/uxbox/main/data/pages.cljs +++ b/frontend/src/uxbox/main/data/pages.cljs @@ -18,7 +18,7 @@ [uxbox.util.router :as r] [uxbox.util.i18n :refer (tr)] [uxbox.util.forms :as sc] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.data :refer (without-keys replace-by-id)])) ;; --- Specs diff --git a/frontend/src/uxbox/main/data/workspace.cljs b/frontend/src/uxbox/main/data/workspace.cljs index 3031b7831..54805cfd9 100644 --- a/frontend/src/uxbox/main/data/workspace.cljs +++ b/frontend/src/uxbox/main/data/workspace.cljs @@ -22,7 +22,7 @@ [uxbox.main.data.shapes-impl :as shimpl] [uxbox.main.data.lightbox :as udl] [uxbox.main.data.history :as udh] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.math :as mth] [uxbox.util.data :refer (index-of)])) diff --git a/frontend/src/uxbox/main/ui/dashboard/icons.cljs b/frontend/src/uxbox/main/ui/dashboard/icons.cljs index dac8c0b8f..854f35c0e 100644 --- a/frontend/src/uxbox/main/ui/dashboard/icons.cljs +++ b/frontend/src/uxbox/main/ui/dashboard/icons.cljs @@ -19,7 +19,7 @@ [uxbox.util.i18n :as t :refer (tr)] [uxbox.util.data :refer (read-string)] [uxbox.util.mixins :as mx :include-macros true] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [potok.core :as ptk] [uxbox.util.forms :as sc] [uxbox.util.lens :as ul] diff --git a/frontend/src/uxbox/main/ui/dashboard/images.cljs b/frontend/src/uxbox/main/ui/dashboard/images.cljs index ae3859c0f..d9cdf8125 100644 --- a/frontend/src/uxbox/main/ui/dashboard/images.cljs +++ b/frontend/src/uxbox/main/ui/dashboard/images.cljs @@ -18,7 +18,7 @@ [uxbox.main.ui.lightbox :as lbx] [uxbox.main.ui.keyboard :as kbd] [uxbox.main.ui.dashboard.header :refer (header)] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.data :as data :refer (read-string)] [uxbox.util.dom :as dom])) diff --git a/frontend/src/uxbox/main/ui/dashboard/projects.cljs b/frontend/src/uxbox/main/ui/dashboard/projects.cljs index ae847042a..a45d37c8e 100644 --- a/frontend/src/uxbox/main/ui/dashboard/projects.cljs +++ b/frontend/src/uxbox/main/ui/dashboard/projects.cljs @@ -24,7 +24,7 @@ [uxbox.util.dom :as dom] [uxbox.util.blob :as blob] [uxbox.util.mixins :as mx :include-macros true] - [uxbox.util.datetime :as dt])) + [uxbox.util.time :as dt])) ;; --- Helpers & Constants diff --git a/frontend/src/uxbox/main/ui/workspace/clipboard.cljs b/frontend/src/uxbox/main/ui/workspace/clipboard.cljs index 4eac4171d..5aef8a1dc 100644 --- a/frontend/src/uxbox/main/ui/workspace/clipboard.cljs +++ b/frontend/src/uxbox/main/ui/workspace/clipboard.cljs @@ -15,7 +15,7 @@ [potok.core :as ptk] [uxbox.util.mixins :as mx :include-macros true] [uxbox.util.dom :as dom] - [uxbox.util.datetime :as dt])) + [uxbox.util.time :as dt])) (def ^:private clipboard-ref (-> (l/key :clipboard) diff --git a/frontend/src/uxbox/main/ui/workspace/download.cljs b/frontend/src/uxbox/main/ui/workspace/download.cljs index 08c310072..a2f150f19 100644 --- a/frontend/src/uxbox/main/ui/workspace/download.cljs +++ b/frontend/src/uxbox/main/ui/workspace/download.cljs @@ -16,7 +16,7 @@ [uxbox.main.ui.workspace.base :as wb] [uxbox.util.blob :as blob] [uxbox.util.data :refer (read-string)] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.dom :as dom] [uxbox.util.mixins :as mx :include-macros true] [potok.core :as ptk] diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs index 606fa5962..a73451c29 100644 --- a/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs +++ b/frontend/src/uxbox/main/ui/workspace/sidebar/history.cljs @@ -20,7 +20,7 @@ [uxbox.main.ui.workspace.base :as wb] [uxbox.main.ui.icons :as i] [uxbox.util.mixins :as mx :include-macros true] - [uxbox.util.datetime :as dt] + [uxbox.util.time :as dt] [uxbox.util.data :refer (read-string)] [uxbox.util.dom :as dom])) diff --git a/frontend/src/uxbox/util/datetime.cljs b/frontend/src/uxbox/util/time.cljs similarity index 73% rename from frontend/src/uxbox/util/datetime.cljs rename to frontend/src/uxbox/util/time.cljs index dd426dea5..7eee8a7ba 100644 --- a/frontend/src/uxbox/util/datetime.cljs +++ b/frontend/src/uxbox/util/time.cljs @@ -4,15 +4,15 @@ ;; ;; Copyright (c) 2015-2016 Andrey Antukh -(ns uxbox.util.datetime +(ns uxbox.util.time (:require [cljsjs.moment])) ;; A simplified immutable date time representation type. -(deftype DateTime [^number v] +(deftype Instant [^number v] IComparable (-compare [this other] - (if (instance? DateTime other) + (if (instance? Instant other) (compare v (.-v other)) (throw (js/Error. (str "Cannot compare " this " to " other))))) @@ -20,7 +20,7 @@ (-pr-writer [_ writer _] (let [m (js/moment v) ms (.toISOString m)] - (-write writer (str "#datetime \"" ms "\"")))) + (-write writer (str "#instant \"" ms "\"")))) Object (toString [this] @@ -33,39 +33,35 @@ IHash (-hash [_] v)) -(alter-meta! #'->DateTime assoc :private true) +(alter-meta! #'->Instant assoc :private true) -(defn datetime - "Create a new DateTime instance from +(defn instant + "Create a new Instant instance from unix offset." [v] {:pre [(number? v)]} - (DateTime. v)) - -(defn datetime? - "Return true if `v` is an instance of DateTime." - [v] - (instance? DateTime v)) + (Instant. v)) (defn instant? + "Return true if `v` is an instance of Instant." [v] - (instance? DateTime v)) + (instance? Instant v)) (defn parse - "Parse a string representation of datetime + "Parse a string representation of instant with an optional `format` parameter." ([v] (parse v :offset)) ([v fmt] (cond - (datetime? v) v - (= fmt :offset) (DateTime. v) + (instant? v) v + (= fmt :offset) (Instant. v) :else (let [m (if (= fmt :unix) (js/moment.unix v) (js/moment v fmt))] - (DateTime. (.valueOf m)))))) + (Instant. (.valueOf m)))))) (defn format - "Returns a string representation of the DateTime + "Returns a string representation of the Instant instance with optional `fmt` format parameter. You can use `:iso` and `:unix` shortcuts as @@ -76,7 +72,7 @@ " ([v] (format v :iso)) ([v fmt] - {:pre [(datetime? v)]} + {:pre [(instant? v)]} (let [vm (js/moment (.-v v))] (case fmt :unix (.unix vm) @@ -85,10 +81,10 @@ (.format vm fmt))))) (defn now - "Return the current DateTime." + "Return the current Instant." [] (let [vm (js/moment)] - (DateTime. (.valueOf vm)))) + (Instant. (.valueOf vm)))) (defn timeago [v] diff --git a/frontend/src/uxbox/util/transit.cljs b/frontend/src/uxbox/util/transit.cljs index 47d2fb752..4398d3fb9 100644 --- a/frontend/src/uxbox/util/transit.cljs +++ b/frontend/src/uxbox/util/transit.cljs @@ -11,17 +11,17 @@ [uxbox.util.data :refer (parse-int)] [uxbox.util.geom.point :as gpt] [uxbox.util.geom.matrix :as gmt] - [uxbox.util.datetime :as dt])) + [uxbox.util.time :as dt])) ;; --- Transit Handlers -(def datetime-write-handler +(def instant-write-handler (t/write-handler (constantly "m") #(str (dt/format % :offset)))) -(def datetime-read-handler +(def instant-read-handler (t/read-handler - #(dt/datetime (parse-int %)))) + #(dt/instant (parse-int %)))) (def point-write-handler (t/write-handler @@ -47,12 +47,12 @@ (def ^:privare +read-handlers+ {"u" uuid - "m" datetime-read-handler + "m" instant-read-handler "matrix" matrix-read-handler "point" point-read-handler}) (def ^:privare +write-handlers+ - {dt/DateTime datetime-write-handler + {dt/Instant instant-write-handler gmt/Matrix matrix-write-handler gpt/Point point-write-handler})