Releases: configcat/ruby-sdk
Releases · configcat/ruby-sdk
v8.0.1
v8.0.0
New features and improvements:
- Add support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic.
- Overhaul setting evaluation-related logging and make it consistent across SDKs.
- Performance improvements to setting evaluation when info level logging is turned off.
Breaking changes:
- The User's
custom
dictionary also allows attribute values other thanstring
values. - The config JSON v5 format is no longer accepted by flag overrides. If you use this feature, you will need to convert your override JSON file(s) to the v6 format. You can do this using the
config-json convert v5-to-v6
command of the ConfigCat CLI tool. - Rename the
matched_evaluation_percentage_rule
property tomatched_targeting_rule
and thematched_evaluation_rule`` property to
matched_percentage_optionin
EvaluationDetails`. - Throw
ConfigCatClientException
when the SDK key is passed toConfigCatClient.get
in an invalid format (unless the client is set up to use local-only flag override behaviour).
v7.0.0
Please note that this version has several breaking changes, so you may need to adjust your code when upgrading, especially if you're using deprecated APIs or a custom cache implementation. You can find the detailed list of breaking changes below.
- Removed deprecated init functions:
ConfigCat.create_client
,ConfigCat.create_client_with_auto_poll
,ConfigCat.create_client_with_lazy_load
,ConfigCat.create_client_with_manual_poll
. Create the ConfigCat Client as a Singleton object withConfigCat.get()
instead. - Revise caching of downloaded config data: Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of different platforms.
v6.1.0
New features and improvements:
- Logging changes
- Include event IDs in log messages to make identification of log events easier.
- Revise log messages and make them consistent across the ConfigCat SDKs.
Bug fixes:
v6.0.0
Added
set_default_user(user)
/clear_default_user
methods to set / remove a default user object used when there's no user passed toget_value
/get_value_details
/get_all_values
/get_all_variation_ids
methods.set_offline
/set_online
methods to indicate whether the SDK is allowed to make HTTP calls or not. In 'offline' mode the SDK works from the cache only.on_client_ready
/on_config_changed
/on_flag_evaluated
/on_error
hooks. Subscription is possible on client initialization options and with thehooks
property onConfigCatClient
.get_value_details
method to retrieve evaluation details along with the feature flag / setting value. It returns the same details that is passed toon_flag_evaluated
on each evaluation.get_all_value_details
method to retrieve evaluation details along with all feature flags/ setting values.
Changed
- Client initialization options were moved to a
ConfigCatOptions
object that can be passed to the newconfigcatclient.get
factory method. Thecreate_client*
methods are deprecated. - In the
create_client*
methods the following params changed:config_cache_class
toconfig_cache
: A subclass ofConfigCache
object is expected here (not a class).connect_timeout
toconnect_timeout_seconds
(to indicate the unit of measure).read_timeout
toread_timeout_seconds
(to indicate the unit of measure).flag_overrides
expects a newFlagOverrides
object (not an OverrideDataSource object).
ConfigCatClient
'sstop
method is renamed toclose
.ConfigCatClient
can be explicitly closed viaclient.close
andconfigcatclient.close_all
methods.force_refresh
now returns with a result object that indicates whether the refresh succeeded or not.- The TTL of
lazy_load
and interval ofauto_poll
is compared against a cachedfetch_time
, which allows the SDK not necessarily download a newconfig.json
at each application restart. - Fetch logic handles
403
response status and updates cachedfetch_time
in case of304
403
and404
response status.
v5.0.2
v5.0.1
v5.0.0
- The evaluation logs are staying on info level but they are now combined into a single log entry.
open_timeout
andread_timeout
initialization parameters were added to be able to configure HTTP timeout parameters.- A
get_all_values()
function was added that evaluates all flags & settings in a dictionary. - New
flag_overrides
parameter to support the reading of flags & settings from a file or a hash.
v4.0.0
Addressing global data handling and processing trends via Data Governance feature. Customers can control the geographic location where their config JSONs get published to. See the docs.
We are introducing a new DataGovernance initialization parameter. Set this parameter to be in sync with the Data Governance preference on the Dashboard.
Breaking change:
- Custom cache implementations should implement the new cache interface using key parameter in the get/set methods.