From dc323ac15bd3cda6bfe9a651188e9096bb251feb Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 11 Feb 2022 12:15:24 +0000 Subject: [PATCH] remove eval --- app/models/form/page.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/models/form/page.rb b/app/models/form/page.rb index 498d3d672..ad8a4a8af 100644 --- a/app/models/form/page.rb +++ b/app/models/form/page.rb @@ -44,12 +44,19 @@ private }.compact end + def send_chain(arr, case_log) + Array(arr).inject(case_log) { |o, a| o.public_send(*a) } + end + def depends_on_met(case_log) return true unless depends_on depends_on.any? do |conditions_set| conditions_set.all? do |question, value| - value.nil? ? eval("case_log.#{question}") == value : !eval("case_log.#{question}").nil? && eval("case_log.#{question}") == value + parts = question.split(".") + case_log_value = send_chain(parts, case_log) + + value.nil? ? case_log_value == value : !case_log_value.nil? && case_log_value == value end end end