-
Notifications
You must be signed in to change notification settings - Fork 0
Releases: mongoryhq/mongory-rb
Release/v0.8.1
Full Changelog: v0.8.0...v0.8.1
Assets 2
Release/v0.8.0
Feature:
- Reduce the memory used for tracing by reset trace stack after every single match
- Add mock class
CMatcherto YARDoc refinement - Add api
QueryBuilder#traceto simplify the use of Debugger
Before:
Mongory.debugger.enable records.mongory.where(condition).each { |x| ... } Mongory.debugger.display Mongory.debugger.disable
After:
records.mongory.where(condition).trace { |x| ... }
Full Changelog: v0.7.8...v0.8.0
Assets 2
Release/v0.7.8
Feature
- Mongory::CMatcher.trace_result_colorful=
- it could set to true or false to controll the highlight of tracing match result
- Cross platform precompile
- Now you can install Mongory with precompiled package
- Support platforms:
- x86_64-linux-musl (Linux)
- aarch64-linux-musl (Linux)
- x86_64-linux (Linux)
- aarch64-linux (Linux)
- x86_64-darwin (MacOS Intel)
- arm64-darwin (MacOS Apple Silicon)
- x64-mingw32 (Windows)
- x64-mingw-ucrt (Windows)
- If your platform not in here, you need to install Mongory with compile toolchain
- These losing fix versions between v0.7.1 and v0.7.8 are all experimental pushes
Full Changelog: v0.7.1...v0.7.8
Assets 2
Release/0.7.1
[0.7.1] - 2025年08月17日
Fixes
- Linter error
- CMatcher get crash if print trace when not enable trace yet
Full Changelog: v0.7.0...v0.7.1
Assets 2
v0.7.0
What's Changed
- feat(core-bridge): integrate
mongory-coresubmodule and Ruby C extension exposingMongory::CMatcherby @koten0224 in #5 - Feature/performance improvement by @koten0224 in #6
Full Changelog: v0.6.3...v0.7.0
Assets 2
Release/0.6.3
Mongory v0.6.3 Release Notes
Release date: 2025年05月27日
This is a developer-focused minor release with key refactorings and execution optimizations.
✨ Highlights
🧠 Matcher Prioritization for Performance Optimization
Matchers can now define their own priority level. Multi-condition matchers such as $and and array-record will sort sub-matchers by priority before evaluation.
This change enables:
- Faster short-circuiting when cheap matchers fail early
- A performance-aware matching sequence
- The foundation for future adaptive optimizers
🧱 AbstractMultiMatcher: Unified Architecture for Logical Matchers
A new abstract base class AbstractMultiMatcher is introduced to consolidate logic shared by compound matchers ($and, $or, $nor etc.).
This refactor:
- Removes redundant logic across multiple matchers
- Ensures consistent behavior for all compound matchers
- Makes the matcher layer more maintainable and extensible
🔧 Refactor Details
$inand$ninmatchers now handleRangeobjects using the unified matcher array approach- Matcher combining logic (
combine_proc) is now centralized in the abstract base - Matcher initialization paths are simplified across the board
🐞 Fixes
- Type comparison in
converted.rbnow explicitly uses::Hashand::Arrayto prevent namespace collision with Mongory internal classes
🧪 Test Improvements
- Added edge case specs for
$inand$ninwith nil and empty conditions
🧹 Chores
.vscode/directory is now ignored in version control
💭 Developer Notes
This release does not introduce user-facing API changes but is crucial for:
- Future performance tuning
- Extending the matcher system (e.g., custom compound matchers)
- Cleaner code separation and runtime behavior predictability
Assets 2
Release/0.6.1
- Add size matcher
- $in and $nin supports range condition
- Query matcher inherits from Hash condition matcher to accept hash condition only
- Introduced Converted to mark converted data and prevent double convert
Assets 2
Release/0.6.0
Release Notes for Mongory 0.6.0
Overview
This release introduces a major architectural change in the matcher system, moving from method-based to Proc-based implementation. This change brings significant performance improvements and better code organization.
Key Changes
New Context System
- Introduced Context class for better state management
- Added support for configuration sharing
- Improved control over data conversion
Proc-based Matcher System
- Replaced method-based matching with Proc-based implementation
- Added Proc caching for better performance
- Improved error handling and debugging support
Performance Optimizations
- Optimized empty condition handling
- Reduced memory usage
- Improved execution speed
Breaking Changes
- Removed
matchmethod in favor ofraw_proc - Changed converter behavior
- Modified fallback behavior in converters
Migration Guide
To migrate to 0.6.0:
- Update matcher implementations to use
raw_procinstead ofmatch - Use Context for configuration management
- Update converter implementations to work with new Proc-based system
Known Issues
- None
Future Plans
- Further performance optimizations
- Enhanced debugging capabilities
- More comprehensive documentation
Assets 2
Release/0.5.0
Mongory v0.5.0 Release
We are excited to announce the release of Mongory v0.5.0! This release introduces a significant performance improvement with the new fast mode implementation.
Key Features
Fast Mode Implementation
- New
fastmethod for optimized query execution - Proc-based matching for efficient record filtering
- Improved memory efficiency through compiled matching logic
- Enhanced error handling in query execution
Performance Benefits
- Reduced overhead in record matching
- Better memory utilization
- More efficient query execution for large datasets
Breaking Changes
None
Migration Guide
No migration required for this release.
Usage Example
# Standard mode records.mongory.where(:age.gte => 18).each { |record| ... } # Fast mode (recommended for large datasets) records.mongory.where(:age.gte => 18).fast { |record| ... }
Contributors
[Your Name/Team]
Assets 2
Release/0.4.0
Release: v0.4.0
Released on 2025年04月20日
🚀 Highlights
-
Regex support inside array fields
- Now you can query arrays using regex directly. Example:
This will match any record where the
Mongory.where(tags: /vip/)
tagsarray includes a value matching/vip/.
- Now you can query arrays using regex directly. Example:
-
Matcher generator improvements
update_initializermethod is now public — enabling better CLI tooling and test control.- Template documentation now includes condition examples, matcher structure, and debugging usage.
-
Refined internals
- Cleaner
ValueConverterfallback using method reference instead of dynamic method caching.
- Cleaner
-
Package renamed
- The gem is now named
mongory, instead ofmongory-rb.
- The gem is now named
📦 Breaking Change
- 💥
mongory-rb.gemspechas been renamed tomongory.gemspec. - You may need to update your
Gemfileandrequirepaths accordingly.
📚 Documentation
- Improved inline documentation in matcher templates.
- Fixed incorrect debugger references in generated files.
📁 Files Changed
lib/mongory/matchers/array_record_matcher.rblib/generators/mongory/matcher/templates/matcher.rb.erblib/generators/mongory/matcher/matcher_generator.rblib/mongory/converters/value_converter.rbGemfile,gemspecupdated due to rename
Thanks for using Mongory ❤️