Skip to content

v1.11.0

Latest

Choose a tag to compare

@MateuszKubuszok MateuszKubuszok released this 14 Jul 07:38

Note

This release was sponsored completely by users' contributions! It will also probably be the last release in 1.x line where I contributed anything, and where changes were ported into the 2.x line. From this moment development of 1.x is parked on the line-1.x branch from which we could release things if there were any contributions or bugfixes from the community. Meanwhile the master now will be containing the 2.x development branch, which I hope to release on Scala 3.9.0 right after it's released (see 2.0.0-M4).

Changelog:

  • added TransformedNamesComparison.CamelSnakeCaseEquality - a built-in snake_case <-> camelCase name-matching predicate, so matching e.g. user_name against userName no longer requires hand-rolling a custom TransformedNamesComparison, by @ajozwik (#912, closes #831)

    source.into[Target]
      .enableCustomFieldNameComparison(TransformedNamesComparison.CamelSnakeCaseEquality)
      .transform
  • added TransformedNamesComparison.IgnorePrefix - a base comparison that matches a source name to a target name after stripping a fixed prefix from the source side; this is common for code-generated types such as Protobuf enums whose variants repeat the enum name as a prefix. It is intentionally left non-sealed so you extend it with your own prefix, by @YannMoisan (#912, originally #871) - thank you for your first contribution!

    case object FooNamesComparison extends TransformedNamesComparison.IgnorePrefix("Foo")
    
    source.into[Target]
      .enableCustomFieldNameComparison(FooNamesComparison)
      .transform