ClojureScript format string with goog.string.format doesn't substitute
clojure, clojurescript, google-closure-library
Solution
What does `%x` do?
Looking at format source sorce, it only supports `s`, `f`, `d`, `i` and `u`:
var formatRe = /%([0\-\ \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g;
This seems to be working well for me:
mypackage.strings.gen_format("#%d%d%d", 0, 0, 0)
UPDATE: If you need to render a string with color, how about these:
(defn hex-color [& args]
(apply str "#" (map #(.toString % 16) args))
(defn hex-color [r g b]
(str "#" (.toString r 16) (.toString g 16) (.toString b 16))
Problem
I'm trying to format a color in hex for use in HTML, running ClojureScript in the browser. Here's my "format" function. ``` (defn gen-format [& args] (apply gstring/format args) ) ``` in a "strings" namespace where I've required the goog.string library with : ``` (:require [goog.string :as gstring] [goog.string.format :as gformat]) ``` But when I try to call it from javascript : ``` document.write(mypackage.strings.gen_format("#%x%x%x",0,0,0)); ``` it just returns `#%x%x%x` It's not crashing. But the goog format function doesn't seem to be substituting the values in. Am I doing something wrong here?