Class: SplitIoClient::UserDefinedSegmentMatcher

Inherits:
Object
  • 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'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(segments_repository, segment_name) ⇒ UserDefinedSegmentMatcher

Returns a new instance of UserDefinedSegmentMatcher.



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

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

Instance Method Details

#equals?(obj) ⇒ Boolean

evaluates if the given object equals the matcher

Parameters:

  • object to be evaluated

Returns:



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb', line 29

def equals?(obj)
  if obj.nil?
    false
  elsif !obj.instance_of?(UserDefinedSegmentMatcher)
    false
  elsif self.equal?(obj)
    true
  else
    false
  end
end

#match?(args) ⇒ boolean

evaluates if the key matches the matcher

Parameters:

  • key value to be matched

Returns:

  • evaluation of the key against the segment



19
20
21
# File 'lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb', line 19

def match?(args)
  @segments_repository.in_segment?(@segment_name, args[:value] || args[:matching_key])
end

#string_type?Boolean

Returns:



41
42
43
# File 'lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb', line 41

def string_type?
  false
end