From 25c2aef2fbaa65795201995ba917ed76295bca51 Mon Sep 17 00:00:00 2001 From: pineapple-thief Date: Thu, 30 Oct 2014 12:00:30 +1000 Subject: [PATCH 1/2] Fix SelectionIdentifier bug Fixes bug with parsing SelectionIdentifier answers for question_form with 'checkbox' setting enabled. Parser returned only the last answer. Now returns value if there is only one answer or array if more. --- lib/rturk/parsers/answer_parser.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/rturk/parsers/answer_parser.rb b/lib/rturk/parsers/answer_parser.rb index 05a3676..033c02a 100644 --- a/lib/rturk/parsers/answer_parser.rb +++ b/lib/rturk/parsers/answer_parser.rb @@ -14,6 +14,16 @@ def self.parse(xml) next if child.blank? if child.name == 'QuestionIdentifier' key = child.inner_text + elsif child.name == 'SelectionIdentifier' + if answer.children.size = 1 + value = child.inner_text + else + if value.nil? + value = Array(child.inner_text) + else + value << child.inner_text + end + end else value = child.inner_text end @@ -26,4 +36,4 @@ def self.parse(xml) end -end \ No newline at end of file +end From d833bf060158ee074caec5d8fcf5170060da2fb9 Mon Sep 17 00:00:00 2001 From: pineapple-thief Date: Sun, 2 Nov 2014 17:23:13 +1000 Subject: [PATCH 2/2] Update answer_parser.rb what a silly mistake on my part --- lib/rturk/parsers/answer_parser.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rturk/parsers/answer_parser.rb b/lib/rturk/parsers/answer_parser.rb index 033c02a..63aed48 100644 --- a/lib/rturk/parsers/answer_parser.rb +++ b/lib/rturk/parsers/answer_parser.rb @@ -15,7 +15,7 @@ def self.parse(xml) if child.name == 'QuestionIdentifier' key = child.inner_text elsif child.name == 'SelectionIdentifier' - if answer.children.size = 1 + if answer.children.length == 1 value = child.inner_text else if value.nil?