canonical-rails 0.2.9 → 0.2.13
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: '088a23f4f03053700e7809173d6953067d121ebb1b9ca98b3c5e7a643d4c971a'
|
4
|
+
data.tar.gz: 30de872759b0d27df588db3ee600e5a321768526d2fe02d345f94620911d373f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: badad29ede7d61cc3f4927e03287fa302b20c0061cfeb242df8e7aac96ac01427511e362ab6282a68638c3fdae8ec8a272b0e773185e5caf233893ac29dd663e
|
7
|
+
data.tar.gz: 806a8a41dba749500f6f31b8823342ad4c87ef48be21eb5ed97b2a7dffe7ddc853f19c4621de18d2beef55167c348aee73d6b4ce55c60c56ec1a959614c37547
|
@@ -20,7 +20,7 @@ module CanonicalRails
|
|
20
20
|
def path_without_html_extension
|
21
21
|
return '' if request.path == '/'
|
22
22
|
|
23
|
-
request.path.sub(/\.html
|
23
|
+
request.path.sub(/\.html?$/, '')
|
24
24
|
end
|
25
25
|
|
26
26
|
def canonical_protocol
|
@@ -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}
|
@@ -73,10 +73,8 @@ module CanonicalRails
|
|
73
73
|
# https://github.com/rack/rack/blob/9939d40a5e23dcb058751d1029b794aa2f551900/test/spec_utils.rb#L222
|
74
74
|
# Rack 1.6.0 has it
|
75
75
|
# https://github.com/rack/rack/blob/65a7104b6b3e9ecd8f33c63a478ab9a33a103507/test/spec_utils.rb#L251
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
"?" + Rack::Utils.build_nested_query(convert_numeric_params(wl_params)) if wl_params.present?
|
76
|
+
parameters = allowed_params
|
77
|
+
"?" + Rack::Utils.build_nested_query(convert_numeric_params(parameters)) if parameters.present?
|
80
78
|
end
|
81
79
|
|
82
80
|
private
|
data/lib/canonical-rails.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "canonical-rails/engine"
|
2
|
+
require "canonical-rails/deprecation"
|
2
3
|
|
3
4
|
module CanonicalRails
|
4
5
|
|
@@ -23,9 +24,13 @@ module CanonicalRails
|
|
23
24
|
mattr_accessor :collection_actions
|
24
25
|
@@collection_actions = [:index]
|
25
26
|
|
27
|
+
# @deprecated: use config.allowed_parameters instead
|
26
28
|
mattr_accessor :whitelisted_parameters
|
27
29
|
@@whitelisted_parameters = []
|
28
30
|
|
31
|
+
mattr_accessor :allowed_parameters
|
32
|
+
@@allowed_parameters = []
|
33
|
+
|
29
34
|
mattr_accessor :opengraph_url
|
30
35
|
@@opengraph_url = false
|
31
36
|
|
@@ -33,7 +38,12 @@ module CanonicalRails
|
|
33
38
|
@@sym_collection_actions ||= self.collection_actions.map(&:to_sym)
|
34
39
|
end
|
35
40
|
|
36
|
-
def self.
|
37
|
-
@@
|
41
|
+
def self.sym_allowed_parameters
|
42
|
+
@@sym_allowed_parameters ||= if self.whitelisted_parameters.empty?
|
43
|
+
self.allowed_parameters.map(&:to_sym)
|
44
|
+
else
|
45
|
+
CanonicalRails::Deprecation.warn('config.whitelisted_parameters is deprecated, please use config.allowed_parameters instead.')
|
46
|
+
self.whitelisted_parameters.map(&:to_sym)
|
47
|
+
end
|
38
48
|
end
|
39
49
|
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.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Ivanov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -17,9 +17,9 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.1'
|
20
|
-
- - "
|
20
|
+
- - "<="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '7.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +27,9 @@ dependencies:
|
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '4.1'
|
30
|
-
- - "
|
30
|
+
- - "<="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '7.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: appraisal
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,14 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
67
|
+
version: 4.0.1
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
74
|
+
version: 4.0.1
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: pry
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,13 +101,15 @@ files:
|
|
101
101
|
- app/helpers/canonical_rails/tag_helper.rb
|
102
102
|
- config/routes.rb
|
103
103
|
- lib/canonical-rails.rb
|
104
|
+
- lib/canonical-rails/deprecation.rb
|
104
105
|
- lib/canonical-rails/engine.rb
|
105
106
|
- lib/canonical-rails/version.rb
|
106
107
|
- lib/generators/canonical_rails/install/install_generator.rb
|
107
108
|
- lib/generators/canonical_rails/install/templates/canonical_rails.rb
|
108
109
|
- lib/tasks/canonical-rails_tasks.rake
|
109
110
|
homepage: https://github.com/jumph4x/canonical-rails
|
110
|
-
licenses:
|
111
|
+
licenses:
|
112
|
+
- MIT
|
111
113
|
metadata: {}
|
112
114
|
post_install_message:
|
113
115
|
rdoc_options: []
|
@@ -124,8 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
126
|
- !ruby/object:Gem::Version
|
125
127
|
version: '0'
|
126
128
|
requirements: []
|
127
|
-
|
128
|
-
rubygems_version: 2.7.6.2
|
129
|
+
rubygems_version: 3.0.3
|
129
130
|
signing_key:
|
130
131
|
specification_version: 4
|
131
132
|
summary: Simple and configurable Rails canonical ref tag helper
|