- Fix deprecation warning
- Add performance improvement on
word?
predicate (x3 aprox) - Add performance improvement for
letters?
predicate (x3 aprox) - Add performance improvement for default case of
trim
,rtrim
andltrim
(arity 1) - Add performance improvement to
camel
,snake
andkebab
(x9 in cljs) - Add
unindent
helper as replacement for<<-
Important: these changes introduces some minor breaking changes;
in practice, these changes should be considered safe and most likely
will not affect you at all; because users are probably already
managing nil
explicitly.
- Make
blank?
returntrue
when value isnil
- Make
empty?
returntrue
when value isnil
- Deprecate
empty-or-nil?
predicate
- Handle
nils
on concat macro.
- Handle
nils
on concat macro.
- Add
concat
macro, for faster string concatenation on CLJS. - Add
ffmt
macro, a simplier and faster string formating macro. Alternative to theistr
(like ES6 template strings).
- Fix bug in starts-with? and ends-with? predictates.
IMPORTANT NOTE:
- This release removes the third party XRegExp dependency (making this library to have 0 external dependencies). This may affect environments that does not suport the unicode flag.
- Reaply shadow-cljs compatibility fixes that have been accidentally reverted in previous release. (sorry for the inconvenience)
- Update xregexp to 5.0.2
- Update deps and docs.
- Use the latest xregexp version (4.3.0 from npm).
- Make it compatible with shadow-cljs.
- Version numbering change to more simple one, based on date.
- Remove
parse-*
functions they behave inconsistently and cuerdas is a string manipulation library (not parsing library). - Remove already marked deprecated functions.
- Remove
caseless=
andlocale-caseless=
- Remove
lower-locale
andupper-locale
(no cross platform support). - Add
index-of
andlast-index-of
(safer versions of clojure.string/*). - Remove support for
java.lang.Character
(all arguments should be strings now, this doesn't have much added value but removing improves performance). - Make all predicates return a boolean type (instead of logical boolean).
Date: 2019-11-14
- Remove implicit clojurescript compiler dependency.
Date: 2019-03-31
- Add again the xregexp bundle (revert previous change)
- Update xregexp to 4.2.0.
Date: 2019-01-09
- Fix
parse-int
precision issues. - Remove regexp bundle (provide it as npm dep).
Date: 2018-07-22
- Fix unexpected behavior of
capital
with empty strings.
Date: 2018-01-08
- Fix unexpected exception on
pad
function when the provided string length is larger than the:length
parameter (cljs only). - Fix unexpected behavior with regexes with advanced compilation.
- Fix
parse-int
andparse-double
unexpected behavior on clj and cljs.
Date: 2017-10-06
- Fix compatibility issues with the latest version of cljs compiler.
Date: 2017-02-06
- Fix many reflection warnings.
Date: 2016-12-25
- Allow pass single chars to varios functions that accepts strings.
Date: 2016-11-15
- Fix
js-selector
wrong behavior.
Date: 2016-10-23
- The
blank?
predicate now properly returnsnil
ifnil
value is provided. (BREAKING CHANGE). - Add missing
underscored
deprecated alias. - Fix some bugs in
ends-with?
predicate. - Improve NPE handling in many functions.
- Fix wrong impl in
locale-lower
andlocale-upper
functions. - Fix inconsistencies on
caseless=
andlocale-caseless=
functions. - Depreacate
startswith?
andendswith?
predicate aliases. - Rename
<<
interpolation macro toistr
(an alias for the old name is maintained for backward compatibility) - Improve unicode support for
title
and similar functions. - Add
empty-or-nil?
predicate.
Date: 2016-09-17
- Return boolean type instead logical boolean from
blank?
,alpha?
,alnum?
digits?
,word?
,letters?
andnumeric?
predicates.
Date: 2016-08-30
- Fix compatibility issue with clojure 1.7 due to the internal usage of clojure.string/includes? that has been introduced in 1.8.
- Mark deprecated the
contains?
predicate because it is identical toincludes?
.
Date: 2016-08-29
Important: this is a major release and includes many breaking changes among other fixes and improvements. A proper backward compatibility aliases are maintained but not all conserves the exactly same behavior.
This is a complete list of changes:
- Rename
alpha-numeric?
toalnums?
. - Rename existing
numeric?
todigits?
. - Rename old functions such as
dasherize
,underscore
,classify
,titleize
,humanize
with more consistent with clojure naming:kebab
,snake
,pascal
,title
andhuman
. Backward compatibility aliases are maintained. BREAKING CHANGE:-moz-transition
<->MozTransition
transformations and similar stuff related to css/js are now handled by new functions:js-selector
andcss-selector
. (Please, see more info in PR #33). - Rename
parse-long
toparse-int
in jvm impl (make the clj and cljs impl equivalent). - Rename
parse-float
toparse-double
in cljs impl (the second arity is removed and now clj and cljs impl are equivalent). - Rename
capitalize
tocapital
. - Make
parse-number
cross-platform (and remove the second arity that used for specify the precision). - Make
words
function unicode aware. - Make
blank?
predicate unicode aware. - Make
clean
function unicode aware. - Make
collapse-whitespace
function unicode aware. - Improve performance of
capital
function. - Fix inconsistency issue in
words
function in terms of nil safety. - Fix wrong behavior of
replace
function in cljs. - Remove ireplace-first function (it was only on the cljs).
- Remove ireplace function (it was only on the cljs).
- Add
escape-html
andunescape-html
for clj. - Add
word?
predicate (unicode aware). - Add
letters?
predicate (unicode aware). - Add
numeric?
predicate. - Add
locale-upper
andlocale-lower
functions. - Add
caseless=
andlocale-caseless=
functions. - Add
fmt
alias toformat
function. - Add
uslug
function (unicode friendly version ofslug
). - Add string interpolation support (
<<
macro) - Add string unindentation support (
<<-
function) - Add enhaced support for regular expressions thanks to xregexp (cljs only).
Date: 2016-06-25
- Fix NPE on
format
function. - Improve string interpolation on
format
function making it more flexible.
Date: 2016-04-12
- Fix null pointer exception on format function without arguments (clj only).
Date: 2015-12-03
- Fix unexpected behavior of prune.
- Update cljs compiler version.
- Minor cosmetic fixes to code.
Date: 2015-11-30
- Start using reader conditionals (clojure >= 1.7 required now)
- starts-with? and ends-with? and contains? return true for empty sub-string
- General bugfixing
- Add varios new functions such as
to-bool
,words
,alpha?
, among others (thanks to @jelz).
Date: 2015-08-01
- Update cljs compiler to 1.7.28
- Start using cljs own compiler facilities instead of lein-cljsbuild.
- Remove cljx dependency and start using reader conditionals for tests.
- Unify the source under one directory (instead of have two: cljs and clj).
Date: 2015-06-21
- Add substr-between function (thanks to @podviaznikov)
- Add some additional type hints on clojure code.
Date: 2015-03-30
- Changed the groupId of the package to funcool.
Date: 2015-03-30
- Add unlines function (thanks to @pepegar)
- Replace speclj with clojure.test.
- Update dependencies.
Date: 2015-03-14
- Remove clojure and clojurescript from required dependencies.
- Add some additional testcases.
Date: 2015-01-13
- Fixed bug on contains? function (thanks @podviaznikov for report)
- Fixed bug on dasherize function (thanks to @NoamB for improved version)
- Add strip-suffix and strip-prefix functions.
Date: 2015-01-05
- Remove Apache Commons Lang dependency (clj).
- Add proper nil handling for almost all functions.
- Add strip, rstrip and lstrip aliases for trim, rtrim and ltrim respectively.
- Rename endswith? and startswith? with ends-with? and starts-with? respectively, but conserve the previously funcnames as aliases.
- Add the ability of arbitrary replacements to strip-tags function.
Date: 2014-12-23
- Initial version