class Unleash::VariantOverride
Attributes
context_name[RW]
values[RW]
Public Class Methods
new(context_name, values = [])
click to toggle source
# File lib/unleash/variant_override.rb, line 5 def initialize(context_name, values = []) self.context_name = context_name self.values = values || [] validate end
Public Instance Methods
matches_context?(context)
click to toggle source
# File lib/unleash/variant_override.rb, line 16 def matches_context?(context) raise ArgumentError, 'context must be of class Unleash::Context' unless context.class.name == 'Unleash::Context' context_value = case self.context_name when 'userId' context.user_id when 'sessionId' context.session_id when 'remoteAddress' context.remote_address else context.properties.fetch(self.context_name, nil) end Unleash.logger.debug "VariantOverride: context_name: #{context_name} context_value: #{context_value}" self.values.include? context_value.to_s end
to_s()
click to toggle source
# File lib/unleash/variant_override.rb, line 12 def to_s "<VariantOverride: context_name=#{self.context_name},values=#{self.values}>" end
Private Instance Methods
validate()
click to toggle source
# File lib/unleash/variant_override.rb, line 38 def validate raise ArgumentError, 'context_name must be a String' unless self.context_name.is_a?(String) raise ArgumentError, 'values must be an Array of strings' unless self.values.is_a?(Array) \ && self.values.reject{ |v| v.is_a?(String) }.empty? end