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) ⇒ UserDefinedSegmentMatcher

Returns a new instance of UserDefinedSegmentMatcher.



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

def initialize(segments_repository, segment_name)
  @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



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

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