Class: FlagManger

Inherits:
Object
  • Object
show all
Defined in:
lib/tailslide/flag_manager.rb

Direct Known Subclasses

Tailslide::FlagManger

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nats_server: '', stream: '', app_id: '', sdk_key: '', user_context: '', redis_host: '', redis_port: '') ⇒ FlagManger

Returns a new instance of FlagManger.



8
9
10
11
12
13
# File 'lib/tailslide/flag_manager.rb', line 8

def initialize(nats_server:'', stream:'', app_id:'', sdk_key:'', user_context:'', redis_host:'', redis_port:'')
  @nats_client = NatsClient.new(server_url: nats_server, stream:stream, subject:app_id, callback:method(:set_flags), token:sdk_key)
  @redis_ts_client = RedisTimeSeriesClient.new(redis_host, redis_port)
  @user_context = user_context
  @flags = []
end

Instance Attribute Details

#nats_clientObject (readonly)

Returns the value of attribute nats_client.



6
7
8
# File 'lib/tailslide/flag_manager.rb', line 6

def nats_client
  @nats_client
end

#redis_ts_clientObject (readonly)

Returns the value of attribute redis_ts_client.



6
7
8
# File 'lib/tailslide/flag_manager.rb', line 6

def redis_ts_client
  @redis_ts_client
end

#user_contextObject (readonly)

Returns the value of attribute user_context.



6
7
8
# File 'lib/tailslide/flag_manager.rb', line 6

def user_context
  @user_context
end

Instance Method Details

#disconnectObject



28
29
30
31
# File 'lib/tailslide/flag_manager.rb', line 28

def disconnect
  nats_client.disconnect
  redis_ts_client.disconnect
end

#get_flagsObject



24
25
26
# File 'lib/tailslide/flag_manager.rb', line 24

def get_flags
  return @flags
end

#initialize_flagsObject



15
16
17
18
# File 'lib/tailslide/flag_manager.rb', line 15

def initialize_flags
  nats_client.initialize_flags
  redis_ts_client.init
end

#new_toggler(config) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/tailslide/flag_manager.rb', line 33

def new_toggler(config)
  p config

  return Toggler.new(**config, get_flags:method(:get_flags), user_context:user_context,
                     emit_redis_signal:redis_ts_client.method(:emit_signal)
                    )
end

#set_flags(flags) ⇒ Object



20
21
22
# File 'lib/tailslide/flag_manager.rb', line 20

def set_flags(flags)
  @flags = flags
end