Releases: optimizely/ruby-sdk
Releases · optimizely/ruby-sdk
Release 3.8.0
3.8.0
February 16th, 2021
New Features:
-
Introducing a new primary interface for retrieving feature flag status, configuration and associated experiment decisions for users (#274, #279). The new
OptimizelyUserContext
class is instantiated withcreate_user_context
and exposes the following APIs to getOptimizelyDecision
:- set_attribute
- decide
- decide_all
- decide_for_keys
- track_event
-
For details, refer to our documentation page: https://docs.developers.optimizely.com/full-stack/v4.0/docs/ruby-sdk.
Release 3.7.0
Release 3.6.0
Release 3.5.0
3.5.0
July 9th, 2020
New Features:
- Add support for JSON feature variables (#251)
- Add support for authenticated datafiles (#255)
- Added support for authenticated datafiles.
HTTPProjectConfigManager
now acceptsdatafile_access_token
to be able to fetch authenticated datafiles. - Add support for proxy server for http config manager. (#262)
Bug Fixes:
Release 3.5.0-beta
Release 3.4.0
3.4.0
January 23rd, 2020
New Features:
- Added a new API to get project configuration static data.
- Call
get_optimizely_config
to get a snapshot of project configuration static data. - It returns an
OptimizelyConfig
instance which includes a datafile revision number, all experiments, and feature flags mapped by their key values. - Added caching for
get_optimizely_config
-OptimizelyConfig
object will be cached and reused for the lifetime of the datafile. - For details, refer to our documentation page: https://docs.developers.optimizely.com/full-stack/docs/optimizelyconfig-ruby.
- Call
Release 3.3.2
Release 3.3.1
3.3.1
October 10th, 2019
Bug Fixes:
- Include LICENSE file in built gem (#208) as per rubygems guidelines around license files.
Release 3.3.0
3.3.0
September 26th, 2019
New Features:
- Added non-typed
get_feature_variable
method (#190) as a more idiomatic approach to getting values of feature variables.- Typed
get_feature_variable
methods will still be available for use.
- Typed
- Added support for event batching via the event processor.
- Events generated by methods like
activate
,track
, andis_feature_enabled
will be held in a queue until the configured batch size is reached, or the configured flush interval has elapsed. Then, they will be batched into a single payload and sent to the event dispatcher. - To configure event batching, set the
batch_size
andflush_interval
properties in theOptimizelyFactory
usingOptimizelyFactory.max_event_batch_size(batch_size, logger)
andOptimizelyFactory.max_event_flush_interval(flush_interval, logger)
and then createOptimizelyFactory.custom_instance
. - Event batching is enabled by default.
batch_size
defaults to10
.flush_interval
defaults to30000
milliseconds. - Added the
close
method representing the process of closing the instance. Whenclose
is called, any events waiting to be sent as part of a batched event request will be immediately batched and sent to the event dispatcher.
Deprecated
EventBuilder
was deprecated and now we will be usingUserEventFactory
andEventFactory
to create logEvents.LogEvent
was deprecated fromActivate
andTrack
notifications in favor of explicitLogEvent
notification.
Release 3.2.0
3.2.0
July 25th, 2019
New Features:
- Added support for automatic datafile management via
HTTPProjectConfigManager
:- The
HTTPProjectConfigManager
is an implementation of the Interface
ProjectConfigManager
.- Users must first build the
HTTPProjectConfigManager
with an SDK key and then provide that instance to theOptimizely
instance. - An initial datafile can be provided to the
HTTPProjectConfigManager
to bootstrap before making HTTP requests for the hosted datafile. - Requests for the datafile are made in a separate thread and are scheduled with fixed delay.
- Configuration updates can be subscribed to via the NotificationCenter built with the
HTTPProjectConfigManager
. Optimizely
instance must be disposed after the use orHTTPProjectConfigManager
must be disposed after the use to release resources.
- Users must first build the
- The
- The
OptimizelyFactory
provides basic methods for instantiating the Optimizely SDK with a minimal number of parameters. CheckREADME.md
for more details.