govuk_personalisation 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08b691342c4c22592162f9eb11e8c8f74b8fea75af5669568c71d15337166626'
4
- data.tar.gz: 0e266ec1d1f91a7537ccef2c1a4398e90b4c0435546772d41877cfd34e9df092
3
+ metadata.gz: 5ba6e9b0f0533ecc545582e031f6faf0f734d727e42478ffea40ddac7635986e
4
+ data.tar.gz: '0974635ac43c8dfacb6894787db3d36b2608438117b41640364bfd40dcecb125'
5
5
  SHA512:
6
- metadata.gz: 5f265633173eee3b60e436c781ddb4047d849471cc1760d88e8c3e497a79d8a0fd188a4c3908feb33fecf3b8c2b171dbbc1ea7f08ed837fae2d58cfc5658ae35
7
- data.tar.gz: d90dc8a74720981e16d7d379939c08072806ead930d012bb40c1a57ac2e90ae3879a10d7fb0bfbe3d874d39c70312952d72c0c9eca452fd757906c253ecb402e
6
+ metadata.gz: 0fdb4622d551eae409978cac47ea4dfc78205a33d6e6b324b0a4eae4ab97eb5730571cd038a49ae9d74167a50093771aa96e60062a8fadfe33dc9b57206da2a1
7
+ data.tar.gz: f11fc215ac0ab1bb8147c973398b1bba72a1f58a7ea838473ea05f305a2ac169bd527fb61e8eb7e5676be14fb02fde5ef821800868488b6250b0591e64e6aab0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.7.0
2
+
3
+ - Add `GovukPersonalisation::Urls` module ([#14](https://github.com/alphagov/govuk_personalisation/pull/14) [#16](https://github.com/alphagov/govuk_personalisation/pull/16))
4
+
1
5
  # 0.6.0
2
6
 
3
7
  - Add `GovukPersonalisation::Flash` and helper methods to the concern ([#9](https://github.com/alphagov/govuk_personalisation/pull/9))
@@ -25,9 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = %w[lib]
27
27
 
28
+ spec.add_dependency "plek", ">= 1.9.0"
28
29
  spec.add_dependency "rails", "~> 6"
29
30
 
30
31
  spec.add_development_dependency "bundler"
32
+ spec.add_development_dependency "climate_control"
31
33
  spec.add_development_dependency "pry-byebug"
32
34
  spec.add_development_dependency "rake"
33
35
  spec.add_development_dependency "rspec-rails"
@@ -0,0 +1,87 @@
1
+ require "plek"
2
+
3
+ module GovukPersonalisation::Urls
4
+ # Find the GOV.UK URL for the "sign in" page
5
+ #
6
+ # @return [String] the URL
7
+ def self.sign_in
8
+ find_govuk_url(var: "SIGN_IN", application: "frontend", path: "/sign-in")
9
+ end
10
+
11
+ # Find the GOV.UK URL for the "sign out" page
12
+ #
13
+ # @return [String] the URL
14
+ def self.sign_out
15
+ find_govuk_url(var: "SIGN_OUT", application: "frontend", path: "/sign-out")
16
+ end
17
+
18
+ # Find the GOV.UK URL for the "your account" page
19
+ #
20
+ # @return [String] the URL
21
+ def self.your_account
22
+ find_govuk_url(var: "YOUR_ACCOUNT", application: "frontend", path: "/account/home")
23
+ end
24
+
25
+ # Find the external URL for the "manage" page
26
+ #
27
+ # @return [String] the URL
28
+ def self.manage
29
+ find_external_url(var: "MANAGE", application: "account-manager", path: "/account/manage")
30
+ end
31
+
32
+ # Find the external URL for the "security" page
33
+ #
34
+ # @return [String] the URL
35
+ def self.security
36
+ find_external_url(var: "SECURITY", application: "account-manager", path: "/account/security")
37
+ end
38
+
39
+ # Find the external URL for the "feedback" page
40
+ #
41
+ # @return [String] the URL
42
+ def self.feedback
43
+ find_external_url(var: "FEEDBACK", application: "account-manager", path: "/feedback")
44
+ end
45
+
46
+ # Finds a URL on www.gov.uk. This method is used so we can have
47
+ # links which work both in production (where the website root is
48
+ # returned) and in local development (where an application URL is
49
+ # returned).
50
+ #
51
+ # If `GOVUK_PERSONALISATION_#{var}_URI` is in the environment, that
52
+ # will be returned.
53
+ #
54
+ # Otherwise, a `www.gov.uk` URL will be returned (a `dev.gov.uk`
55
+ # domain in development mode)
56
+ #
57
+ # @param var [String] the name of the variable to look up
58
+ # @param application [String] the name of the frontend application, passed to Plek, to use in development mode (if the env var is set, this is ignored)
59
+ # @param path [String] the path to use (if the env var is set this is ignored)
60
+ #
61
+ # @return [String] the URL
62
+ def self.find_govuk_url(var:, application:, path:)
63
+ value_from_env_var = ENV["GOVUK_PERSONALISATION_#{var}_URI"]
64
+ if value_from_env_var
65
+ value_from_env_var
66
+ else
67
+ plek_application_uri = Rails.env.development? ? Plek.find(application) : Plek.new.website_root
68
+ "#{plek_application_uri}#{path}"
69
+ end
70
+ end
71
+
72
+ # Finds a URL outside www.gov.uk
73
+ #
74
+ # If `GOVUK_PERSONALISATION_#{var}_URI` is in the environment, that
75
+ # will be returned.
76
+ #
77
+ # Otherwise, an application URL generated by Plek will be returned.
78
+ #
79
+ # @param var [String] the name of the variable to look up
80
+ # @param application [String] the name of the frontend application, passed to Plek (if the env var is set, this is ignored)
81
+ # @param path [String] the path to use (if the env var is set this is ignored)
82
+ #
83
+ # @return [String] the URL
84
+ def self.find_external_url(var:, application:, path:)
85
+ ENV.fetch("GOVUK_PERSONALISATION_#{var}_URI", "#{Plek.find(application)}#{path}")
86
+ end
87
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GovukPersonalisation
4
- VERSION = "0.6.0"
4
+ VERSION = "0.7.0"
5
5
  end
@@ -5,5 +5,6 @@ require "govuk_personalisation/controller_concern"
5
5
  require "govuk_personalisation/flash"
6
6
  require "govuk_personalisation/test_helpers/features"
7
7
  require "govuk_personalisation/test_helpers/requests"
8
+ require "govuk_personalisation/urls"
8
9
 
9
10
  module GovukPersonalisation; end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_personalisation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
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: 2021-08-06 00:00:00.000000000 Z
11
+ date: 2021-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: plek
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.9.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.9.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rails
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: climate_control
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: pry-byebug
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +148,7 @@ files:
120
148
  - lib/govuk_personalisation/flash.rb
121
149
  - lib/govuk_personalisation/test_helpers/features.rb
122
150
  - lib/govuk_personalisation/test_helpers/requests.rb
151
+ - lib/govuk_personalisation/urls.rb
123
152
  - lib/govuk_personalisation/version.rb
124
153
  homepage: https://github.com/alphagov/govuk_personalisation
125
154
  licenses: