Doing our best at supporting SemVer with a nice looking Changelog.
Version 4.2.0 2022-06-09
- added strategy: materialized_path2 #571
- Added tree_view method #561 (thx @bizcho)
- Fixed bug when errors would not undo callbacks #566 (thx @daniloisr)
- ruby 3.0 support
- rails 7.0 support (thx @chenillen, @petergoldstein)
- Documentation fixes (thx @benkoshy, @mijoharas)
Version 4.1.0 2021-06-25
parent
with an invalid id now returns nil (thx @vanboom)root
returns self if ancestry is invalid (thx @vanboom)- fix case where invalid object prevented ancestry updates (thx @d-m-u)
- oracleenhanced uses nulls first for sorting (thx @lual)
- fix counter cache and STI (thx @mattvague)
Version 4.0.0 2021-04-12
- dropped support for rails 4.2 and 5.0 (thx @d-m-u)
- better documentation counter cache option (thx @pustomytnyk)
- clean up code (thx @amatsuda @d-m-u)
- fixed rails 6.1 support (thx @cmr119 @d-staehler @danini-the-panini )
- phasing out
parent_id?
,ancestors?
and usinghas_parent?
instead - fixed postgres order bug on rails 6.2 and higher (thx @smoyt)
Version 3.2.1 2020-09-23
- fixed gemspec to include locales and pg (thx @HectorMF)
Version 3.2.0 2020-09-23
- introduce i18n
- pg sql optimization for ancestry changes (thx @suonlight and @geis)
- pg sql optimization for sorting (thx @brendon and @d-m-u)
- fix to humanise model name (thx @mkllnk)
- able to convert to ancestry from a parent_id column with a different name
- documentation fixes for better diagrams and grammar (thx @dtamais, @d-m-u, and @CamilleDrapier)
Version 3.1.0 2020-08-03
:primary_key_format
method lets you change syntax. good for uuids.- changed code from being
ancestry
string toancestry_ids
focused. May break monkey patches. - Moved many methods from
has_ancestry
andInstanceMethods
toMaterializedPath
. May break monkey patches. - Removed tests for
mysql
driver. Starting with rails 4.1, it supportsmysql2
driver. - Better documentation for relationships (thnx @dtamai and @d-m-u)
- Fix creating children in
after_*
callbacks (thx @jstirk)
Version 3.0.7 2018-11-06
- Fixed rails 5.1 change detection (thx @jrafanie)
- Introduce counter cache (thx @hw676018683)
Version 3.0.6 2018-11-06
- Fixed rails 4.1 version check (thx @myxoh)
Version 3.0.5 2018-11-06
- Added indirect children support (thx @tilo)
- Fixed test sorting for pg on mac osx
- Reduced memory footprint of parsing ancestry column (thx @NickLaMuro)
Version 3.0.4 2018-10-27
- Properly detects non-integer columns (thx @adam101)
- Arrange no longer drops nodes due to missing parents (thx @trafium)
Version 3.0.3 2018-10-23
This branch (3.x) should still be compatible with rails 3 and 4. Rails 5.1 and 5.2 support were introduced in this version, but ongoing support has been moved to ancestry 4.0
- Reduce object allocation (thx @NickLaMuro)
- Rails 5.1 fixes (thx @ctrombley)
- Avoid redundant query to DB in subtree_of scope (thx @Slike9)
- Syntax tweaks (thx @ekohl, @richardonrails)
- Fixed reverse ordering
- Dropped builds for ruby 1.9.3, 2.0, 2.1, and 2.2
- Dropped builds for Rails 3.x and 4.x (will use Active Record
or
syntax)
Version 3.0.2 2018-04-24
- fixed
order_by_ancestry
bug - fixed order tests for postgres on mac (it uses a different collation)
- fixed documentation (thx @besquared, @danfrenette, @eiwi1101, @isimluk, @mabusaad, @tilsammans)
- added missing
Ancestry::version
- added Rails 5.2 support (thx @jjuliano)
Version 3.0.1 2017-07-05
- added gem metadata
- fixed keep a changelog link (thx @mattbrictson)
- added alias has_parent?
- fixed bug where unscoping too much (thx @brendon)
- fixed tests on mysql 5.7 and rails 3.2
- Dropped 3.1 scope changes
Version 3.0.0 2017-05-18
- Dropping Rails 3.0, and 3.1. Added Rails 5.1 support (thx @ledermann)
- Dropping Rails 4.0, 4.1 for build reasons. Since 4.2 is supported, all 4.x should still work.
- Performance: Use
pluck
vsmap
for ids (thx @njakobsen and @culturecode) - Fixed acts_as_tree compatibility (thx @crazymykl)
- Fixed loading ActiveRails prematurely (thx @vovimayhem)
- Fixes exist (thx @ledermann)
- Properly touches parents when different class for STI (thx @samtgarson)
- Fixed issues with parent_id (only present on master) (thx @domcleal)
Version 2.2.2 2016-11-01
- Use
COALESCE
only for sorting versions greater than 5.0 - Fixed bug with explicit order clauses (introduced in 2.2.0)
- No longer load schema on
has_ancestry
load (thx @ledermann)
Version 2.2.1 2016-10-25
Sorry for blip, local master got out of sync with upstream master. Missed 2 commits (which are feature adds)
- Use like (vs ilike) for rails 5.0 (performance enhancement)
- Use
COALESCE
for sorting on pg, mysql, and sqlite vsCASE
Version 2.2.0 2016-10-25
- Predicates for scopes: e.g.:
ancestor_of?
,parent_of?
(thx @neglectedvalue) - Scope
path_of
arrange
now accepts blocks (thx @mastfish)- Performance tuning
arrange_node
(thx @fryguy) - In orphan strategy, set
ancestry
tonil
for no parents (thx @haslinger) - Only updates
updated_at
when a record is changed (thx @brocktimus) - No longer casts text primary key as an integer
- Upgrading tests for ruby versions (thx @brocktimus, @fryguy, @yui-knk)
- Fix non-default ancestry not getting used properly (thx @javiyu)
Version 2.1.0 2014-04-16
- Added arrange_serializable (thx @krishandley, @chicagogrrl)
- Add the :touch to update ancestors on save (thx @adammck)
- Change conditions into arel (thx @mlitwiniuk)
- Added children? & siblings? alias (thx @bigtunacan)
- closure_tree compatibility (thx @gzigzigzeo)
- Performance tweak (thx @mjc)
- Improvements to organization (thx @xsuchy, @ryakh)
Version 2.0.0 2013-05-17
- Removed rails 2 compatibility
- Added table name to condition constructing methods (thx @aflatter)
- Fix depth_cache not being updated when moving up to ancestors (thx @scottatron)
- add alias :root? to existing is_root? (thx @divineforest)
- Add block to sort_by_ancestry (thx @Iliya)
- Add attribute query method for parent_id (thx @sj26)
- Fixed and tested for rails 4 (thx @adammck, @Nihad, @Systho, @Philippe, e.a.)
- Fixed overwriting ActiveRecord::Base.base_class (thx @Rozhnov)
- New adopt strategy (thx unknown)
- Many more improvements
Version 1.3.0 2012-05-04
- Ancestry now ignores default scopes when moving or destroying nodes, ensuring tree consistency
- Changed ActiveRecord dependency to 2.3.14
Version 1.2.5 2012-03-15
- Fixed warnings: "parenthesize argument(s) for future version"
- Fixed a bug in the restore_ancestry_integrity! method (thx Arthur Holstvoogd)
Version 1.2.4 2011-04-22
- Prepended table names to column names in queries (thx @raelik)
- Better check to see if acts_as_tree can be overloaded (thx @jims)
- Performance inprovements (thx @kueda)
Version 1.2.3 2010-10-28
- Fixed error with determining ActiveRecord version
- Added option to specify :primary_key_format (thx @rolftimmermans)
Version 1.2.2 2010-10-24
- Fixed all deprecation warnings for rails 3.0.X
- Added
:report
option tocheck_ancestry_integrity!
- Changed ActiveRecord dependency to 2.2.2
- Tested and fixed for ruby 1.8.7 and 1.9.2
- Changed usage of
update_attributes
toupdate_attribute
to allow ancestry column protection
Version 1.2.0 2009-11-07
- Removed some duplication in has_ancestry
- Cleaned up plugin pattern according to https://yehudakatz.com/2009/11/12/better-ruby-idioms/
- Moved parts of ancestry into seperate files
- Made it possible to pass options into the arrange method
- Renamed acts_as_tree to has_ancestry
- Aliased has_ancestry as acts_as_tree if acts_as_tree is available
- Added subtree_of scope
- Updated ordered_by_ancestry scope to support Microsoft SQL Server
- Added empty hash as parameter to exists? calls for older ActiveRecord versions
Version 1.1.4 2009-11-07
- Thanks to a patch from tom taylor, Ancestry now works with different primary keys
Version 1.1.3 2009-11-01
- Fixed a pretty bad bug where several operations took far too many queries
Version 1.1.2 2009-10-29
- Added validation for depth cache column
- Added STI support (reported broken)
Version 1.1.1 2009-10-28
- Fixed some parentheses warnings that where reported
- Fixed a reported issue with arrangement
- Fixed issues with ancestors and path order on postgres
- Added ordered_by_ancestry scope (needed to fix issues)
Version 1.1.0 2009-10-22
- Depth caching (and cache rebuilding)
- Depth method for nodes
- Named scopes for selecting by depth
- Relative depth options for tree navigation methods:
- ancestors
- path
- descendants
- descendant_ids
- subtree
- subtree_ids
- Updated README
- Easy migration from existing plugins/gems
- acts_as_tree checks unknown options
- acts_as_tree checks that options are hash
- Added a bang (!) to the integrity functions
- Since these functions should only be used from ./script/console and not from your application, this change is not considered as breaking backwards compatibility and the major version wasn't bumped.
- Updated install script to point to documentation
- Removed rails specific init
- Removed uninstall script
- Initial version
- Tree building
- Tree navigation
- Integrity checking / restoration
- Arrangement
- Orphan strategies
- Subtree movement
- Named scopes
- Validations