From b99566afb397106fedc97ce53d5496a038e4e0c5 Mon Sep 17 00:00:00 2001 From: Andy Zhao Date: Thu, 30 Aug 2018 16:32:20 -0400 Subject: [PATCH] Improve GistTag (#555) --- app/liquid_tags/gist_tag.rb | 6 ++++-- spec/liquid_tags/gist_tag_spec.rb | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/liquid_tags/gist_tag.rb b/app/liquid_tags/gist_tag.rb index 406033e30..3c6fdcf5e 100644 --- a/app/liquid_tags/gist_tag.rb +++ b/app/liquid_tags/gist_tag.rb @@ -32,12 +32,14 @@ class GistTag < LiquidTagBase if valid_link?(link) input_no_space else - raise StandardError, "Invalid Gist link" + raise StandardError, + "Invalid Gist link: #{link} Links must follow this format: https://gist.github.com/username/gist_id" end end def valid_link?(link) - (link =~ /^(http(s)?:)?\/\/(gist.github.com)\/.*/)&.zero? + (link =~ /^https\:\/\/gist\.github\.com\/([a-zA-Z0-9\-]){1,39}\/([a-zA-Z0-9]){32}\s/)&. + zero? end end diff --git a/spec/liquid_tags/gist_tag_spec.rb b/spec/liquid_tags/gist_tag_spec.rb index ab0d4630c..e011617d0 100644 --- a/spec/liquid_tags/gist_tag_spec.rb +++ b/spec/liquid_tags/gist_tag_spec.rb @@ -8,6 +8,7 @@ RSpec.describe GistTag, type: :liquid_template do "//pastebin.com/raw/b77FrXUA#gist.github.com", "https://gist.github.com@evil.com", "https://gist.github.com.evil.com", + "https://gist.github.com/string/string/raw/string/file", ] end