Class: ThisFeature::Adapters::SplitIo

Inherits:
Base
  • Object
show all
Defined in:
lib/this_feature/adapters/split_io.rb

Constant Summary collapse

UNDEFINED_KEY =

used as treatment key when none is given, it’s required by split

'undefined_key'

Instance Method Summary collapse

Constructor Details

#initialize(client: nil, context_key_method: nil) ⇒ SplitIo

Returns a new instance of SplitIo.



9
10
11
12
13
14
# File 'lib/this_feature/adapters/split_io.rb', line 9

def initialize(client: nil, context_key_method: nil)
  @client = client || default_split_client
  @context_key_method = context_key_method

  @client.block_until_ready
end

Instance Method Details

#control?(flag_name, context: UNDEFINED_KEY, data: {}) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/this_feature/adapters/split_io.rb', line 20

def control?(flag_name, context: UNDEFINED_KEY, data: {})
  treatment(flag_name, context: context, data: data).include?('control')
end

#off?(flag_name, context: UNDEFINED_KEY, data: {}) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/this_feature/adapters/split_io.rb', line 28

def off?(flag_name, context: UNDEFINED_KEY, data: {})
  treatment(flag_name, context: context, data: data).eql?('off')
end

#on?(flag_name, context: UNDEFINED_KEY, data: {}) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/this_feature/adapters/split_io.rb', line 24

def on?(flag_name, context: UNDEFINED_KEY, data: {})
  treatment(flag_name, context: context, data: data).eql?('on')
end

#present?(flag_name) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/this_feature/adapters/split_io.rb', line 16

def present?(flag_name)
  !control?(flag_name)
end