Top Level Namespace

Defined Under Namespace

Modules: AmplitudeAnalytics, AmplitudeExperiment, EvaluationInterop

Instance Method Summary collapse

Instance Method Details

#evaluation(rule_json, context_json) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/experiment/local/evaluation/evaluation.rb', line 60

def evaluation(rule_json, context_json)
  lib = EvaluationInterop.libevaluation_interop_symbols()
  evaluate = lib[:kotlin][:root][:evaluate]
  dispose = lib[:DisposeString]
  result_raw = evaluate.call(rule_json, context_json)
  result_json = result_raw.read_string
  result = JSON.parse(result_json)
  dispose.call(result_raw)

  if result["error"] != nil
    raise "#{result["error"]}"
  elsif result["result"] == nil
    raise "Evaluation result is nil."
  end
  result["result"]
end