Improved

Ruby SDK v1.0.0

View on GitHub

New Features and Improvements

  • New SDK Creation Method
    Introduced ConvertSdk.create factory for easier client, DataManager, and Client instances creation. This simplifies the instantiation process and improves code readability.

  • New Enum Types Added
    Added several enums: FeatureStatus, LogLevel, SystemEvents, and GoalDataKey, providing a structured way to handle these common option sets.

  • Enhanced Error Handling
    Introduced RuleError and BucketingError singleton enums for clearer error handling during rule processing.

  • Improved Hashing
    Integrated a pure-Ruby implementation of MurmurHash3 x86 32-bit. This vendorized solution enhances performance and stability for hashing needs.

  • Advanced Comparison Logic
    Implemented 13 comparison operators ported from JavaScript, allowing for more robust rule evaluations.

  • Logical Rule Processing
    Ported OR/AND/OR_WHEN rule processing logic from JavaScript, enhancing the flexibility of rule evaluations.

  • Type Signatures for Rule Handling
    Added RBS signatures and refactored comparisons and rule management using Steep. This ensures type safety and reduces potential bugs.

  • New Sentinel Value Object
    Introduced ConvertSdk::Sentinel, a frozen singleton value object that standardizes uninitialized contexts.

  • Enhanced Type Checking
    Built a backend-spec drift gate using generated RBS and Steep probes to ensure consistency and prevent type-related errors.

  • Immutable Bucket Structures
    Added frozen BucketedVariation and BucketedFeature structs, improving data handling integrity by preventing modifications.

  • Type Checking for Supported Ruby Versions
    Enabled RBS and Steep type checking only for Ruby versions >= 3.2, aligning with compatibility standards.

Bug Fixes

  • Authentication Correction
    Fixed the staging/demo SDK-key authentication to adhere to a two-key model, ensuring consistent and secure authentication.

  • SDK Review Improvements
    Addressed issues highlighted in the Gemini review: improved fork-safety, ensured to_number method parity, and enhanced log aggregation for reliable performance.