53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/featureflow/client.rb', line 53
def evaluate(key, user)
raise ArgumentError, 'key must be a string' unless key.is_a?(String)
raise ArgumentError, 'user is required' unless user
unless user.is_a?(String) || user.is_a?(Hash)
raise ArgumentError, 'user must be either a string user id,' + \
' or a Hash built using Featureflow::UserBuilder)'
end
user = UserBuilder.new(user).build if user.is_a?(String)
user = user.dup
user[:attributes] = user[:attributes].merge('featureflow.user.id' => user[:id])
Evaluate.new(
feature_key: key,
feature: feature(key),
failover_variant: failover_variant(key),
user: user,
salt: '1',
events_client: @events_client
)
end
|