Class: SplitIoClient::BetweenSemverMatcher
- Defined in:
- lib/splitclient-rb/engine/matchers/between_semver_matcher.rb
Constant Summary collapse
- MATCHER_TYPE =
'BETWEEN_SEMVER'
Instance Attribute Summary collapse
-
#attribute ⇒ Object
readonly
Returns the value of attribute attribute.
Instance Method Summary collapse
-
#initialize(attribute, start_value, end_value, logger, validator) ⇒ BetweenSemverMatcher
constructor
A new instance of BetweenSemverMatcher.
- #match?(args) ⇒ Boolean
Methods inherited from Matcher
Constructor Details
#initialize(attribute, start_value, end_value, logger, validator) ⇒ BetweenSemverMatcher
Returns a new instance of BetweenSemverMatcher.
9 10 11 12 13 14 15 16 |
# File 'lib/splitclient-rb/engine/matchers/between_semver_matcher.rb', line 9 def initialize(attribute, start_value, end_value, logger, validator) super(logger) @validator = validator @attribute = attribute @semver_start = SplitIoClient::Semver.build(start_value, logger) @semver_end = SplitIoClient::Semver.build(end_value, logger) @logger = logger end |
Instance Attribute Details
#attribute ⇒ Object (readonly)
Returns the value of attribute attribute.
7 8 9 |
# File 'lib/splitclient-rb/engine/matchers/between_semver_matcher.rb', line 7 def attribute @attribute end |
Instance Method Details
#match?(args) ⇒ Boolean
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/splitclient-rb/engine/matchers/between_semver_matcher.rb', line 18 def match?(args) return false unless verify_semver_arg?(args, 'BetweenSemverMatcher') value_to_match = SplitIoClient::Semver.build(args[:attributes][@attribute.to_sym], @logger) if value_to_match.nil? || @semver_start.nil? || @semver_end.nil? @logger.error('betweenStringMatcherData is required for BETWEEN_SEMVER matcher type') return false end matches = ([0, -1].include?(@semver_start.compare(value_to_match)) && [0, 1].include?(@semver_end.compare(value_to_match))) @logger.debug("[BetweenMatcher] #{value_to_match} matches -> #{matches}") matches end |