govuk_schemas 5.0.2 → 5.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4a46de8726a08e51bbe527cfb95d351a24998bf9bc9b2f3fd273529cf5c080a
4
- data.tar.gz: 615c093ccede2446126bef34dd2e64f9c325ba5f9ed212b160ec57e442054522
3
+ metadata.gz: 3dd91e9517ca0bd0ff1f983378aadc0f2cba54f12706b90649105c1e2ffadb64
4
+ data.tar.gz: 41d7ad98aecd4d2e4dd875e3c538edc881415f259b4ea48ed5bffbf345b9422f
5
5
  SHA512:
6
- metadata.gz: bd2bba00a69249ae7b6e8dbc27ecbbb7a029d14dce3a9ce4c765ab3ca050dd68a1299a6263da238dc1759efcea6a74c83e95329fee9450655568ee9fbea98cc0
7
- data.tar.gz: 29a6b200fc9c41c35961bbb6398878f59e8bc948d565c813df2a73051e179a16e05343a5e0821bc4c5624c2185a4233aeb41822a6792a869690fb081d73eefac
6
+ metadata.gz: 0a4fd9a1aebf731f35d4763031e9578b40d365cb6b97102328a9f7945275d2ce4d1ccb1d16b4a77d6f5702b9005cf5d77592fe76cf542ce669421d1512c3143f
7
+ data.tar.gz: 964968fa54d8849052e6d53b141786f07f6b819df891ea81d493c9b75e988a80f0855e2cd8ea6973336dc98a2038b70b446c1e70873bca998385e1cad8c451ed
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 5.0.4
2
+
3
+ * Ensure `Faker` is added as a non-development dependency
4
+
5
+ # 5.0.3
6
+
7
+ * Add support for `email` string types
8
+ * Use `Faker` gem to generate emails and URLs
9
+ * Improve error messages when an unknown type is given in `GovukSchemas::RandomContentGenerator#string_for_type`
10
+
1
11
  # 5.0.2
2
12
 
3
13
  * Fix issue where customised schema validation message was incorrect for a modified payload
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = %w[lib]
20
20
 
21
+ spec.add_dependency "faker", "~> 3.4.1"
21
22
  # This should be kept in sync with the json-schema version of publishing-api.
22
23
  spec.add_dependency "json-schema", ">= 2.8", "< 4.4"
23
24
 
@@ -25,7 +26,7 @@ Gem::Specification.new do |spec|
25
26
  spec.add_development_dependency "pry-byebug"
26
27
  spec.add_development_dependency "rake", "~> 13.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.4"
28
- spec.add_development_dependency "rubocop-govuk", "4.17.1"
29
+ spec.add_development_dependency "rubocop-govuk", "4.18.0"
29
30
 
30
31
  spec.required_ruby_version = ">= 3.1.4"
31
32
  end
@@ -1,3 +1,5 @@
1
+ require "faker"
2
+
1
3
  module GovukSchemas
2
4
  # @private
3
5
  class RandomContentGenerator
@@ -5,6 +7,7 @@ module GovukSchemas
5
7
 
6
8
  def initialize(random: Random.new)
7
9
  @random = random
10
+ Faker::Config.random = @random
8
11
  end
9
12
 
10
13
  def string_for_type(type)
@@ -13,8 +16,20 @@ module GovukSchemas
13
16
  time
14
17
  when "uri"
15
18
  uri
19
+ when "email"
20
+ Faker::Internet.email
16
21
  else
17
- raise "Unknown attribute type `#{type}`"
22
+ raise <<~DOC
23
+ Unsupported JSON schema type `#{type}`
24
+
25
+ Supported formats are:
26
+ - date-time
27
+ - uri
28
+ - email
29
+
30
+ This can be fixed by adding a type to the `string_for_type` method in
31
+ `lib/govuk_schemas/random_content_generator.rb` in https://github.com/alphagov/govuk_schemas
32
+ DOC
18
33
  end
19
34
  end
20
35
 
@@ -25,7 +40,7 @@ module GovukSchemas
25
40
 
26
41
  # TODO: make this more random with query string, optional anchor.
27
42
  def uri
28
- "http://example.com#{base_path}#{anchor}"
43
+ "#{Faker::Internet.url(path: base_path)}#{anchor}"
29
44
  end
30
45
 
31
46
  def base_path
@@ -33,10 +48,8 @@ module GovukSchemas
33
48
  end
34
49
 
35
50
  def govuk_subdomain_url
36
- subdomain = @random.rand(2..4).times.map {
37
- ("a".."z").to_a.sample(@random.rand(3..8), random: @random).join
38
- }.join(".")
39
- "https://#{subdomain}.gov.uk#{base_path}"
51
+ host = Faker::Internet.domain_name(subdomain: true, domain: "gov.uk")
52
+ Faker::Internet.url(host:, path: base_path)
40
53
  end
41
54
 
42
55
  def string(minimum_chars = nil, maximum_chars = nil)
@@ -1,4 +1,4 @@
1
1
  module GovukSchemas
2
2
  # @private
3
- VERSION = "5.0.2".freeze
3
+ VERSION = "5.0.4".freeze
4
4
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_schemas
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 5.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-23 00:00:00.000000000 Z
11
+ date: 2024-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faker
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.4.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.4.1
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: json-schema
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -92,14 +106,14 @@ dependencies:
92
106
  requirements:
93
107
  - - '='
94
108
  - !ruby/object:Gem::Version
95
- version: 4.17.1
109
+ version: 4.18.0
96
110
  type: :development
97
111
  prerelease: false
98
112
  version_requirements: !ruby/object:Gem::Requirement
99
113
  requirements:
100
114
  - - '='
101
115
  - !ruby/object:Gem::Version
102
- version: 4.17.1
116
+ version: 4.18.0
103
117
  description: Gem to generate test data based on GOV.UK content schemas
104
118
  email:
105
119
  - govuk-dev@digital.cabinet-office.gov.uk
@@ -152,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
166
  - !ruby/object:Gem::Version
153
167
  version: '0'
154
168
  requirements: []
155
- rubygems_version: 3.5.10
169
+ rubygems_version: 3.5.14
156
170
  signing_key:
157
171
  specification_version: 4
158
172
  summary: Gem to generate test data based on GOV.UK content schemas