pugin 1.6.12 → 1.6.13

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
  SHA1:
3
- metadata.gz: e00adc9a1c608d0b974890ba950dcb920c1898f7
4
- data.tar.gz: 80ecd37c11b6c65e406c989f50fd60cf6614bb93
3
+ metadata.gz: aa2303a50ba0e6a86c506265d2748664a39f4a35
4
+ data.tar.gz: d4bd50bd73a9840757aa22c9239e5a3e9a611668
5
5
  SHA512:
6
- metadata.gz: da6a6127ed456c16f3a905154fc7835ea642e31c0b2adee5aabead2eef6073399a0d6b98b94b90dc6d93cd969e3a52cc74853c6a9490f4fa0ee518e97eaffb8a
7
- data.tar.gz: 4a05e93ee90275f2cb28eec79048882f6f045955dda61cc0c87dec099b8f6293c2e7e6936156ee4d0f52455a3b736b88e5a25e227fd04b14a93d05166b457d63
6
+ metadata.gz: 8e78cd869d87ac8109d970b7b57138e10640b65189d9653a5720f7065d74c713bdf4f145b892e77e2886e6a0327c3c7c2fa9d7bff4418614ffe8d2190557835f
7
+ data.tar.gz: 25fe2cac9ce5486dfff96aae00dba787e460d54e29be49b0f5cb4b837638d325d37da7accbfb9da99309ad4bbfb184519e125822c516185c5b4da66ca02405d3
@@ -1,7 +1,9 @@
1
+ - page_title = content_for(:title).nil? ? I18n.t('pugin.layouts.pugin.website_brand') : "#{content_for(:title)} - #{ I18n.t('pugin.layouts.pugin.website_brand')}"
2
+
1
3
  !!! 5
2
4
  %html{lang:'en'}
3
5
  %head
4
- %title= content_for(:title).nil? ? I18n.t('pugin.layouts.pugin.website_brand') : content_for(:title) + ' - ' + I18n.t('pugin.layouts.pugin.website_brand')
6
+ %title= page_title
5
7
  %link{rel: 'stylesheet', href: "#{Pugin::ASSET_LOCATION_URL}/#{Pugin::ASSET_VERSION}/stylesheets/main.css" }
6
8
  - if Pugin::Feature::AssetOverrides.enabled?
7
9
  %link{rel: 'stylesheet', href: "https://s3-eu-west-1.amazonaws.com/web1live.static-assets-public/_hybrid-bills/stylesheets/main.css" }
@@ -17,6 +19,7 @@
17
19
  / ========================
18
20
  - Pugin.alternates.each do |alternate|
19
21
  %link{rel: 'alternate', type: alternate[:type], href: alternate[:href].html_safe}
22
+ = render partial: 'pugin/meta/opengraph', locals: { page_title: page_title }
20
23
  %body
21
24
  - if ENV['GTM_KEY']
22
25
  = render partial: 'pugin/javascript/google_tag_manager_noscript'
@@ -0,0 +1,7 @@
1
+ %meta{ property: 'og:title', content: page_title }
2
+ %meta{ property: 'og:type', content: 'website' }
3
+ %meta{ property: 'og:url', content: request.original_url }
4
+ %meta{ property: 'og:image', content: opengraph_image[:url].html_safe }
5
+ %meta{ property: 'og:image:width', content: opengraph_image[:width] }
6
+ %meta{ property: 'og:image:height', content: opengraph_image[:height] }
7
+ %meta{ name: 'twitter:card', content: opengraph_image[:twitter_card] }
data/lib/pugin.rb CHANGED
@@ -4,6 +4,7 @@ module Pugin
4
4
  ASSET_VERSION = '1.7.5'.freeze
5
5
  ASSET_LOCATION_URL = ENV.fetch('ASSET_LOCATION_URL', 'https://s3-eu-west-1.amazonaws.com/web1live.pugin-website')
6
6
  STATIC_ASSET_LOCATION_URL = ENV.fetch('STATIC_ASSET_LOCATION_URL', 'https://s3-eu-west-1.amazonaws.com/web1live.static-assets')
7
+ STATIC_ASSET_PUBLIC_LOCATION_URL = ENV.fetch('STATIC_ASSET_PUBLIC_LOCATION_URL', 'https://s3-eu-west-1.amazonaws.com/web1live.static-assets-public')
7
8
  class << self
8
9
  attr_writer :alternates
9
10
 
data/lib/pugin/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pugin
2
- VERSION = '1.6.12'.freeze
2
+ VERSION = '1.6.13'.freeze
3
3
  end
@@ -1,10 +1,25 @@
1
1
  module Pugin
2
- module ViewHelpers
3
- def navigation_link(route_symbol:, route_args:, letter:)
4
- url = send(route_symbol, *route_args, letter) unless route_args.empty?
5
- url = send(route_symbol, letter) unless url
2
+ module ViewHelpers
3
+ def navigation_link(route_symbol:, route_args:, letter:)
4
+ url = send(route_symbol, *route_args, letter) unless route_args.empty?
5
+ url = send(route_symbol, letter) unless url
6
+ return link_to(letter, url, data: { 'atoz-see': 'true' })
7
+ end
8
+
9
+ def opengraph_image_standards
10
+ { width: '400', height: '400', twitter_card: 'summary', url: "#{STATIC_ASSET_PUBLIC_LOCATION_URL}/opengraph-oblong.png" }
11
+ end
12
+
13
+ def opengraph_image
14
+ image_hash = if @image
15
+ {url: "#{ENV['IMAGE_SERVICE_URL']}/#{@image.graph_id}.jpeg?crop=CU_1:1&width=400&quality=100"}
16
+ elsif @person && !@image
17
+ {url: "#{ENV['IMAGE_SERVICE_URL']}/#{@person.image_id}.jpeg?crop=CU_1:1&width=400&quality=100"}
18
+ else
19
+ {width: '1200', height: '630', twitter_card: 'summary_large_image' }
20
+ end
6
21
 
7
- return link_to(letter, url, data: { 'atoz-see': 'true' })
8
- end
22
+ opengraph_image_standards.merge(image_hash)
9
23
  end
24
+ end
10
25
  end
@@ -69,4 +69,63 @@ describe 'pugin/layouts/_layout.html.haml', type: :view do
69
69
  expect(rendered).not_to include('<link href=\'https://api.example.com/\' rel=\'alternate\' type=\'application/bar\'>')
70
70
  end
71
71
  end
72
+
73
+ context 'renders OpenGraph tags' do
74
+ before :each do
75
+ render
76
+ end
77
+
78
+ it 'renders og:title' do
79
+ expect(rendered).to include("<meta content='UK Parliament' property='og:title'>")
80
+ end
81
+ it 'renders og:type' do
82
+ expect(rendered).to include("<meta content='website' property='og:type'>")
83
+ end
84
+ it 'renders og:url' do
85
+ expect(rendered).to include("property='og:url'")
86
+ end
87
+
88
+ context 'correctly on person' do
89
+ let(:member) { Class.new }
90
+
91
+ before :each do
92
+ allow(member).to receive(:image_id).and_return('1234')
93
+ @person = member
94
+ render
95
+ end
96
+
97
+ it 'renders og:image' do
98
+ expect(response).to include("<meta content='https://api.parliament.uk/Staging/photo/1234.jpeg?crop=CU_1:1&width=400&quality=100' property='og:image'>")
99
+ expect(response).to include("<meta content='400' property='og:image:width'>")
100
+ expect(response).to include("<meta content='400' property='og:image:height'>")
101
+ expect(response).to include("<meta content='summary' name='twitter:card'>")
102
+ end
103
+ end
104
+
105
+ context 'correctly on media' do
106
+ let(:media) { Class.new }
107
+
108
+ before :each do
109
+ allow(media).to receive(:graph_id).and_return('5678')
110
+ @image = media
111
+ render
112
+ end
113
+
114
+ it 'renders og:image' do
115
+ expect(response).to include("<meta content='https://api.parliament.uk/Staging/photo/5678.jpeg?crop=CU_1:1&width=400&quality=100' property='og:image'>")
116
+ expect(response).to include("<meta content='400' property='og:image:width'>")
117
+ expect(response).to include("<meta content='400' property='og:image:height'>")
118
+ expect(response).to include("<meta content='summary' name='twitter:card'>")
119
+ end
120
+ end
121
+
122
+ context 'correctly on other pages' do
123
+ it 'renders og:image' do
124
+ expect(rendered).to include("<meta content='#{Pugin::STATIC_ASSET_PUBLIC_LOCATION_URL}/opengraph-oblong.png' property='og:image'>")
125
+ expect(response).to include("<meta content='1200' property='og:image:width'>")
126
+ expect(response).to include("<meta content='630' property='og:image:height'>")
127
+ expect(response).to include("<meta content='summary_large_image' name='twitter:card'>")
128
+ end
129
+ end
130
+ end
72
131
  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: 1.6.12
4
+ version: 1.6.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Rayner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-13 00:00:00.000000000 Z
11
+ date: 2018-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -215,6 +215,7 @@ files:
215
215
  - app/views/pugin/javascript/_pingdom.haml
216
216
  - app/views/pugin/layouts/_layout.html.haml
217
217
  - app/views/pugin/layouts/pugin.html.erb
218
+ - app/views/pugin/meta/_opengraph.html.haml
218
219
  - app/views/pugin/parties/list/_list.html.haml
219
220
  - app/views/pugin/parties/list/current/current_party.html.haml
220
221
  - app/views/pugin/parties/list/former/former_party.html.haml