canonical-rails 0.2.9 → 0.2.10
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7cc8c724bb2b64e543b2becad527e27a2828bd4113032ecb396f5c8f6425f0e2
|
4
|
+
data.tar.gz: df6126c3991db70dfea28424bf78b64a8a216e1634e3d8f33f1e9c624e33218a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dafcabbeea6d18de1a8e50d7402e4169d0e451d8fa47a4bb4b311c7e9f616aa78314725ef2ef6684fe44c7a424525d92f58bbd6f9a99540805ecacc0416ab4da
|
7
|
+
data.tar.gz: 3ddf2e2e9fd2423c7eb6f2675755d7ea0461233aa13a61289274129124e1e32cc1b6e9470d74911902baeb5ca165493f8125d5fa1f875186d242c46ee4115b65
|
@@ -38,11 +38,11 @@ module CanonicalRails
|
|
38
38
|
def canonical_href(host = canonical_host, port = canonical_port, force_trailing_slash = nil)
|
39
39
|
default_ports = { 'https://' => 443, 'http://' => 80 }
|
40
40
|
port = port.present? && port.to_i != default_ports[canonical_protocol] ? ":#{port}" : ''
|
41
|
-
raw "#{canonical_protocol}#{host}#{port}#{path_without_html_extension}#{trailing_slash_config(force_trailing_slash)}#{
|
41
|
+
raw "#{canonical_protocol}#{host}#{port}#{path_without_html_extension}#{trailing_slash_config(force_trailing_slash)}#{allowed_query_string}"
|
42
42
|
end
|
43
43
|
|
44
44
|
def canonical_path(force_trailing_slash = nil)
|
45
|
-
raw "#{path_without_html_extension}#{trailing_slash_config(force_trailing_slash)}#{
|
45
|
+
raw "#{path_without_html_extension}#{trailing_slash_config(force_trailing_slash)}#{allowed_query_string}"
|
46
46
|
end
|
47
47
|
|
48
48
|
def canonical_tag(host = canonical_host, port = canonical_port, force_trailing_slash = nil)
|
@@ -55,15 +55,15 @@ module CanonicalRails
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
58
|
+
def allowed_params
|
59
59
|
selected_params = params.select do |key, value|
|
60
|
-
value.present? && CanonicalRails.
|
60
|
+
value.present? && CanonicalRails.sym_allowed_parameters.include?(key.to_sym)
|
61
61
|
end
|
62
62
|
|
63
63
|
selected_params.respond_to?(:to_unsafe_h) ? selected_params.to_unsafe_h : selected_params.to_h
|
64
64
|
end
|
65
65
|
|
66
|
-
def
|
66
|
+
def allowed_query_string
|
67
67
|
# Rack 1.4.5 fails to handle params that are not strings
|
68
68
|
# So if
|
69
69
|
# my_hash = { "a" => 1, "b" => 2}
|
@@ -74,7 +74,7 @@ module CanonicalRails
|
|
74
74
|
# Rack 1.6.0 has it
|
75
75
|
# https://github.com/rack/rack/blob/65a7104b6b3e9ecd8f33c63a478ab9a33a103507/test/spec_utils.rb#L251
|
76
76
|
|
77
|
-
wl_params =
|
77
|
+
wl_params = allowed_params
|
78
78
|
|
79
79
|
"?" + Rack::Utils.build_nested_query(convert_numeric_params(wl_params)) if wl_params.present?
|
80
80
|
end
|
data/lib/canonical-rails.rb
CHANGED
@@ -23,8 +23,8 @@ module CanonicalRails
|
|
23
23
|
mattr_accessor :collection_actions
|
24
24
|
@@collection_actions = [:index]
|
25
25
|
|
26
|
-
mattr_accessor :
|
27
|
-
@@
|
26
|
+
mattr_accessor :allowed_parameters
|
27
|
+
@@allowed_parameters = []
|
28
28
|
|
29
29
|
mattr_accessor :opengraph_url
|
30
30
|
@@opengraph_url = false
|
@@ -33,7 +33,7 @@ module CanonicalRails
|
|
33
33
|
@@sym_collection_actions ||= self.collection_actions.map(&:to_sym)
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.
|
37
|
-
@@
|
36
|
+
def self.sym_allowed_parameters
|
37
|
+
@@sym_allowed_parameters ||= self.allowed_parameters.map(&:to_sym)
|
38
38
|
end
|
39
39
|
end
|
@@ -20,9 +20,9 @@ CanonicalRails.setup do |config|
|
|
20
20
|
config.collection_actions# = [:index]
|
21
21
|
|
22
22
|
# Parameter spamming can cause index dilution by creating seemingly different URLs with identical or near-identical content.
|
23
|
-
# Unless
|
23
|
+
# Unless allowed, these parameters will be omitted
|
24
24
|
|
25
|
-
config.
|
25
|
+
config.allowed_parameters# = []
|
26
26
|
|
27
27
|
# Output a matching OpenGraph URL meta tag (og:url) with the canonical URL, as recommended by Facebook et al
|
28
28
|
config.opengraph_url#= true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canonical-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Ivanov
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '4.1'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '6.
|
22
|
+
version: '6.2'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '4.1'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '6.
|
32
|
+
version: '6.2'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: appraisal
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ files:
|
|
109
109
|
homepage: https://github.com/jumph4x/canonical-rails
|
110
110
|
licenses: []
|
111
111
|
metadata: {}
|
112
|
-
post_install_message:
|
112
|
+
post_install_message:
|
113
113
|
rdoc_options: []
|
114
114
|
require_paths:
|
115
115
|
- lib
|
@@ -124,9 +124,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
requirements: []
|
127
|
-
|
128
|
-
|
129
|
-
signing_key:
|
127
|
+
rubygems_version: 3.0.6
|
128
|
+
signing_key:
|
130
129
|
specification_version: 4
|
131
130
|
summary: Simple and configurable Rails canonical ref tag helper
|
132
131
|
test_files: []
|