View Source Changelog
2.6.1
Breaking
None
Non-breaking
- Elixir versions compatibility improved
- 1.18 structures bug workaround
- Fixes composition of all and star lenses
- Adds
withoutmacro
2.6.0
Breaking
All of these are bug fixes, that's why we only bump the minor version
- Fixes bug with
-1incorrectly appending when used in nested lenses - Now error is raised when modifier conflicts with path definition
Non-breaking
- Slightly improved docs
- Added docs for Elixir 1.17
2.5.3
Breaking
None
Non-breaking
Exceptions generated by incorrect modifiers produce more meaningful error messages
2.5.0
Breaking
None
Non-breaking
Pathex.Accessibility.from_struct/2to createforce_over-friendly lenses for Elixir structuresPathex.Accessibility.from_record/3to createforce_over-friendly lenses for records
2.4.3
- Documentation improvements, typos etc.
- Documentation for VSCode reformatting
2.4.2
- Fixed
:deleteop bug foralllens #21 - Improved performance of
alllens - Added Code of Conduct
2.4.1
- Fixed
:deleteop bug foralllens #20
2.4
Negative indexes, lens fixes, force_update nil filling and refactoring
Breaking
- matching force_update fix. Now it doesn't raise an error when called
- filtering force_update fix. Now it doesn't raise an error when called
- Tuple force_update fix. Now it works with indexes and for
force_set {}, path(2), 1it will create{nil, nil, 1}. - List force_update fix. Now it works with indexes and for
force_set [], path(2), 1it will create[nil, nil, 1].
Non-breaking
- Tuple negative index is now supported for all operations
- List negative indexes now work the same way as positive indexes (but backwards), except
-1which still prepends to the list.
2.3
Breaking
- Pathex now uses Elixir 1.13 (or higher) version
Non-breaking
Pathex.tspec fixPathex.Shortfor shorter path definitionPathex.patternfor creating patterns from inlined pathsPathexnow can beuse-d inside functions or anything like this- Paths inlining is now detected for aliased, imported and macro calls
- Internal spec fixes, dead code eliminations and formatting
2.2
Breaking
- Changed behaviour of path-closures created with
pathwhen working with improperKeyword.t()
Non-breaking
- Improved documentation
- Removed dead code
- Added
Pathex.Accessibilitymodule for creating paths in runtime
2.1
Breaking
- Updating and viewing keywords with
starandsomelenses now doesn't raise when they're used against non-proper keyword
Non-breaking
- Concatenated paths now can force_over for not only maps
- Fixed debug lens
- Added ability to pass calls and arbitary structures into
pathmacro - Unrolled some clauses for
starandsomefor extra efficiency
2.0
Breaking
- Reworked
starlens. Now it is less optimistic and returns:errorwhen no values were viewed/updated - Removed sigils
- Removed deprecated lens
id - Removed deprecated lens
either - Removed
recurfunction
Non-breaking
composefunction for recursive lensdeletemethod for all paths, lenses and higher order functionsinspectmethod for all paths, lenses and higher order functions- Matchable updater for lists and maps
- Builders are selected for combination (not for mod as they used to)
- Reworked documentation
- Annotated paths
1.3.0
Breaking
None! (See deprecated in Non-breaking)
Non-breaking
Deprecated
idlensDeprecated
eitherlensFixed bug with concatenation context overlapping
somelensstarlensmatchinglensfilteringlensRemoved some dead code
Moved lenses code to separate modules
1.2.0
Breaking
None!
Non-breaking
starlensalllens
1.1.0
Breaking
None!
Non-breaking
|||operator- stack-optimized version of
~>operator - stack-optimized version of
|||operator
1.0.0
Breaking
force_set/get/setclause in closure was renamed toforce_update/view/updateand added a special argument with default value in it
Non-breaking
alongsidemacro- stack-optimized version of
&&&operator - path code generation size assertion
- better documentation format
idlenseitherlensanylens
Yeah, it starts from 1.0.0 I can describe previous versions if anybody needs this. Just open an issue! :)