All Versions
Latest Version
Avg Release Cycle
60 days
Latest Release
2800 days ago

Changelog History

  • v0.12.2 Changes

    April 08, 2016

    ๐Ÿ”จ Refactoring:

    1. rename method mapTo of Mapping[T] to map (!!! broken changes) โœ… 2. more graceful attachment way, check here for sample codes.

    ๐Ÿšš p.s. method $ext(..) in Mapping[T] was removed (!!! broken changes).

  • v0.12.1 Changes

    March 03, 2016

    ๐Ÿšš 1. remove unnecessary scala-reflect dependency ๐Ÿ“œ 2. change json parser from json4s to spray-json, to reduce nested dependencies

  • v0.12.0 Changes

    February 27, 2016

    ๐Ÿ”จ Refactoring:

    ๐Ÿ“ฆ 1. move misc interfaces/classes from Framework to package file

    1. intelligently detect label key and remove i18n option (p.s. labels starting with @ will be used as message key)
    2. rename option itemsignoreEmpty/touched to skipUntouched/touchedChecker (!!! broken changes)
  • v0.11.0 Changes

    February 21, 2016

    ๐Ÿ‘ 1. add meta support ๐Ÿ‘ 2. add ext info support

  • v0.10.1 Changes

    August 02, 2015
    1. added a helper method to simple, which can convert request.getParemeterMap (Map[String, String[]]) to data (Map[String, String]) directly. ๐Ÿ”จ 2. some minor bug fix, code refactor and enhancement
  • v0.10.0 Changes

    July 19, 2015

    ๐Ÿ”จ Code refactor inspired by form-binder-java:

    • remove InputMode as type parameter of Mapping/Constraint/PreProcessors. Currently all constraints/pre-processors can be applied to all mappings, and only checked it at runtime.
    • touched checker changed from list of names to a function of (name, data) => true|false, which accepts current field name and data map, and return true if touched, and false if not touched.
    • FormBinder not hold constraints/pre-processors any more. Let's attach them to related mapping definitions if necessary.

    !!!WRANING: some broken changes were introduced. But I don't want to list the details here, since they are not big changes, and you can find and fix it easily when upgrading.

  • v0.9.0 Changes

    April 12, 2015

    ๐Ÿ”จ 1. code refactoring and doc enhancement โš  2. change FormBinder.bind (!!!WARNING: broken change for normal developers),


    // bind mappings to data,// consume it directly and return result, if validation passed;// return (processed) errors, if validation faileddef bind[T, R2, M \<: InputMode](mapping: Mapping[T, M], data: Map[String, String])(consume: T =\> R2)


    // bind mappings to data, and return an either, holding validation errors (left) or converted value (right);// let user to decide how to proceeddef bind[T, M \<: InputMode](mapping: Mapping[T, M], data: Map[String, String]): Either[R, T]
  • v0.8.1

    April 08, 2015
  • v0.8.0 Changes

    November 02, 2014

    โš  1. change interface Constraint to (name, data, messages, options) => errors, and now it can be applied to both mappings and FormBinder (!!!WARNING: broken change for extension developers) โš  2. merge/change interfaces PreProcessor/BulkPrePrecessor to (prefix, data, options) => data, and now it can be applied to both FormBinder and mappings (!!!WARNING: broken change for extension developers)

    1. rename pipe_: to >-: (!!!WARNING: broken change for normal developers) โš  4. change pre-processor expandJsonData(sourceKey[, destPrefix]) to expandJsonString([sourceKey][, destPrefix]), and now it can be applied to all mappings and FormBinder (!!!WARNING: broken change for normal developers)
    2. add constraint numArrayIndex, used to validate illegal array index, like aaa[t123] โœจ 6. enhance constraint required, and now it can be applied to both field mappings and group mappings
    3. add built-in field mapping json4s
    4. add InputMode to help restrict a Constraint/PreProcessor can accept one input string or multiple input strings or both (for extension developers)
  • v0.6.0 Changes

    October 18, 2014
    1. change interface Messages to (String) => Option[String] ( !!!WARNING: broken change ) ๐Ÿ‘ 2. add i18n option support, so label can be used as a key to fetch an i18n value now
    2. add built-in uuid (java.util.UUID) field mapping