Class: Toggly::Evaluators::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/toggly/evaluators/base.rb

Overview

Base class for feature evaluators.

Evaluators determine whether a feature should be enabled based on rules and context.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.typeString

Returns Evaluator type identifier.

Returns:

  • (String)

    Evaluator type identifier

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/toggly/evaluators/base.rb', line 11

def self.type
  raise NotImplementedError, "Subclass must implement .type"
end

Instance Method Details

#evaluate(rule, context, feature_key: nil) ⇒ Boolean?

Evaluate a rule against a context

Parameters:

  • rule (Hash)

    The rule configuration

  • context (Context)

    The evaluation context

  • feature_key (String) (defaults to: nil)

    The feature key (for logging)

Returns:

  • (Boolean, nil)

    true/false for match, nil to continue evaluation

Raises:

  • (NotImplementedError)


21
22
23
# File 'lib/toggly/evaluators/base.rb', line 21

def evaluate(rule, context, feature_key: nil)
  raise NotImplementedError, "Subclass must implement #evaluate"
end

#handles?(rule_type) ⇒ Boolean

Check if this evaluator handles a rule type

Parameters:

  • rule_type (String)

    The rule type

Returns:

  • (Boolean)


29
30
31
# File 'lib/toggly/evaluators/base.rb', line 29

def handles?(rule_type)
  rule_type.to_s.downcase == self.class.type.to_s.downcase
end