From 137ecd99c11e51fbafc9d7380bccf852a18473ed Mon Sep 17 00:00:00 2001
From: Jorn van de Beek <jornvandebeek@roqua.nl>
Date: Wed, 24 Feb 2021 15:53:49 +0100
Subject: [PATCH] Strip slashes from question title numbers

---
 Gemfile.lock                                       |  2 +-
 lib/quby/compiler/services/quby_proxy.rb           |  9 ++++++++-
 spec/quby/compiler/outputs/seed_serializer_spec.rb | 12 ++++++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/Gemfile.lock b/Gemfile.lock
index 128590f..464f44d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
 PATH
   remote: .
   specs:
-    quby-compiler (0.1.1)
+    quby-compiler (0.2.1)
       actionview (>= 5.0)
       activemodel (>= 5.0)
       activesupport (>= 5.0)
diff --git a/lib/quby/compiler/services/quby_proxy.rb b/lib/quby/compiler/services/quby_proxy.rb
index 7413101..d9c0a55 100644
--- a/lib/quby/compiler/services/quby_proxy.rb
+++ b/lib/quby/compiler/services/quby_proxy.rb
@@ -114,6 +114,7 @@ module Quby
             update_dqtypes_depends(d_qtypes, question, options)
           end
 
+          strip_question_number_slashes(question_titles)
           seed["quests"] = sort_nested_hash(question_titles)
           seed["d_qtypes"] = sort_nested_hash(d_qtypes)
           seed["name"] = questionnaire.title
@@ -286,7 +287,13 @@ module Quby
         end
 
         def strip_p_tag(text)
-          text.gsub(/^<p>(.*)<\/p>\n?$/, "\\1")
+          text.gsub /^<p>(.*)<\/p>\n?$/, '\1'
+        end
+
+        def strip_question_number_slashes(quests)
+          quests.transform_values! do |value|
+            value.gsub /^(\s*\d+)\\/, '\1'
+          end
         end
 
         def process_scores
diff --git a/spec/quby/compiler/outputs/seed_serializer_spec.rb b/spec/quby/compiler/outputs/seed_serializer_spec.rb
index 100c1c3..c11f34c 100644
--- a/spec/quby/compiler/outputs/seed_serializer_spec.rb
+++ b/spec/quby/compiler/outputs/seed_serializer_spec.rb
@@ -21,6 +21,18 @@ describe Quby::Compiler::Outputs::SeedSerializer do
     ])
   end
 
+
+  it 'strips slashes after question numbers' do
+    questionnaire = dsl("test") do
+      title "Test Quest"
+      panel do
+        question :v_1, type: :string, title: '  12\. vraag nummer 1'
+      end
+    end
+    serializer = described_class.new(questionnaire, [])
+    expect(serializer.generate.first['quests']).to eq("v_1"=>"  12. vraag nummer 1")
+  end
+
   def dsl(key, &block)
     Quby::Compiler::DSL.build(key, nil, &block)
   end
-- 
GitLab