pugin 0.8.5 → 0.8.6.pre
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 +4 -4
- data/README.md +31 -6
- data/app/views/pugin/layouts/{pugin.haml → _layout.html.haml} +6 -0
- data/app/views/pugin/layouts/pugin.html.erb +51 -0
- data/lib/pugin.rb +7 -1
- data/lib/pugin/version.rb +1 -1
- data/spec/pugin_spec.rb +22 -0
- data/spec/views/pugin/layouts/_layout.html.haml_spec.rb +50 -0
- metadata +8 -7
- data/spec/views/pugin/layouts/pugin.html.haml_spec.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ead24bb9ca07f105257830abe4aa843e933ce7ab
|
4
|
+
data.tar.gz: ea7c4d958e3c64556ce937cfc54febf678faab6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4041fbd51b33225014277870eb8d8722dffd02b4acf48f2b8b67396d68b0e7d1ee93d87862ec84cd26b275349f831ceb502e28da4d76341c018f5c9af265746
|
7
|
+
data.tar.gz: dd3c79fa8f92a794a23531caa3f27f832a26b51bf170674c1e1391f8c9147f47ac70399997c0848ba8a3a74442ab8e5e69d6210705b691978c20f469f187a0f3
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Pugin Components Rails
|
2
|
-
[pugin-components-
|
2
|
+
[pugin-components-ruby][pugin-components-ruby] is a component-based pattern design library created by the [Parliamentary Digital Service][pds] that holds all of the reusable partials for elements of the UK Parliament's microservices.
|
3
3
|
|
4
4
|
[![Build Status][shield-travis]][info-travis] [![Test Coverage][shield-coveralls]][info-coveralls] [![License][shield-license]][info-license]
|
5
5
|
|
@@ -14,6 +14,9 @@
|
|
14
14
|
- [Installation](#installation)
|
15
15
|
- [Usage](#usage)
|
16
16
|
- [Example](#example)
|
17
|
+
- [Adding the Parliamentary layout](#adding-the-parliamentary-layout)
|
18
|
+
- [Including rel-alternate links](#including-rel-alternate-links)
|
19
|
+
- [Example](#example-1)
|
17
20
|
- [Getting Started with Development](#getting-started-with-development)
|
18
21
|
- [Running the tests](#running-the-tests)
|
19
22
|
- [Contributing](#contributing)
|
@@ -23,7 +26,7 @@
|
|
23
26
|
|
24
27
|
|
25
28
|
## Requirements
|
26
|
-
[pugin-components-
|
29
|
+
[pugin-components-ruby][pugin-components-ruby] requires the following:
|
27
30
|
* [Ruby][ruby] - [click here][ruby-version] for the exact version
|
28
31
|
* [Bundler][bundler]
|
29
32
|
* [Rails][rails]
|
@@ -57,12 +60,34 @@ Add the following line into the application controller within your host applicat
|
|
57
60
|
layout 'pugin/layouts/pugin'
|
58
61
|
```
|
59
62
|
|
63
|
+
#### Including rel-alternate links
|
64
|
+
When rendering using the Parliamentary layout, if you'd like to document rel-alternates like so:
|
65
|
+
|
66
|
+
```html
|
67
|
+
<link rel="alternate" type="application/rdf+json" href="https://api.example.com/some/url" />
|
68
|
+
<link rel="alternate" type="application/rdf+xml" href="https://api.example.com/some/other/url" />
|
69
|
+
```
|
70
|
+
|
71
|
+
You can do so automatically by setting `Pugin.alternates`.
|
72
|
+
|
73
|
+
##### Example
|
74
|
+
Within your controller:
|
75
|
+
|
76
|
+
```ruby
|
77
|
+
alternates = [
|
78
|
+
{ type: 'application/rdf+json', href: 'https://api.example.com/some/url' },
|
79
|
+
{ type: 'application/rdf+xml', href: 'https://api.example.com/some/other/url' }
|
80
|
+
]
|
81
|
+
|
82
|
+
Pugin.alternates = alternates
|
83
|
+
```
|
84
|
+
|
60
85
|
|
61
86
|
## Getting Started with Development
|
62
87
|
To clone the repository and set up the dependencies, run the following:
|
63
88
|
```bash
|
64
|
-
git clone https://github.com/ukparliament/pugin-components-
|
65
|
-
cd pugin-components-
|
89
|
+
git clone https://github.com/ukparliament/pugin-components-ruby.git
|
90
|
+
cd pugin-components-ruby
|
66
91
|
bundle install
|
67
92
|
```
|
68
93
|
|
@@ -85,12 +110,12 @@ If you wish to submit a bug fix or feature, you can create a pull request and it
|
|
85
110
|
|
86
111
|
|
87
112
|
## License
|
88
|
-
[pugin-components-
|
113
|
+
[pugin-components-ruby][pugin-components-ruby] is licensed under the [Open Parliament Licence][info-license].
|
89
114
|
|
90
115
|
[ruby]: https://www.ruby-lang.org/en/
|
91
116
|
[bundler]: http://bundler.io
|
92
117
|
[rspec]: http://rspec.info
|
93
|
-
[pugin-components-
|
118
|
+
[pugin-components-ruby]: https://github.com/ukparliament/parliament.uk-pugin-components-ruby
|
94
119
|
[pds]: https://www.parliament.uk/mps-lords-and-offices/offices/bicameral/parliamentary-digital-service/
|
95
120
|
[ruby-version]: https://github.com/ukparliament/pugin/blob/master/.ruby-version
|
96
121
|
[rails]: http://rubyonrails.org
|
@@ -8,6 +8,12 @@
|
|
8
8
|
%link{rel: 'shortcut icon', type: 'image/x-icon', href: "#{Pugin::STATIC_ASSET_LOCATION_URL}/favicon.ico"}
|
9
9
|
- if ENV['GTM_KEY']
|
10
10
|
= render partial: 'pugin/javascript/google_tag_manager'
|
11
|
+
- unless Pugin.alternates.empty?
|
12
|
+
/ /==========================\
|
13
|
+
/ [ See below for data views ]
|
14
|
+
/ \==========================/
|
15
|
+
- Pugin.alternates.each do |alternate|
|
16
|
+
%link{rel: 'alternate', type: alternate[:type], href: alternate[:href]}
|
11
17
|
%body.no-js
|
12
18
|
- if ENV['GTM_KEY']
|
13
19
|
= render partial: 'pugin/javascript/google_tag_manager_noscript'
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<!--
|
2
|
+
|
3
|
+
...........
|
4
|
+
,,,,,,,,,
|
5
|
+
.,, .. ,,,,, . ,,.
|
6
|
+
.,,,, .,,,... ,,,,..,,,...,,, ...,,,, ,,,,.
|
7
|
+
,,,, ...,,,,,,,. ,,,,,,,,,,,,,,, .,,,,,,,,,. ,,,,
|
8
|
+
,,,, ., ,,,,,,,,, , ,,,,,.,,,.,,,,, ,,,,,,,,, ,. ,,,,
|
9
|
+
,,,,,,, , ,,,, ,, .,,,. ,, ,,,, , ,,,,,,,
|
10
|
+
.,,,,,, .,,,, .,,,,,. ,,,,. ,,,,,,.
|
11
|
+
.,,. ,. ,,,,. .,,,,,,,,,. .,,,, , .,,.
|
12
|
+
,,,.. .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ..,,,
|
13
|
+
.,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,
|
14
|
+
... .,,,,,,,, ,,,,,,,,. ...
|
15
|
+
.,,,,,,,. ,, ,, .,,,,,,,.
|
16
|
+
,,, ,,,.................................................,,. ,,,.
|
17
|
+
,,. . .,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,. ...,,,
|
18
|
+
,,,,,,,. .,,, ,,,,. ,,,,, .,,,, .,,. .,,,,,,,
|
19
|
+
,,. .,,, ,,,,. ,,,,, .,,,, .,,. ,,,
|
20
|
+
.,,.. .,,, ,,,,. ,,,,, .,,,, .,,. .,,
|
21
|
+
.,,,,,,,. .,,,......,,,,......,,,,,......,,,,.......,,. .,,,,,,,.
|
22
|
+
,,. .,,. .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. ,,, . ,,,
|
23
|
+
,,.....,, .,,,......,,,,......,,,,,.....,,,,,.......,,. ,,,.,,.,,
|
24
|
+
,,,,,,, .,,, ,,,,. ,,,,, .,,,, .,,. ,,,,,,,
|
25
|
+
,,. .,,, ,,,,. ,,,,, .,,,, .,,. ,,,
|
26
|
+
.,,.. .,,, ,,,,. ,,,,, .,,,, .,,. ..,,.
|
27
|
+
.,,,,,,,. .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. .,,,,,,,.
|
28
|
+
,,, ,,. .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. ,,. ,,,
|
29
|
+
,,..,..,, .,,, ,,,,. ,,,,, .,,,, .,,. .,..,,,,,
|
30
|
+
,,,,,,, .,,, ,,,,. ,,,,, .,,,, .,,. .,,,,,,
|
31
|
+
,,. .,,, ,,,,. ,,,,, .,,,, .,,. ,,,
|
32
|
+
.,,,,,. .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. .,,,,,.
|
33
|
+
.,,.,.,,. .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. .,,.,,.,.
|
34
|
+
,, ,,, .,,, ,,,,. ,,,,, .,,,, .,,. ,,, ,,,
|
35
|
+
.,,.,.,,. .,,, ,,,,. ,,,,, .,,,, .,,. .,,.,,.,,
|
36
|
+
,,,,,,, .,,, ,,,,. ,,,,, .,,,, .,,. ,,,,,,,
|
37
|
+
,,. .,,,.. ..,,,,.. .,,,,,. ..,,,,.. ...,,. ,,,
|
38
|
+
.,,,,,. .,,,,, .,,,,, ,,,,,,, ,,,,,. ,,,,,. .,,,,,.
|
39
|
+
.,.,,,.,, .,,. ,,,, ,,,,, ,,,, ,,,. .,,,,,.,,
|
40
|
+
,, ,,, .,. ,,,, ,,, ,,,, .,. ,,. ,,,
|
41
|
+
,,,..,,,, .. .. ,,, .. .. ,,,,.,,,,
|
42
|
+
,,,,,, . , , . ,,,,,,
|
43
|
+
|
44
|
+
Developers!
|
45
|
+
Have a look at the "alternate" <link> rels for our new data views...
|
46
|
+
|
47
|
+
Did you know we're building a new data service for Parliament?
|
48
|
+
https://pds.blog.parliament.uk/2017/06/23/a-new-data-service-for-parliament/
|
49
|
+
|
50
|
+
-->
|
51
|
+
<%= render 'pugin/layouts/layout' %>
|
data/lib/pugin.rb
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
require 'pugin/version'
|
2
2
|
|
3
3
|
module Pugin
|
4
|
-
ASSET_VERSION = '1.
|
4
|
+
ASSET_VERSION = '1.5.0'.freeze
|
5
5
|
ASSET_LOCATION_URL = ENV.fetch('ASSET_LOCATION_URL', 'https://s3-eu-west-1.amazonaws.com/web1devci.pugin-website')
|
6
6
|
STATIC_ASSET_LOCATION_URL = ENV.fetch('STATIC_ASSET_LOCATION_URL', 'https://s3-eu-west-1.amazonaws.com/web1devci.static-assets')
|
7
7
|
|
8
8
|
class << self
|
9
|
+
attr_writer :alternates
|
10
|
+
|
11
|
+
def alternates
|
12
|
+
@alternates || []
|
13
|
+
end
|
14
|
+
|
9
15
|
# Inspired by bootsrap-sass
|
10
16
|
def load!
|
11
17
|
if rails?
|
data/lib/pugin/version.rb
CHANGED
data/spec/pugin_spec.rb
CHANGED
@@ -12,4 +12,26 @@ describe Pugin do
|
|
12
12
|
it 'has an asset version' do
|
13
13
|
expect(Pugin::ASSET_VERSION).not_to be_nil
|
14
14
|
end
|
15
|
+
|
16
|
+
describe '#alternates' do
|
17
|
+
context 'with no value set' do
|
18
|
+
it 'returns an empty array' do
|
19
|
+
expect(Pugin.alternates).to eq([])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'with a value set' do
|
24
|
+
before :each do
|
25
|
+
Pugin.alternates = [{ type: 'text/foo', href: 'https://api.example.com/' }]
|
26
|
+
end
|
27
|
+
|
28
|
+
after :each do
|
29
|
+
Pugin.alternates = nil
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'returns the value' do
|
33
|
+
expect(Pugin.alternates).to eq([{ type: 'text/foo', href: 'https://api.example.com/' }])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
15
37
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'haml'
|
3
|
+
|
4
|
+
describe 'pugin/layouts/_layout.html.haml', type: :view do
|
5
|
+
before :each do
|
6
|
+
HousesHelper = Class.new
|
7
|
+
allow(HousesHelper).to receive(:commons_id).and_return('123')
|
8
|
+
allow(HousesHelper).to receive(:lords_id).and_return('456')
|
9
|
+
allow(view).to receive(:mps_path).and_return("/mps")
|
10
|
+
allow(view).to receive(:house_members_current_a_z_letter_path).and_return("houses/#{HousesHelper.lords_id}/members/current/a-z/a")
|
11
|
+
allow(view).to receive(:constituencies_current_a_z_letter_path).and_return("constituencies/current/a-z/a")
|
12
|
+
allow(view).to receive(:house_parties_current_path).and_return("houses/#{HousesHelper.commons_id}/parties/current/")
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'renders HAML without errors' do
|
16
|
+
render
|
17
|
+
expect(rendered).to have_title(I18n.t('.pugin.layouts.pugin.website_brand'))
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with Pugin.alternates set' do
|
21
|
+
let(:alternates) do
|
22
|
+
[
|
23
|
+
{ type: 'text/foo', href: 'https://api.example.com/' },
|
24
|
+
{ type: 'application/bar', href: 'https://api.example.com/' },
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
28
|
+
before :each do
|
29
|
+
allow(Pugin).to receive(:alternates).and_return(alternates)
|
30
|
+
render
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'renders rel-alternate links' do
|
34
|
+
expect(rendered).to include('<link href=\'https://api.example.com/\' rel=\'alternate\' type=\'text/foo\'>')
|
35
|
+
expect(rendered).to include('<link href=\'https://api.example.com/\' rel=\'alternate\' type=\'application/bar\'>')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'without Pugin.alternates set' do
|
40
|
+
before :each do
|
41
|
+
allow(Pugin).to receive(:alternates).and_return([])
|
42
|
+
render
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'renders rel-alternate links' do
|
46
|
+
expect(rendered).not_to include('<link href=\'https://api.example.com/\' rel=\'alternate\' type=\'text/foo\'>')
|
47
|
+
expect(rendered).not_to include('<link href=\'https://api.example.com/\' rel=\'alternate\' type=\'application/bar\'>')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.6.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Rayner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06
|
11
|
+
date: 2017-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -203,8 +203,9 @@ files:
|
|
203
203
|
- app/views/pugin/elements/_skip-content.haml
|
204
204
|
- app/views/pugin/javascript/_google_tag_manager.haml
|
205
205
|
- app/views/pugin/javascript/_google_tag_manager_noscript.haml
|
206
|
+
- app/views/pugin/layouts/_layout.html.haml
|
206
207
|
- app/views/pugin/layouts/pugin-sinatra.haml
|
207
|
-
- app/views/pugin/layouts/pugin.
|
208
|
+
- app/views/pugin/layouts/pugin.html.erb
|
208
209
|
- app/views/pugin/parties/list/_list.html.haml
|
209
210
|
- app/views/pugin/parties/list/current/current_party.html.haml
|
210
211
|
- app/views/pugin/parties/list/former/former_party.html.haml
|
@@ -295,7 +296,7 @@ files:
|
|
295
296
|
- spec/views/pugin/components/_status.html.haml_spec.rb
|
296
297
|
- spec/views/pugin/constituencies/list/_list.html.haml_spec.rb
|
297
298
|
- spec/views/pugin/elements/_list.html.haml_spec.rb
|
298
|
-
- spec/views/pugin/layouts/
|
299
|
+
- spec/views/pugin/layouts/_layout.html.haml_spec.rb
|
299
300
|
- spec/views/pugin/people/list/_list.html.haml
|
300
301
|
- spec/views/pugin/people/list/lord/_lord.html.haml
|
301
302
|
- spec/views/pugin/people/list/member/_member.html.haml
|
@@ -314,9 +315,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
314
315
|
version: '0'
|
315
316
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
316
317
|
requirements:
|
317
|
-
- - "
|
318
|
+
- - ">"
|
318
319
|
- !ruby/object:Gem::Version
|
319
|
-
version:
|
320
|
+
version: 1.3.1
|
320
321
|
requirements: []
|
321
322
|
rubyforge_project:
|
322
323
|
rubygems_version: 2.6.8
|
@@ -384,7 +385,7 @@ test_files:
|
|
384
385
|
- spec/lib/pugin/feature/simple_feature_spec.rb
|
385
386
|
- spec/lib/pugin/feature/bandiera_spec.rb
|
386
387
|
- spec/pugin/engine_spec.rb
|
387
|
-
- spec/views/pugin/layouts/
|
388
|
+
- spec/views/pugin/layouts/_layout.html.haml_spec.rb
|
388
389
|
- spec/views/pugin/cards/_person-list.html.haml_spec.rb
|
389
390
|
- spec/views/pugin/constituencies/list/_list.html.haml_spec.rb
|
390
391
|
- spec/views/pugin/components/_status.html.haml_spec.rb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'haml'
|
3
|
-
|
4
|
-
describe 'pugin/layouts/pugin.html.haml', type: :view do
|
5
|
-
context 'with a fully implemented person' do
|
6
|
-
let(:person) { double('Grom::Node') }
|
7
|
-
|
8
|
-
before :each do
|
9
|
-
allow(person).to receive(:name).and_return('Jane Smith')
|
10
|
-
allow(person).to receive(:position).and_return('Minister for Tests')
|
11
|
-
allow(person).to receive(:id).and_return('123')
|
12
|
-
HousesHelper = Class.new
|
13
|
-
allow(HousesHelper).to receive(:commons_id).and_return('123')
|
14
|
-
allow(HousesHelper).to receive(:lords_id).and_return('456')
|
15
|
-
allow(view).to receive(:mps_path).and_return("/mps")
|
16
|
-
allow(view).to receive(:house_members_current_a_z_letter_path).and_return("houses/#{HousesHelper.lords_id}/members/current/a-z/a")
|
17
|
-
allow(view).to receive(:constituencies_current_a_z_letter_path).and_return("constituencies/current/a-z/a")
|
18
|
-
allow(view).to receive(:house_parties_current_path).and_return("houses/#{HousesHelper.commons_id}/parties/current/")
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'renders HAML without errors' do
|
22
|
-
render
|
23
|
-
expect(rendered).to have_title(I18n.t('.pugin.layouts.pugin.website_brand'))
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|