Sha256: 8860478cafc8f76844d19dcb6fea6861d2decc3fb74ceb585a5d3977ebfe6a63

Contents?: true

Size: 1020 Bytes

Versions: 39

Compression:

Stored size: 1020 Bytes

Contents

module SplitIoClient

  #
  # class to implement the user defined matcher
  #
  class UserDefinedSegmentMatcher < NoMethodError

    attr_reader :matcher_type

    def initialize(segments_repository, segment_name)
      @matcher_type = "IN_SEGMENT"
      @segments_repository = segments_repository
      @segment_name = segment_name
    end

    #
    # evaluates if the key matches the matcher
    #
    # @param key [string] key value to be matched
    #
    # @return [boolean] evaluation of the key against the segment
    def match?(key, attributes)
      @segments_repository.in_segment?(@segment_name, key)
    end

    #
    # evaluates if the given object equals the matcher
    #
    # @param obj [object] object to be evaluated
    #
    # @returns [boolean] true if obj equals the matcher
    def equals?(obj)
      if obj.nil?
        false
      elsif !obj.instance_of?(UserDefinedSegmentMatcher)
        false
      elsif self.equal?(obj)
        true
      else
        false
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
splitclient-rb-4.1.0 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-4.1.0.pre.rc2 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-4.1.0.pre.rc1 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-4.0.0 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-4.0.0.pre.rc1 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.3.0 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.3.0.pre.rc1 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.4 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.4.pre.rc5 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.4.pre.rc4 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.4.pre.rc3 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.4.pre.rc2 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.4.pre.rc1 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.3 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.3.pre.rc1 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.2 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.1 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.2.0 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.1.3 lib/engine/matchers/user_defined_segment_matcher.rb
splitclient-rb-3.1.3.pre.rc3 lib/engine/matchers/user_defined_segment_matcher.rb