Class: Flagsmith::EnvironmentDataPollingManager

Inherits:
Object
  • Object
show all
Includes:
SDK::Intervals
Defined in:
lib/flagsmith/sdk/pooling_manager.rb

Overview

Manager to asynchronously fetch the environment

Instance Method Summary collapse

Methods included from SDK::Intervals

#clear_interval, #set_interval

Constructor Details

#initialize(main, refresh_interval_seconds) ⇒ EnvironmentDataPollingManager

Returns a new instance of EnvironmentDataPollingManager.



10
11
12
13
# File 'lib/flagsmith/sdk/pooling_manager.rb', line 10

def initialize(main, refresh_interval_seconds)
  @main = main
  @refresh_interval_seconds = refresh_interval_seconds
end

Instance Method Details

#startObject



15
16
17
18
19
20
21
22
23
# File 'lib/flagsmith/sdk/pooling_manager.rb', line 15

def start
  update_environment = lambda {
    stop
    @interval = set_interval(@refresh_interval_seconds) { @main.update_environment }
  }

  # TODO: this call should be awaited for getIdentityFlags/getEnvironmentFlags when enableLocalEvaluation is true
  update_environment.call
end

#stopObject



25
26
27
28
29
# File 'lib/flagsmith/sdk/pooling_manager.rb', line 25

def stop
  return unless @interval

  clear_interval(@interval)
end