refinerycms-pages 3.0.3 → 3.0.4
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
- checksums.yaml.gz.sig +0 -0
- data/app/controllers/refinery/admin/pages_controller.rb +1 -1
- data/app/controllers/refinery/pages/admin/preview_controller.rb +8 -8
- data/app/controllers/refinery/pages_controller.rb +24 -6
- data/app/helpers/refinery/admin/pages_helper.rb +8 -0
- data/app/presenters/refinery/pages/section_presenter.rb +41 -7
- data/app/views/refinery/admin/pages/_page.html.erb +1 -1
- data/app/views/refinery/admin/pages_dialogs/_page_link.html.erb +1 -1
- data/config/locales/en.yml +4 -2
- data/config/locales/ru.yml +5 -3
- data/lib/generators/refinery/pages/templates/config/initializers/refinery/pages.rb.erb +7 -1
- data/lib/refinery/pages/configuration.rb +1 -0
- data/refinerycms-pages.gemspec +6 -0
- data/spec/features/refinery/admin/pages_spec.rb +23 -12
- data/spec/features/refinery/pages_spec.rb +1 -0
- data/spec/helpers/refinery/pages/admin/pages_helper_spec.rb +20 -0
- data/spec/presenters/refinery/pages/section_presenter_spec.rb +30 -3
- data.tar.gz.sig +2 -0
- metadata +41 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8308e3073c942d0214a2decd15f895cb59337a2
|
4
|
+
data.tar.gz: 7bdadb6128ddc13e5bc6d82417bd6aa8218f22fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab53d5bb3c0f277efae545eb8ad0fe8baf2d2f7ef6c5d2839647c6bae25b9835bf6b8fe7c98553614051b9b75b0f6546fd6f5bc7250554cd1496d8e723eda8cd
|
7
|
+
data.tar.gz: 78d2d2482e752f92ec9c5ba6288e7c5d90986b363075fd1e8992d520f8c182dddf8959366f94c7e4b8400cb1f1f58ce3f31286fa035922faa741a6ae89b10d82
|
checksums.yaml.gz.sig
ADDED
Binary file
|
@@ -108,7 +108,7 @@ module Refinery
|
|
108
108
|
nested_url = page.nested_url
|
109
109
|
{
|
110
110
|
new_refinery_edit_page_path: refinery.admin_edit_page_path(nested_url),
|
111
|
-
new_refinery_page_path: refinery.
|
111
|
+
new_refinery_page_path: refinery.admin_update_page_path(nested_url),
|
112
112
|
new_page_path: refinery.pages_admin_preview_page_path(nested_url)
|
113
113
|
}
|
114
114
|
end
|
@@ -10,8 +10,6 @@ module Refinery
|
|
10
10
|
|
11
11
|
skip_before_action :error_404, :set_canonical
|
12
12
|
|
13
|
-
layout :layout
|
14
|
-
|
15
13
|
def show
|
16
14
|
render_with_templates?
|
17
15
|
end
|
@@ -33,16 +31,18 @@ module Refinery
|
|
33
31
|
end
|
34
32
|
alias_method :page, :find_page
|
35
33
|
|
36
|
-
def
|
37
|
-
|
34
|
+
def page_params
|
35
|
+
params.require(:page).permit(permitted_page_params)
|
38
36
|
end
|
39
37
|
|
40
|
-
|
41
|
-
|
38
|
+
private
|
39
|
+
|
40
|
+
def permitted_page_params
|
41
|
+
[
|
42
42
|
:browser_title, :draft, :link_url, :menu_title, :meta_description,
|
43
43
|
:parent_id, :skip_to_first_child, :show_in_menu, :title, :view_template,
|
44
|
-
:layout_template, parts_attributes: [:id, :title, :body, :position]
|
45
|
-
|
44
|
+
:layout_template, :custom_slug, parts_attributes: [:id, :title, :slug, :body, :position]
|
45
|
+
]
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -68,12 +68,7 @@ module Refinery
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def find_page(fallback_to_404 = true)
|
71
|
-
@page ||=
|
72
|
-
when "home"
|
73
|
-
Refinery::Page.find_by(link_url: '/')
|
74
|
-
when "show"
|
75
|
-
Refinery::Page.friendly.find_by_path_or_id(params[:path], params[:id])
|
76
|
-
end
|
71
|
+
@page ||= action_page_finder.call(params) if action_has_page_finder?
|
77
72
|
@page || (error_404 if fallback_to_404)
|
78
73
|
end
|
79
74
|
|
@@ -89,5 +84,28 @@ module Refinery
|
|
89
84
|
cache_page(response.body, File.join('', 'refinery', 'cache', 'pages', request.path).to_s)
|
90
85
|
end
|
91
86
|
end
|
87
|
+
|
88
|
+
private
|
89
|
+
def action_has_page_finder?
|
90
|
+
Finders.const_defined? action_name.classify
|
91
|
+
end
|
92
|
+
|
93
|
+
def action_page_finder
|
94
|
+
Finders.const_get action_name.classify
|
95
|
+
end
|
96
|
+
|
97
|
+
module Finders
|
98
|
+
class Home
|
99
|
+
def self.call(_params)
|
100
|
+
Refinery::Page.find_by link_url: "/"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
class Show
|
105
|
+
def self.call(params)
|
106
|
+
Refinery::Page.friendly.find_by_path_or_id params[:path], params[:id]
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
92
110
|
end
|
93
111
|
end
|
@@ -40,6 +40,14 @@ module Refinery
|
|
40
40
|
::I18n.t('hidden', :scope => 'refinery.admin.pages.page')
|
41
41
|
end unless page.show_in_menu?
|
42
42
|
|
43
|
+
meta_information << content_tag(:span, :class => 'label') do
|
44
|
+
::I18n.t('skip_to_first_child', :scope => 'refinery.admin.pages.page')
|
45
|
+
end if page.skip_to_first_child?
|
46
|
+
|
47
|
+
meta_information << content_tag(:span, :class => 'label') do
|
48
|
+
::I18n.t('redirected', :scope => 'refinery.admin.pages.page')
|
49
|
+
end if page.link_url?
|
50
|
+
|
43
51
|
meta_information << content_tag(:span, :class => 'label notice') do
|
44
52
|
::I18n.t('draft', :scope => 'refinery.admin.pages.page')
|
45
53
|
end if page.draft?
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'diffy'
|
2
|
+
|
1
3
|
module Refinery
|
2
4
|
module Pages
|
3
5
|
# Knows how to build the html for a section. A section is part of the visible html, that has
|
@@ -48,7 +50,7 @@ module Refinery
|
|
48
50
|
"no_#{id}"
|
49
51
|
end
|
50
52
|
|
51
|
-
|
53
|
+
protected
|
52
54
|
|
53
55
|
def content_html(can_use_fallback)
|
54
56
|
override_html.presence || html_from_fallback(can_use_fallback)
|
@@ -58,17 +60,49 @@ module Refinery
|
|
58
60
|
fallback_html.presence if can_use_fallback
|
59
61
|
end
|
60
62
|
|
61
|
-
|
63
|
+
private
|
62
64
|
|
63
65
|
attr_writer :id, :fallback_html, :hidden
|
64
66
|
|
65
67
|
def wrap_content_in_tag(content)
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
content_tag(:section, content_tag(:div, sanitize_content(content), :class => 'inner'), :id => id)
|
69
|
+
end
|
70
|
+
|
71
|
+
def sanitize_content(input)
|
72
|
+
output = sanitize(input, scrubber: CustomScrubber.new(Refinery::Pages::whitelist_elements,
|
73
|
+
Refinery::Pages::whitelist_attributes))
|
74
|
+
|
75
|
+
if input != output
|
76
|
+
warning = "\n-- SANITIZED CONTENT WARNING --\n"
|
77
|
+
warning << "Refinery::Pages::SectionPresenter#wrap_content_in_tag\n"
|
78
|
+
warning << "HTML attributes and/or elements content has been sanitized\n"
|
79
|
+
warning << "#{::Diffy::Diff.new(input, output).to_s(:color)}\n"
|
80
|
+
warn warning
|
81
|
+
end
|
82
|
+
|
83
|
+
return output
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
class CustomScrubber < Rails::Html::PermitScrubber
|
88
|
+
def initialize(tags, attributes)
|
89
|
+
@direction = :bottom_up
|
90
|
+
@tags = tags
|
91
|
+
@attributes = attributes
|
92
|
+
end
|
93
|
+
|
94
|
+
def allowed_node?(node)
|
95
|
+
tags.include?(node.name)
|
96
|
+
end
|
97
|
+
|
98
|
+
def skip_node?(node)
|
99
|
+
node.text?
|
100
|
+
end
|
101
|
+
|
102
|
+
def scrub_attribute?(name)
|
103
|
+
attributes.exclude?(name) && name !~ /\Adata-[\w-]+\z/
|
71
104
|
end
|
105
|
+
|
72
106
|
end
|
73
107
|
end
|
74
108
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
delete_url = refinery.admin_delete_page_path(page.nested_url)
|
5
5
|
delete_options = {
|
6
6
|
class: "cancel confirm-delete",
|
7
|
-
data: {confirm: t('message', scope: 'refinery.admin.delete', title:
|
7
|
+
data: {confirm: t('message', scope: 'refinery.admin.delete', title: translated_field(page, :title))}
|
8
8
|
}
|
9
9
|
%>
|
10
10
|
|
data/config/locales/en.yml
CHANGED
@@ -37,9 +37,11 @@ en:
|
|
37
37
|
new: Add a new child page
|
38
38
|
expand_collapse: Expand or collapse sub pages
|
39
39
|
page:
|
40
|
-
view_live_html: View this page live <br/><em>(opens in a new window)</em>
|
41
|
-
hidden: hidden
|
42
40
|
draft: draft
|
41
|
+
hidden: hidden
|
42
|
+
redirected: Redirected
|
43
|
+
skip_to_first_child: Skip to first child
|
44
|
+
view_live_html: View this page live <br/><em>(opens in a new window)</em>
|
43
45
|
form:
|
44
46
|
preview: Preview
|
45
47
|
preview_changes: Preview your changes before making them live
|
data/config/locales/ru.yml
CHANGED
@@ -3,7 +3,6 @@ ru:
|
|
3
3
|
plugins:
|
4
4
|
refinery_pages:
|
5
5
|
title: Страницы
|
6
|
-
article: feminine
|
7
6
|
description: Управление страницами с содержимым
|
8
7
|
admin:
|
9
8
|
pages_dialogs:
|
@@ -38,14 +37,17 @@ ru:
|
|
38
37
|
new: Добавить новую подстраницу
|
39
38
|
expand_collapse: Развернуть или свернуть подстраницу
|
40
39
|
page:
|
41
|
-
view_live_html: Показать эту страницу вживую <br/><em>(откроется в новом окне)</em>
|
42
|
-
hidden: скрытая
|
43
40
|
draft: черновик
|
41
|
+
hidden: скрытая
|
42
|
+
redirected: Перенаправлена
|
43
|
+
skip_to_first_child: Пропуск страницы верхнего уровня
|
44
|
+
view_live_html: Показать эту страницу вживую <br/><em>(откроется в новом окне)</em>
|
44
45
|
form:
|
45
46
|
preview: Посмотреть
|
46
47
|
preview_changes: Посмотреть свои изменения перед сохранением
|
47
48
|
form_new_page_parts:
|
48
49
|
title: Заголовок
|
50
|
+
slug: Slug
|
49
51
|
form_page_parts:
|
50
52
|
create_content_section: Добавить колонку
|
51
53
|
delete_content_section: Удалить колонку
|
@@ -66,7 +66,13 @@ Refinery::Pages.configure do |config|
|
|
66
66
|
|
67
67
|
# config.show_title_in_body = <%= Refinery::Pages.show_title_in_body.inspect %>
|
68
68
|
|
69
|
+
# You can add new HTML elements not already supported by Loofah::HTML5::WhiteList::ALLOWED_ELEMENTS
|
70
|
+
# For more information on whitelist see ALLOWED_ELEMENTS
|
71
|
+
# (https://github.com/flavorjones/loofah/blob/v2.0.3/lib/loofah/html5/whitelist.rb#L151)
|
69
72
|
# config.add_whitelist_elements = <%= Refinery::Pages.add_whitelist_elements.inspect %>
|
70
|
-
|
73
|
+
|
74
|
+
# You can add new HTML attributes not already supported by Loofah::HTML5::WhiteList::ALLOWED_ATTRIBUTES
|
75
|
+
# For more information on whitelist see ALLOWED_ATTRIBUTES
|
76
|
+
# (https://github.com/flavorjones/loofah/blob/v2.0.3/lib/loofah/html5/whitelist.rb#L152)
|
71
77
|
# config.add_whitelist_attributes = <%= Refinery::Pages.add_whitelist_attributes.inspect %>
|
72
78
|
end
|
@@ -23,6 +23,7 @@ module Refinery
|
|
23
23
|
self.cache_pages_full = false
|
24
24
|
self.layout_template_whitelist = ["application"]
|
25
25
|
self.add_whitelist_elements = %w[ source track ]
|
26
|
+
# Note: "data-" attributes are whitelisted by default. See https://github.com/refinery/refinerycms/pull/3187
|
26
27
|
self.add_whitelist_attributes = %w[ kind srclang placeholder controls ]
|
27
28
|
|
28
29
|
|
data/refinerycms-pages.gemspec
CHANGED
@@ -26,6 +26,12 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_dependency 'refinerycms-core', version
|
27
27
|
s.add_dependency 'babosa', '!= 0.3.6'
|
28
28
|
s.add_dependency 'speakingurl-rails', '~> 8.0.0'
|
29
|
+
s.add_dependency 'diffy', '~> 3.1.0'
|
29
30
|
|
30
31
|
s.required_ruby_version = Refinery::Version.required_ruby_version
|
32
|
+
|
33
|
+
s.cert_chain = [File.expand_path("../../certs/parndt.pem", __FILE__)]
|
34
|
+
if $0 =~ /gem\z/ && ARGV.include?("build") && ARGV.include?(__FILE__)
|
35
|
+
s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem")
|
36
|
+
end
|
31
37
|
end
|
@@ -193,16 +193,19 @@ module Refinery
|
|
193
193
|
end
|
194
194
|
|
195
195
|
describe "edit/update" do
|
196
|
-
|
197
|
-
|
196
|
+
let(:updateable_page_parent) { Page.create title: "Parent page" }
|
197
|
+
let!(:updateable_page) {
|
198
|
+
updateable_page_parent.children.create title: "Update me"
|
199
|
+
}
|
198
200
|
|
201
|
+
before do
|
199
202
|
visit refinery.admin_pages_path
|
200
203
|
expect(page).to have_content("Update me")
|
201
204
|
end
|
202
205
|
|
203
206
|
context 'when saving and returning to index' do
|
204
|
-
it "updates page", js:true do
|
205
|
-
find(
|
207
|
+
it "updates page", js: true do
|
208
|
+
find("a[href$='#{updateable_page.slug}/edit']").trigger(:click)
|
206
209
|
|
207
210
|
fill_in "Title", :with => "Updated"
|
208
211
|
find("#submit_button").click
|
@@ -211,25 +214,33 @@ module Refinery
|
|
211
214
|
end
|
212
215
|
end
|
213
216
|
|
214
|
-
context 'when saving and continuing to edit' do
|
217
|
+
context 'when saving and continuing to edit', js: true do
|
215
218
|
before :each do
|
216
|
-
expect(page).to have_selector(
|
217
|
-
find(
|
219
|
+
expect(page).to have_selector("a[href$='#{updateable_page.slug}/edit']", visible: true)
|
220
|
+
find("a[href$='#{updateable_page.slug}/edit']").click
|
218
221
|
|
219
|
-
fill_in "Title", :with => "Updated"
|
222
|
+
fill_in "Title", :with => "Updated you"
|
220
223
|
find("#submit_continue_button").click
|
221
224
|
find('#flash').visible?
|
222
225
|
end
|
223
226
|
|
224
|
-
it "updates page"
|
225
|
-
expect(page).to have_content("'Updated' was successfully updated.")
|
227
|
+
it "updates page" do
|
228
|
+
expect(page).to have_content("'Updated you' was successfully updated.")
|
229
|
+
end
|
230
|
+
|
231
|
+
# Regression test for https://github.com/refinery/refinerycms/issues/3179
|
232
|
+
# We expect this to end with /updated-you rather than /updated%2Fyou
|
233
|
+
it "doesn't have an encoded URL" do
|
234
|
+
updateable_page.reload # the slug will be different now
|
235
|
+
expect(page).not_to have_selector("form[action$='%2F#{updateable_page.slug}']")
|
236
|
+
expect(page).to have_selector("form[action$='/#{updateable_page.slug}']")
|
226
237
|
end
|
227
238
|
|
228
239
|
# Regression test for https://github.com/refinery/refinerycms/issues/1892
|
229
240
|
context 'when saving to exit (a second time)' do
|
230
|
-
it 'updates page'
|
241
|
+
it 'updates page' do
|
231
242
|
find("#submit_button").click
|
232
|
-
expect(page).to have_content("'Updated' was successfully updated.")
|
243
|
+
expect(page).to have_content("'Updated you' was successfully updated.")
|
233
244
|
end
|
234
245
|
end
|
235
246
|
end
|
@@ -332,6 +332,7 @@ module Refinery
|
|
332
332
|
|
333
333
|
within ".active * > .selected a" do
|
334
334
|
expect(page).to have_content(child_page.title)
|
335
|
+
expect(page).to_not have_content(::I18n.t('skip_to_first_child', scope: 'refinery.skip_to_first_child_page_message'))
|
335
336
|
end
|
336
337
|
end
|
337
338
|
end
|
@@ -63,6 +63,26 @@ module Refinery
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
context "when skip_to_first_child is true" do
|
67
|
+
it "adds 'skip to first child' label" do
|
68
|
+
page.skip_to_first_child = true
|
69
|
+
|
70
|
+
expect(helper.page_meta_information(page)).to eq(
|
71
|
+
%Q{<span class="label">#{::I18n.t('refinery.admin.pages.page.skip_to_first_child')}</span>}
|
72
|
+
)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context "when link_url is present" do
|
77
|
+
it "adds 'redirected' label" do
|
78
|
+
page.link_url = '/redirect'
|
79
|
+
|
80
|
+
expect(helper.page_meta_information(page)).to eq(
|
81
|
+
%Q{<span class="label">#{::I18n.t('refinery.admin.pages.page.redirected')}</span>}
|
82
|
+
)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
66
86
|
context "when draft is true" do
|
67
87
|
it "adds 'draft' label" do
|
68
88
|
page.draft = true
|
@@ -2,8 +2,6 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
module Refinery
|
4
4
|
module Pages
|
5
|
-
|
6
|
-
|
7
5
|
describe SectionPresenter do
|
8
6
|
it "can build a css class for when it is not present based on id" do
|
9
7
|
section = SectionPresenter.new(:fallback_html => 'foobar', :id => 'mynode')
|
@@ -28,6 +26,14 @@ module Refinery
|
|
28
26
|
end
|
29
27
|
|
30
28
|
describe "when building html for a section" do
|
29
|
+
before do
|
30
|
+
@errors = StringIO.new
|
31
|
+
@old_err = $stderr
|
32
|
+
$stderr = @errors
|
33
|
+
end
|
34
|
+
|
35
|
+
after(:each) { $stderr = @old_err }
|
36
|
+
|
31
37
|
it "wont show a hidden section" do
|
32
38
|
section = SectionPresenter.new(:fallback_html => 'foobar', :hidden => true)
|
33
39
|
expect(section.has_content?(true)).to be_falsey
|
@@ -47,7 +53,6 @@ module Refinery
|
|
47
53
|
expect(section.wrapped_html(true)).to xml_eq('<section id="mynode"><div class="inner">foobar</div></section>')
|
48
54
|
end
|
49
55
|
|
50
|
-
|
51
56
|
# Regression tests for https://github.com/refinery/refinerycms-inquiries/issues/168
|
52
57
|
describe "#whitelist_elements" do
|
53
58
|
context "when an element is not in a whitelist" do
|
@@ -95,6 +100,28 @@ module Refinery
|
|
95
100
|
)
|
96
101
|
end
|
97
102
|
end
|
103
|
+
|
104
|
+
context 'data attributes' do
|
105
|
+
it 'all data attributes passed thru' do
|
106
|
+
section = SectionPresenter.new
|
107
|
+
section.override_html = %Q{<a data-foo-bar="value"></a>}
|
108
|
+
expect(section.wrapped_html(true)).to xml_eq(
|
109
|
+
%Q{<section><div class="inner"><a data-foo-bar="value"></a></div></section>}
|
110
|
+
)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "#sanitize_content" do
|
116
|
+
it "shows a sanitized content warning" do
|
117
|
+
section = SectionPresenter.new
|
118
|
+
section.override_html = %Q{<dummy></dummy>}
|
119
|
+
section.wrapped_html(true)
|
120
|
+
@errors.rewind
|
121
|
+
expect(@errors.read).to eq(
|
122
|
+
%Q{\n-- SANITIZED CONTENT WARNING --\nRefinery::Pages::SectionPresenter#wrap_content_in_tag\nHTML attributes and/or elements content has been sanitized\n\e[31m-<dummy></dummy>\e[0m\n\\n\n}
|
123
|
+
)
|
124
|
+
end
|
98
125
|
end
|
99
126
|
|
100
127
|
describe "if allowed to use fallback html" do
|
data.tar.gz.sig
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Arndt
|
@@ -9,8 +9,30 @@ authors:
|
|
9
9
|
- Rob Yurkowski
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
|
-
cert_chain:
|
13
|
-
|
12
|
+
cert_chain:
|
13
|
+
- |
|
14
|
+
-----BEGIN CERTIFICATE-----
|
15
|
+
MIIDhjCCAm6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBNMQ0wCwYDVQQDDARnZW1z
|
16
|
+
MREwDwYKCZImiZPyLGQBGRYBcDEVMBMGCgmSJomT8ixkARkWBWFybmR0MRIwEAYK
|
17
|
+
CZImiZPyLGQBGRYCaW8wHhcNMTYwNjEwMDMwNjQyWhcNMTcwNjEwMDMwNjQyWjBN
|
18
|
+
MQ0wCwYDVQQDDARnZW1zMREwDwYKCZImiZPyLGQBGRYBcDEVMBMGCgmSJomT8ixk
|
19
|
+
ARkWBWFybmR0MRIwEAYKCZImiZPyLGQBGRYCaW8wggEiMA0GCSqGSIb3DQEBAQUA
|
20
|
+
A4IBDwAwggEKAoIBAQDMLLiiRX/NrRDQxcNO/bPNe51IhKeyACDjTTx0VGCG696t
|
21
|
+
qdD23FjUrAYuQTW5P7Auh9qdcCnvPHJSwf31m+EGTshy/hcNYz2k/mrbwAfdytv3
|
22
|
+
GAR+sFnMYtWvVQNeHBWXIaYMiSDP0WtbT6QqQx3SuA6ZpXNXD1dbm64MzHgMHqXP
|
23
|
+
uHnLf2s0VCnTLorPH2J6CO5Y+Sx+IBqJi9/nO2oEEIXQCQRLgRevHk+TovDisW5V
|
24
|
+
OMEPX7fo29R5J2T7mjkNLGJ5Ae1KiU9A60LsMco37HMWE8DM90pg1ues5tg6MfJT
|
25
|
+
yuX4N0rJWdIC5ciHDsyJ4pi21s8fdUulk0YmJALDAgMBAAGjcTBvMAkGA1UdEwQC
|
26
|
+
MAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSqXg48+kmcdOxIrkZhhgSV1flD1jAa
|
27
|
+
BgNVHREEEzARgQ9nZW1zQHAuYXJuZHQuaW8wGgYDVR0SBBMwEYEPZ2Vtc0BwLmFy
|
28
|
+
bmR0LmlvMA0GCSqGSIb3DQEBBQUAA4IBAQBSSS4nOXpPPMdAK4ApGHxbzS+/u77p
|
29
|
+
V8gLBJX4hKMpbMNmdI+n6YsqvG6kMljgYBamucfrAkKdmHWn9ydST3o8RQAcYxS8
|
30
|
+
bz49gD3c4Nm4P6eEVKFmebO9/MoiM7rMb0lk/xH1drtey/9ulohrg8Dz+BoQJ+9T
|
31
|
+
m2lJzojOU7w461lPVZtKlDlseu68KvEQ2AdUBBa1b6w3S/EFkcdhErOT7dyQpePI
|
32
|
+
+wsbjPvdIWsjWQMn6MasZYIVTnenwP2jg+z9HSNxW0NL2vZx8VabpsWGWfrb+koj
|
33
|
+
rE1h12GTgwaC3r9FOkdnSpClgPYAzTTCJ8kD74qO2zC9pGegrUXdWFM6
|
34
|
+
-----END CERTIFICATE-----
|
35
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
14
36
|
dependencies:
|
15
37
|
- !ruby/object:Gem::Dependency
|
16
38
|
name: friendly_id
|
@@ -86,14 +108,14 @@ dependencies:
|
|
86
108
|
requirements:
|
87
109
|
- - '='
|
88
110
|
- !ruby/object:Gem::Version
|
89
|
-
version: 3.0.
|
111
|
+
version: 3.0.4
|
90
112
|
type: :runtime
|
91
113
|
prerelease: false
|
92
114
|
version_requirements: !ruby/object:Gem::Requirement
|
93
115
|
requirements:
|
94
116
|
- - '='
|
95
117
|
- !ruby/object:Gem::Version
|
96
|
-
version: 3.0.
|
118
|
+
version: 3.0.4
|
97
119
|
- !ruby/object:Gem::Dependency
|
98
120
|
name: babosa
|
99
121
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +144,20 @@ dependencies:
|
|
122
144
|
- - "~>"
|
123
145
|
- !ruby/object:Gem::Version
|
124
146
|
version: 8.0.0
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: diffy
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 3.1.0
|
154
|
+
type: :runtime
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 3.1.0
|
125
161
|
description: The default content extension of Refinery CMS. This extension handles
|
126
162
|
the administration and display of user-editable pages.
|
127
163
|
email: refinerycms@p.arndt.io
|
metadata.gz.sig
ADDED
Binary file
|