lib/govuk_schemas/random.rb in govuk_schemas-1.0.0 vs lib/govuk_schemas/random.rb in govuk_schemas-2.0.0
- old
+ new
@@ -45,10 +45,14 @@
def anchor
"##{SecureRandom.hex}"
end
+ def random_identifier(separator:)
+ Utils.parameterize(WORDS.sample(rand(1..10)).join('-')).gsub('-', separator)
+ end
+
def string_for_regex(pattern)
case pattern.to_s
when '^(placeholder|placeholder_.+)$'
['placeholder', "placeholder_#{WORDS.sample}"].sample
when '^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$'
@@ -60,10 +64,12 @@
when "^[1-9][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[0-1])$"
Date.today.iso8601
when "^#.+$"
anchor
when "[a-z-]"
- Utils.parameterize(WORDS.sample(rand(1..10)).join('-'))
+ random_identifier(separator: '-')
+ when "^[a-z_]+$"
+ random_identifier(separator: '_')
when "^/(([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})+(/([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)*)?(\\?([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)?(#([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)?$"
base_path
when "^https://([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[A-Za-z0-9])?\\.)+campaign\\.gov\\.uk(/(([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})+(/([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)*)?(\\?([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)?(#([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)?)?$"
govuk_campaign_url
when '[a-z0-9\-_]'