Class: SplitIoClient::UserDefinedSegmentMatcher

Inherits:
Matcher
  • Object
show all
Defined in:
lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb

Overview

class to implement the user defined matcher

Constant Summary collapse

MATCHER_TYPE =
'IN_SEGMENT'

Instance Method Summary collapse

Methods inherited from Matcher

#equals?, #string_type?

Constructor Details

#initialize(segments_repository, segment_name, logger) ⇒ UserDefinedSegmentMatcher

Returns a new instance of UserDefinedSegmentMatcher.



10
11
12
13
14
# File 'lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb', line 10

def initialize(segments_repository, segment_name, logger)
  super(logger)
  @segments_repository = segments_repository
  @segment_name = segment_name
end

Instance Method Details

#match?(args) ⇒ boolean

evaluates if the key matches the matcher

Parameters:

  • key (string)

    key value to be matched

Returns:

  • (boolean)

    evaluation of the key against the segment



22
23
24
25
26
# File 'lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb', line 22

def match?(args)
  matches = @segments_repository.in_segment?(@segment_name, args[:value] || args[:matching_key])
  @logger.log_if_debug("[InSegmentMatcher] #{@segment_name} is in segment -> #{matches}")
  matches
end