spree_pages 1.0.2 → 1.0.3
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 +5 -5
- data/README.md +1 -1
- data/app/controllers/spree/admin/pages_controller.rb +1 -1
- data/app/models/spree/page.rb +2 -4
- data/app/views/spree/pages/_og_meta_tags.html.erb +1 -5
- data/config/routes.rb +1 -0
- data/lib/spree_pages/routes_contstraints.rb +1 -1
- data/lib/spree_pages/version.rb +1 -1
- data/spec/controllers/spree/admin/pages_controller_spec.rb +18 -0
- data/spec/factories/pages.rb +7 -0
- data/spec/features/visit_pages_spec.rb +31 -1
- data/spec/models/spree/page_spec.rb +9 -1
- data/spec/support/devise.rb +3 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f999e0f6a38e2ae387badc6f1e5ca52abf07290d025686c4cd2e31caa7cb6071
|
4
|
+
data.tar.gz: 4e68af456716ee031b77a37006b97fbb4d68dd08a4e1e7e26c58767d5f66aacf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 800f43b9c67109819f9536d92dac1ef6fe16ba68e789896983fc12d5f7665f4c7178cba0f932bfe1e1c5616617fcd9fddf2a16aab3938e1564d0929dc46228ca
|
7
|
+
data.tar.gz: 5dc1e4103ac4714ce97cf4698e623064e5453a9a4b817c563fd24351c83fcd4d5ec4c200a7290d58ffb9583252110f0b63b541e1aefcb3a66198dd21eb91b5b2
|
data/README.md
CHANGED
@@ -80,4 +80,4 @@ If you'd like to contribute, please take a look at the
|
|
80
80
|
[instructions](CONTRIBUTING.md) for installing dependencies and crafting a good
|
81
81
|
pull request.
|
82
82
|
|
83
|
-
Copyright (c) 2018
|
83
|
+
Copyright (c) 2018 Public Market Foundation, released under the New BSD License
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
private
|
5
5
|
|
6
6
|
def permitted_resource_params
|
7
|
-
params.require(:page).permit(%i[
|
7
|
+
params.require(:page).permit(%i[title content slug meta_title meta_description meta_image live])
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
data/app/models/spree/page.rb
CHANGED
@@ -14,12 +14,10 @@ module Spree
|
|
14
14
|
self.slug = slug[1..-1] if slug.start_with?('/') # ensure that slugs don't start with a slash
|
15
15
|
end
|
16
16
|
|
17
|
+
private
|
18
|
+
|
17
19
|
def self.meta_image_sizes
|
18
20
|
{ large: '1200x630>', medium: '600x315>', small: '200x200>' }
|
19
21
|
end
|
20
|
-
|
21
|
-
def self.meta_image_sizes_tags
|
22
|
-
meta_image_sizes.map { |style, sizes| [style, { width: sizes.split('x')[0], height: sizes.split('x')[1].tr('>', '') }] }.to_h
|
23
|
-
end
|
24
22
|
end
|
25
23
|
end
|
@@ -4,10 +4,6 @@
|
|
4
4
|
<meta property="og:title" content="<%= page_meta_title %>">
|
5
5
|
<meta property="og:description" content="<%= page.meta_description || meta_data[:description] %>">
|
6
6
|
<% if page.meta_image.exists? %>
|
7
|
-
|
8
|
-
<meta property="og:image" content="<%= page.meta_image.url(style) %>">
|
9
|
-
<meta property="og:image:width" content="<%= Spree::Page.meta_image_sizes_tags[style][:width] %>">
|
10
|
-
<meta property="og:image:height" content="<%= Spree::Page.meta_image_sizes_tags[style][:height] %>">
|
11
|
-
<% end %>
|
7
|
+
<meta property="og:image" content="<%= page.meta_image.url(:large) %>">
|
12
8
|
<% end %>
|
13
9
|
<% end %>
|
data/config/routes.rb
CHANGED
@@ -5,7 +5,7 @@ module Spree
|
|
5
5
|
def self.matches?(request)
|
6
6
|
return false if request.path == '/' ||
|
7
7
|
request.path.starts_with?(Spree.admin_path) ||
|
8
|
-
request.path =~ %r{\A\/+(account|cart|checkout|content|login|pg\/|orders|products|s\/|session|signup|shipments|states|t\/|tax_categories|user)+}
|
8
|
+
request.path =~ %r{\A\/+(api|account|cart|checkout|content|login|pg\/|orders|products|s\/|session|signup|shipments|states|t\/|tax_categories|user)+}
|
9
9
|
Spree::Page.find_by(slug: request.path[1..-1]).present?
|
10
10
|
end
|
11
11
|
# rubocop:enable Metrics/LineLength
|
data/lib/spree_pages/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
RSpec.describe Spree::Admin::PagesController, type: :controller do
|
2
|
+
stub_authorization!
|
3
|
+
|
4
|
+
routes { Spree::Core::Engine.routes }
|
5
|
+
|
6
|
+
describe '#update' do
|
7
|
+
subject(:update_page) { put :update, params: { id: page.id, page: { title: new_page_title }} }
|
8
|
+
|
9
|
+
let(:new_page_title) { 'New page title' }
|
10
|
+
let(:page) { create(:page, title: 'Old page title') }
|
11
|
+
|
12
|
+
it 'updates page' do
|
13
|
+
expect {
|
14
|
+
update_page
|
15
|
+
}.to change { page.reload.title }.to new_page_title
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/spec/factories/pages.rb
CHANGED
@@ -3,6 +3,13 @@ FactoryBot.define do
|
|
3
3
|
title { generate(:random_string) }
|
4
4
|
content { generate(:random_description) }
|
5
5
|
|
6
|
+
meta_title { generate(:random_string) }
|
7
|
+
meta_description { generate(:random_string) }
|
8
|
+
|
6
9
|
sequence(:slug) { |n| "page#{n}" }
|
10
|
+
|
11
|
+
trait :with_image do
|
12
|
+
meta_image { File.new(Spree::Core::Engine.root + 'spec/fixtures' + 'thinking-cat.jpg') }
|
13
|
+
end
|
7
14
|
end
|
8
15
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe 'Visits page', type: :feature do
|
4
|
-
before {
|
4
|
+
before { allow(Spree::Store).to receive(:default) { build_stubbed(:store) } }
|
5
5
|
|
6
6
|
it 'correctly loads page' do
|
7
7
|
spree_page = create(:page, slug: 'page')
|
@@ -20,4 +20,34 @@ RSpec.describe 'Visits page', type: :feature do
|
|
20
20
|
visit spree.product_path(product)
|
21
21
|
expect(page).to have_text product.name
|
22
22
|
end
|
23
|
+
|
24
|
+
describe 'meta tags' do
|
25
|
+
let(:spree_page) { create(:page) }
|
26
|
+
|
27
|
+
before { visit spree.page_path(spree_page.slug) }
|
28
|
+
|
29
|
+
it 'includes meta name' do
|
30
|
+
expect(page).to have_css("meta[property='og:title'][content='#{spree_page.meta_title}']", visible: false)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'includes meta description' do
|
34
|
+
expect(page).to have_css("meta[property='og:description'][content='#{spree_page.meta_description}']", visible: false)
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'image' do
|
38
|
+
context 'without meta image' do
|
39
|
+
it 'does not include meta image' do
|
40
|
+
expect(page).not_to have_css("meta[property='og:image']", visible: false)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context 'with meta image' do
|
45
|
+
let(:spree_page) { create(:page, :with_image) }
|
46
|
+
|
47
|
+
it 'includes meta image' do
|
48
|
+
expect(page).to have_css("meta[property='og:image'][content='#{spree_page.meta_image.url(:large)}']", visible: false)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
23
53
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
RSpec.describe Spree::Page, type: :model do
|
2
|
-
let
|
2
|
+
let(:page) { build_stubbed(:page) }
|
3
3
|
|
4
4
|
describe 'factory' do
|
5
5
|
it 'is valid' do
|
@@ -15,4 +15,12 @@ RSpec.describe Spree::Page, type: :model do
|
|
15
15
|
expect(page.slug).to eq 'slash'
|
16
16
|
end
|
17
17
|
end
|
18
|
+
|
19
|
+
describe '#meta_image' do
|
20
|
+
subject(:image) { page.meta_image }
|
21
|
+
|
22
|
+
let(:page) { build_stubbed(:page, :with_image) }
|
23
|
+
|
24
|
+
it { expect(image.styles).to include(:large, :medium, :small) }
|
25
|
+
end
|
18
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kozaev Artem
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: paperclip
|
@@ -282,6 +282,7 @@ files:
|
|
282
282
|
- lib/spree_pages/routes_contstraints.rb
|
283
283
|
- lib/spree_pages/version.rb
|
284
284
|
- spec/.rubocop.yml
|
285
|
+
- spec/controllers/spree/admin/pages_controller_spec.rb
|
285
286
|
- spec/controllers/spree/pages_controller_spec.rb
|
286
287
|
- spec/factories/pages.rb
|
287
288
|
- spec/features/visit_pages_spec.rb
|
@@ -289,6 +290,7 @@ files:
|
|
289
290
|
- spec/spec_helper.rb
|
290
291
|
- spec/support/capybara.rb
|
291
292
|
- spec/support/database_cleaner.rb
|
293
|
+
- spec/support/devise.rb
|
292
294
|
- spec/support/factory_bot.rb
|
293
295
|
- spec/support/simplecov.rb
|
294
296
|
- spree_pages.gemspec
|
@@ -313,11 +315,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
315
|
requirements:
|
314
316
|
- none
|
315
317
|
rubyforge_project:
|
316
|
-
rubygems_version: 2.
|
318
|
+
rubygems_version: 2.7.3
|
317
319
|
signing_key:
|
318
320
|
specification_version: 4
|
319
321
|
summary: Simple static pages for spree
|
320
322
|
test_files:
|
323
|
+
- spec/controllers/spree/admin/pages_controller_spec.rb
|
321
324
|
- spec/controllers/spree/pages_controller_spec.rb
|
322
325
|
- spec/factories/pages.rb
|
323
326
|
- spec/features/visit_pages_spec.rb
|
@@ -325,5 +328,6 @@ test_files:
|
|
325
328
|
- spec/spec_helper.rb
|
326
329
|
- spec/support/capybara.rb
|
327
330
|
- spec/support/database_cleaner.rb
|
331
|
+
- spec/support/devise.rb
|
328
332
|
- spec/support/factory_bot.rb
|
329
333
|
- spec/support/simplecov.rb
|