@@ -7,7 +7,7 @@ class Config
77 OPTIONS = %i[
88 environment_key api_url custom_headers request_timeout_seconds enable_local_evaluation
99 environment_refresh_interval_seconds retries enable_analytics default_flag_handler
10- offline_mode offline_handler logger
10+ offline_mode offline_handler polling_manager_failure_limit logger
1111 ] . freeze
1212
1313 # Available Configs
@@ -38,6 +38,8 @@ class Config
3838 # bypasses requests to the api.
3939 # +offline_handler+ - A file object that contains a JSON serialization of
4040 # the entire environment, project, flags, etc.
41+ # +polling_manager_failure_limit+ - An integer to control how long to suppress errors in
42+ # the polling manager for local evaluation mode.
4143 # +logger+ - Pass your logger, default is Logger.new($stdout)
4244 #
4345 attr_reader ( *OPTIONS )
@@ -89,6 +91,7 @@ def build_config(options)
8991 @default_flag_handler = opts [ :default_flag_handler ]
9092 @offline_mode = opts . fetch ( :offline_mode , false )
9193 @offline_handler = opts [ :offline_handler ]
94+ @polling_manager_failure_limit = opts . fetch ( :polling_manager_failure_limit , 10 )
9295 @logger = options . fetch ( :logger , Logger . new ( $stdout) . tap { |l | l . level = :debug } )
9396 end
9497 # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
0 commit comments