- Add support for module prepended blocks in Tins::Concern:
- Added
prepend_features
method to Tins concern - Updated ConcernTest to test prepend feature
- Raise StandardError for duplicate block definitions for included and prepended blocks
- Added
- Added
class_methods
method to Tins concern:- Added
class_methods
method to lib/tins/concern.rb- Creates or retrieves ClassMethods module for defining class-level methods
- Updated tests in
tests/concern_test.rb
- Added test for new
baz1
andbaz2
methods- Tested availability of
bar
,baz1
, andbaz2
methods on A
- Tested availability of
- Added test for new
- Added
- Fixed a typo in the code
- Refactor bfs method in
hash_bfs.rb
:- Rename
include_nodes
variable tovisit_internal
- Update test cases in
hash_bfs_test.rb
to use new method signature - Update method signature and docstring to reflect new behavior
- Rename
- Update hash conversion logic:
- Rename method parameter from
v
toobject
- Use
object
instead ofv
consistently throughout the method - Add documentation for new method name and behavior
- Rename method parameter from
- Implemented breadth-first search in hashes using the
Tins::HashBFS
module.- Added tests for the
Tins::HashBFS
module.
- Added tests for the
- Reformatted code.
- Removed TODO note from the
TODO
file. - Cleaned up test requirements:
- Added
require 'tins'
totests/test_helper.rb
. - Removed unnecessary
require 'tins'
lines from test files.
- Added
- Refactored BASE16 constants and alphabet:
- Added
BASE16_LOWERCASE_ALPHABET
constant. - Added
BASE16_UPPERCASE_ALPHABET
constant.
- Added
- Updated bundler command to use full index:
- Added
--full-index
flag tobundle install
. - Replaced
bundle update
withbundle install --full-index
.
- Added
- Secure write functionality updated
- Added support for
Pathname
objects insecure_write
- Updated
File.new
call to useto_s
method on filename - New test case added for
secure_write
withPathname
object
- Added support for
- Refactor version comparisons in various modules
- Added
Tins::StringVersion.compare
method to compare Ruby versions with operators. - Replaced direct version comparisons with
compare
method in multiple modules.
- Added
- Deprecate deep_const_get and const_defined_in? methods
- Add deprecation notice for
const_defined_in?
for ruby >= 1.8 - Add deprecation notice for
deep_const_get
method with a new method nameconst_get
for ruby >= 2.0
- Add deprecation notice for
- Refactor deprecation logic and tests
- Update
Tins::Deprecate#deprecate
method to allow for optionalnew_method
parameter. - Modify
tests/deprecate_test.rb
to test deprecated methods with and without messages.
- Update
- Prepare count_by method for deprecation
- Suggest using
count
with block instead in newer Rubies
- Suggest using
- Prepare uniq_by / uniq_by! method for deprecation
- Suggest using
uniq
/uniq!
with block instead in newer Rubies
- Suggest using
- Changes for Ruby 3.3 and 3.4
- Added support for Ruby 3.3
- Added dependency on
bigdecimal
for upcoming Ruby 3.4
- Other Changes
- Halting once is enough
- Added ruby 3.2, removed some older ones
- Added test process convenience method
- Removed mutex for finalizer, allowing Ruby to handle cleanup instead.
- Significant changes:
- Removed
mutex
variable - Updated code to rely on Ruby's built-in finalization mechanism
- Removed
- attempt method now supports passing of previously caught exception into the called block to let the handling behaviour depend on it.
- Some smaller changes to make debugging on multiple Ruby releases, easier via all_images.
- Enable fast failing mode
- Add convenience method to create
Tins::StringVersion
objects. - Pass previous exception to attempt block ... ... to allow reacting to it, logging it etc.
- Remove additional groups
- Use debug instead of byebug for development
- Ignore more hidden files in the package
- Update Ruby version to 3.1