page_meta 1.0.0 → 1.2.0
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
- data/.github/workflows/ruby-tests.yml +13 -18
- data/.gitignore +1 -0
- data/.rubocop.yml +7 -1
- data/CHANGELOG.md +13 -0
- data/README.md +39 -20
- data/gemfiles/{6.0.gemfile → 6_1.gemfile} +1 -1
- data/gemfiles/{6.1.gemfile → 7_0.gemfile} +1 -1
- data/gemfiles/7_1.gemfile +6 -0
- data/lib/page_meta/base.rb +18 -7
- data/lib/page_meta/hash_meta_tag.rb +9 -1
- data/lib/page_meta/link.rb +1 -1
- data/lib/page_meta/meta_tag/language.rb +2 -2
- data/lib/page_meta/meta_tag.rb +13 -8
- data/lib/page_meta/naming.rb +1 -1
- data/lib/page_meta/translator.rb +21 -4
- data/lib/page_meta/version.rb +1 -1
- data/page_meta.gemspec +2 -2
- metadata +8 -8
- data/.travis.yml +0 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6325d31942f9536c2a062706f746f49693cce7328d1c362009e822e80fa89a98
|
|
4
|
+
data.tar.gz: 942c213fc64a1324345f6ec08eb09c6ca40aabb1331d6960f6e4fa4261a10a80
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a7fd41a5e0f3639a91f70afd26936ad740ecdcabdceb604b4fb5750f973f3879a76dbe3326d6124c0e786cb09936c8a29cb95245c1c9c161132d7b54a2914144
|
|
7
|
+
data.tar.gz: d7612bd88688c8ec272e3b2931e6b9d998458f0ef659a3f8697afd8ab0c380d0a2fe8269c8cea1fafafcb2df67c7e8e57e15e79c82a5a3f8a030b820131707bf
|
|
@@ -2,44 +2,42 @@
|
|
|
2
2
|
name: ruby-tests
|
|
3
3
|
|
|
4
4
|
on:
|
|
5
|
-
|
|
6
|
-
branches:
|
|
7
|
-
- main
|
|
5
|
+
pull_request_target:
|
|
8
6
|
push:
|
|
9
7
|
branches:
|
|
10
8
|
- main
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- cron: "0 10 * * *"
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs: {}
|
|
14
11
|
|
|
15
12
|
jobs:
|
|
16
13
|
build:
|
|
17
14
|
name: Tests with Ruby ${{ matrix.ruby }} and ${{ matrix.gemfile }}
|
|
18
15
|
runs-on: "ubuntu-latest"
|
|
16
|
+
if: |
|
|
17
|
+
github.actor == 'dependabot[bot]' && github.event_name == 'pull_request_target' ||
|
|
18
|
+
github.actor != 'dependabot[bot]'
|
|
19
19
|
strategy:
|
|
20
20
|
fail-fast: false
|
|
21
21
|
matrix:
|
|
22
|
-
ruby: [
|
|
22
|
+
ruby: ["3.1", "3.2", "3.3"]
|
|
23
23
|
gemfile:
|
|
24
24
|
- Gemfile
|
|
25
|
-
- gemfiles/
|
|
26
|
-
- gemfiles/
|
|
25
|
+
- gemfiles/7_1.gemfile
|
|
26
|
+
- gemfiles/7_0.gemfile
|
|
27
|
+
- gemfiles/6_1.gemfile
|
|
27
28
|
|
|
28
29
|
steps:
|
|
29
|
-
- uses: actions/checkout@
|
|
30
|
+
- uses: actions/checkout@v4
|
|
30
31
|
|
|
31
|
-
- uses: actions/cache@
|
|
32
|
+
- uses: actions/cache@v4
|
|
32
33
|
with:
|
|
33
34
|
path: vendor/bundle
|
|
34
35
|
key: >
|
|
35
36
|
${{ runner.os }}-${{ matrix.ruby }}-gems-${{
|
|
36
37
|
hashFiles(matrix.gemfile) }}
|
|
37
|
-
restore-keys: >
|
|
38
|
-
${{ runner.os }}-${{ matrix.ruby }}-gems-${{
|
|
39
|
-
hashFiles(matrix.gemfile) }}
|
|
40
38
|
|
|
41
39
|
- name: Set up Ruby
|
|
42
|
-
uses:
|
|
40
|
+
uses: ruby/setup-ruby@v1
|
|
43
41
|
with:
|
|
44
42
|
ruby-version: ${{ matrix.ruby }}
|
|
45
43
|
|
|
@@ -53,9 +51,6 @@ jobs:
|
|
|
53
51
|
|
|
54
52
|
- name: Run Tests
|
|
55
53
|
env:
|
|
56
|
-
PGHOST: localhost
|
|
57
|
-
PGUSER: postgres
|
|
58
54
|
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
|
59
55
|
run: |
|
|
60
56
|
bundle exec rake
|
|
61
|
-
bundle exec rubocop
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -3,7 +3,7 @@ inherit_gem:
|
|
|
3
3
|
rubocop-fnando: .rubocop.yml
|
|
4
4
|
|
|
5
5
|
AllCops:
|
|
6
|
-
TargetRubyVersion:
|
|
6
|
+
TargetRubyVersion: 3.1
|
|
7
7
|
NewCops: enable
|
|
8
8
|
Exclude:
|
|
9
9
|
- test/support/dummy.rb
|
|
@@ -16,3 +16,9 @@ Layout/LineLength:
|
|
|
16
16
|
|
|
17
17
|
Metrics:
|
|
18
18
|
Enabled: false
|
|
19
|
+
|
|
20
|
+
Minitest/MultipleAssertions:
|
|
21
|
+
Enabled: false
|
|
22
|
+
|
|
23
|
+
Gemspec/DevelopmentDependencies:
|
|
24
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,19 @@ Prefix your message with one of the following:
|
|
|
11
11
|
- [Security] in case of vulnerabilities.
|
|
12
12
|
-->
|
|
13
13
|
|
|
14
|
+
## 1.2.0
|
|
15
|
+
|
|
16
|
+
- [Added] The meta tag's content can also be any object that responds to the
|
|
17
|
+
method `call`, like procs.
|
|
18
|
+
- [Fixed] Fixed case where meta tags were being rendered with blank content.
|
|
19
|
+
|
|
20
|
+
## 1.1.0
|
|
21
|
+
|
|
22
|
+
- [Added] `<meta name="viewport" content="width=device-width,initial-scale=1">`
|
|
23
|
+
is now added by default.
|
|
24
|
+
- [Changed] You can now group all translations under
|
|
25
|
+
`page_meta.controller.action.{title,description,keywords}`.
|
|
26
|
+
|
|
14
27
|
## 1.0.0
|
|
15
28
|
|
|
16
29
|
- Initial release.
|
data/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# page_meta
|
|
2
2
|
|
|
3
3
|
[](https://github.com/fnando/page_meta)
|
|
4
|
-
[](https://codeclimate.com/github/fnando/page_meta)
|
|
5
4
|
[](https://rubygems.org/gems/page_meta)
|
|
6
5
|
[](https://rubygems.org/gems/page_meta)
|
|
7
6
|
|
|
@@ -23,13 +22,14 @@ gem "page_meta"
|
|
|
23
22
|
## Usage
|
|
24
23
|
|
|
25
24
|
Your controller and views have an object called `page_meta`. You can use it to
|
|
26
|
-
define meta tags and links. By default, it will include the encoding
|
|
27
|
-
|
|
25
|
+
define meta tags and links. By default, it will include the encoding, language
|
|
26
|
+
and viewport meta tags.
|
|
28
27
|
|
|
29
28
|
```html
|
|
30
29
|
<meta charset="utf-8" />
|
|
31
30
|
<meta name="language" content="en" />
|
|
32
31
|
<meta itemprop="language" content="en" />
|
|
32
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
You can use I18n to define titles, descriptions and keywords. These values will
|
|
@@ -37,15 +37,29 @@ be inferred from the controller and action names. For an action
|
|
|
37
37
|
`SiteController#index` you'll need the following translation scope:
|
|
38
38
|
|
|
39
39
|
```yaml
|
|
40
|
-
|
|
41
|
-
page_meta:
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
en:
|
|
41
|
+
page_meta:
|
|
42
|
+
title_base: "%{value} • MyApp"
|
|
43
|
+
|
|
44
44
|
site:
|
|
45
|
-
index:
|
|
45
|
+
index:
|
|
46
|
+
title: "Welcome to MyApp"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Previously, you could also use the `page_meta.{titles,description,keywords}`
|
|
50
|
+
scopes, but this is now deprecated in favor of the above.
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
---
|
|
54
|
+
en:
|
|
55
|
+
page_meta:
|
|
56
|
+
titles:
|
|
57
|
+
base: "%{value} • MyApp"
|
|
58
|
+
site:
|
|
59
|
+
index: "Welcome to MyApp"
|
|
46
60
|
```
|
|
47
61
|
|
|
48
|
-
The title
|
|
62
|
+
The title without the `base` context can be accessed through
|
|
49
63
|
`page_meta.title.simple`.
|
|
50
64
|
|
|
51
65
|
```erb
|
|
@@ -60,10 +74,11 @@ I18n placeholders.
|
|
|
60
74
|
---
|
|
61
75
|
en:
|
|
62
76
|
page_meta:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
77
|
+
title_base: "%{title} • MyCompany"
|
|
78
|
+
|
|
79
|
+
workshops:
|
|
80
|
+
show:
|
|
81
|
+
title: "%{name}"
|
|
67
82
|
```
|
|
68
83
|
|
|
69
84
|
You can then set dynamic values using the `PageMeta::Base#[]=`.
|
|
@@ -89,13 +104,12 @@ The same concept is applied to descriptions and keywords.
|
|
|
89
104
|
---
|
|
90
105
|
en:
|
|
91
106
|
page_meta:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
home: "myapp, thing, other thing"
|
|
107
|
+
base_title: "%{value} • MyApp"
|
|
108
|
+
site:
|
|
109
|
+
show:
|
|
110
|
+
title: "Show"
|
|
111
|
+
description: MyApp is the best way of doing something.
|
|
112
|
+
keywords: "myapp, thing, other thing"
|
|
99
113
|
```
|
|
100
114
|
|
|
101
115
|
### Defining meta tags
|
|
@@ -113,6 +127,11 @@ class Workshops Controller < ApplicationController
|
|
|
113
127
|
end
|
|
114
128
|
```
|
|
115
129
|
|
|
130
|
+
> [!TIP]
|
|
131
|
+
>
|
|
132
|
+
> The meta tag's content can also be any object that responds to the method
|
|
133
|
+
> `call`. This way you can lazy evaluate the content.
|
|
134
|
+
|
|
116
135
|
You can define default meta/link tags in a `before_action`:
|
|
117
136
|
|
|
118
137
|
```ruby
|
data/lib/page_meta/base.rb
CHANGED
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
module PageMeta
|
|
4
4
|
class Base
|
|
5
|
-
DEFAULT_META_TAGS = %i[
|
|
5
|
+
DEFAULT_META_TAGS = %i[
|
|
6
|
+
language
|
|
7
|
+
charset
|
|
8
|
+
title
|
|
9
|
+
keywords
|
|
10
|
+
description
|
|
11
|
+
viewport
|
|
12
|
+
].freeze
|
|
6
13
|
|
|
7
14
|
attr_reader :controller, :store
|
|
8
15
|
|
|
@@ -27,7 +34,7 @@ module PageMeta
|
|
|
27
34
|
end
|
|
28
35
|
|
|
29
36
|
def link(rel, options)
|
|
30
|
-
links << {rel
|
|
37
|
+
links << {rel:, options:}
|
|
31
38
|
end
|
|
32
39
|
|
|
33
40
|
def title
|
|
@@ -35,7 +42,7 @@ module PageMeta
|
|
|
35
42
|
end
|
|
36
43
|
|
|
37
44
|
def description(html: false)
|
|
38
|
-
@description[html] ||= Translator.new(:descriptions, naming, store.merge(html:
|
|
45
|
+
@description[html] ||= Translator.new(:descriptions, naming, store.merge(html:))
|
|
39
46
|
end
|
|
40
47
|
|
|
41
48
|
def keywords
|
|
@@ -68,7 +75,7 @@ module PageMeta
|
|
|
68
75
|
|
|
69
76
|
def compute_default_meta_tags
|
|
70
77
|
DEFAULT_META_TAGS.each do |method_name|
|
|
71
|
-
public_send("compute_default_#{method_name}")
|
|
78
|
+
public_send(:"compute_default_#{method_name}")
|
|
72
79
|
end
|
|
73
80
|
end
|
|
74
81
|
|
|
@@ -77,7 +84,7 @@ module PageMeta
|
|
|
77
84
|
end
|
|
78
85
|
|
|
79
86
|
def compute_default_title
|
|
80
|
-
tag(:title, title) unless title.to_s.
|
|
87
|
+
tag(:title, title) unless title.to_s.blank?
|
|
81
88
|
end
|
|
82
89
|
|
|
83
90
|
def compute_default_charset
|
|
@@ -85,11 +92,15 @@ module PageMeta
|
|
|
85
92
|
end
|
|
86
93
|
|
|
87
94
|
def compute_default_keywords
|
|
88
|
-
tag(:keywords, keywords.to_s) unless keywords.to_s.
|
|
95
|
+
tag(:keywords, keywords.to_s) unless keywords.to_s.blank?
|
|
89
96
|
end
|
|
90
97
|
|
|
91
98
|
def compute_default_description
|
|
92
|
-
tag(:description, description.to_s) unless description.to_s.
|
|
99
|
+
tag(:description, description.to_s) unless description.to_s.blank?
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def compute_default_viewport
|
|
103
|
+
tag(:viewport, "width=device-width,initial-scale=1") unless meta_tags[:viewport]
|
|
93
104
|
end
|
|
94
105
|
end
|
|
95
106
|
end
|
|
@@ -6,10 +6,18 @@ module PageMeta
|
|
|
6
6
|
return if content.empty?
|
|
7
7
|
|
|
8
8
|
content.each_with_object([]) do |(attr, value), buffer|
|
|
9
|
+
value = value.call if value.respond_to?(:call)
|
|
10
|
+
value = value.to_s
|
|
11
|
+
|
|
9
12
|
next if value.blank?
|
|
10
13
|
|
|
11
14
|
attr = attr.to_s.tr("_", ":")
|
|
12
|
-
|
|
15
|
+
|
|
16
|
+
buffer << helpers.tag(
|
|
17
|
+
:meta,
|
|
18
|
+
property: "#{base_name}:#{attr}",
|
|
19
|
+
content: value
|
|
20
|
+
)
|
|
13
21
|
end.join
|
|
14
22
|
end
|
|
15
23
|
end
|
data/lib/page_meta/link.rb
CHANGED
|
@@ -4,8 +4,8 @@ module PageMeta
|
|
|
4
4
|
class MetaTag
|
|
5
5
|
class Language < MetaTag
|
|
6
6
|
def render
|
|
7
|
-
helpers.tag(:meta, name
|
|
8
|
-
helpers.tag(:meta, itemprop: name, content:
|
|
7
|
+
helpers.tag(:meta, name:, content:) +
|
|
8
|
+
helpers.tag(:meta, itemprop: name, content:)
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
end
|
data/lib/page_meta/meta_tag.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module PageMeta
|
|
4
4
|
class MetaTag
|
|
5
|
-
attr_reader :name
|
|
5
|
+
attr_reader :name
|
|
6
6
|
|
|
7
7
|
def self.build(name, content)
|
|
8
8
|
klass_name = "::PageMeta::MetaTag::#{name.to_s.camelize}"
|
|
@@ -16,11 +16,16 @@ module PageMeta
|
|
|
16
16
|
|
|
17
17
|
def initialize(name, content)
|
|
18
18
|
@name = name.to_s.dasherize
|
|
19
|
-
@
|
|
19
|
+
@raw_content = content
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def content
|
|
23
|
+
@content ||=
|
|
24
|
+
@raw_content.respond_to?(:call) ? @raw_content.call : @raw_content
|
|
20
25
|
end
|
|
21
26
|
|
|
22
27
|
def render
|
|
23
|
-
helpers.tag(:meta, name
|
|
28
|
+
helpers.tag(:meta, name:, content:) unless content.blank?
|
|
24
29
|
end
|
|
25
30
|
|
|
26
31
|
def helpers
|
|
@@ -29,18 +34,18 @@ module PageMeta
|
|
|
29
34
|
|
|
30
35
|
class MultipleMetaTag < MetaTag
|
|
31
36
|
def render
|
|
32
|
-
return if content.
|
|
37
|
+
return if content.blank?
|
|
33
38
|
|
|
34
|
-
helpers.tag(:meta, name
|
|
35
|
-
helpers.tag(:meta, itemprop: name, content:
|
|
39
|
+
helpers.tag(:meta, name:, content:) +
|
|
40
|
+
helpers.tag(:meta, itemprop: name, content:)
|
|
36
41
|
end
|
|
37
42
|
end
|
|
38
43
|
|
|
39
44
|
class HttpEquiv < MetaTag
|
|
40
45
|
def render
|
|
41
|
-
return if content.
|
|
46
|
+
return if content.blank?
|
|
42
47
|
|
|
43
|
-
helpers.tag(:meta, "http-equiv" => name, content:
|
|
48
|
+
helpers.tag(:meta, "http-equiv" => name, content:)
|
|
44
49
|
end
|
|
45
50
|
end
|
|
46
51
|
|
data/lib/page_meta/naming.rb
CHANGED
data/lib/page_meta/translator.rb
CHANGED
|
@@ -13,21 +13,38 @@ module PageMeta
|
|
|
13
13
|
@options = options
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
+
def singular_scope
|
|
17
|
+
@singular_scope ||= scope == :keywords ? "keywords" : scope.to_s.singularize
|
|
18
|
+
end
|
|
19
|
+
|
|
16
20
|
def to_s
|
|
17
21
|
return "" if simple.blank?
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
[
|
|
24
|
+
t("page_meta.#{scope}.base", value: simple, default: ""),
|
|
25
|
+
t("page_meta.#{singular_scope}_base", value: simple, default: simple)
|
|
26
|
+
].reject(&:blank?).first || ""
|
|
20
27
|
end
|
|
21
28
|
|
|
22
29
|
def translation_scope
|
|
23
|
-
|
|
30
|
+
[
|
|
31
|
+
"page_meta.#{scope}.#{naming.controller}.#{naming.action}",
|
|
32
|
+
"page_meta.#{naming.controller}.#{naming.action}.#{singular_scope}"
|
|
33
|
+
]
|
|
24
34
|
end
|
|
25
35
|
|
|
26
36
|
def simple
|
|
27
37
|
override_options = options.merge(default: "")
|
|
28
38
|
|
|
29
|
-
translation =
|
|
30
|
-
|
|
39
|
+
translation = ""
|
|
40
|
+
|
|
41
|
+
translation_scope.each do |scope|
|
|
42
|
+
translation = t("#{scope}_html", **override_options) if html
|
|
43
|
+
translation = t(scope, **override_options) if translation.blank?
|
|
44
|
+
|
|
45
|
+
break if translation.present?
|
|
46
|
+
end
|
|
47
|
+
|
|
31
48
|
translation
|
|
32
49
|
end
|
|
33
50
|
end
|
data/lib/page_meta/version.rb
CHANGED
data/page_meta.gemspec
CHANGED
|
@@ -6,8 +6,8 @@ Gem::Specification.new do |spec|
|
|
|
6
6
|
spec.name = "page_meta"
|
|
7
7
|
spec.version = PageMeta::VERSION
|
|
8
8
|
spec.authors = ["Nando Vieira"]
|
|
9
|
-
spec.email = ["fnando.
|
|
10
|
-
spec.required_ruby_version = Gem::Requirement.new(">=
|
|
9
|
+
spec.email = ["me@fnando.com"]
|
|
10
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
|
|
11
11
|
spec.metadata = {
|
|
12
12
|
"rubygems_mfa_required" => "true"
|
|
13
13
|
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: page_meta
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nando Vieira
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-05-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -125,7 +125,7 @@ dependencies:
|
|
|
125
125
|
description: Easily define <meta> and <link> tags. I18n support for descriptions,
|
|
126
126
|
keywords and titles.
|
|
127
127
|
email:
|
|
128
|
-
- fnando.
|
|
128
|
+
- me@fnando.com
|
|
129
129
|
executables: []
|
|
130
130
|
extensions: []
|
|
131
131
|
extra_rdoc_files: []
|
|
@@ -139,7 +139,6 @@ files:
|
|
|
139
139
|
- ".github/workflows/ruby-tests.yml"
|
|
140
140
|
- ".gitignore"
|
|
141
141
|
- ".rubocop.yml"
|
|
142
|
-
- ".travis.yml"
|
|
143
142
|
- CHANGELOG.md
|
|
144
143
|
- CODE_OF_CONDUCT.md
|
|
145
144
|
- CONTRIBUTING.md
|
|
@@ -149,8 +148,9 @@ files:
|
|
|
149
148
|
- Rakefile
|
|
150
149
|
- bin/console
|
|
151
150
|
- bin/setup
|
|
152
|
-
- gemfiles/
|
|
153
|
-
- gemfiles/
|
|
151
|
+
- gemfiles/6_1.gemfile
|
|
152
|
+
- gemfiles/7_0.gemfile
|
|
153
|
+
- gemfiles/7_1.gemfile
|
|
154
154
|
- lib/page_meta.rb
|
|
155
155
|
- lib/page_meta/action.rb
|
|
156
156
|
- lib/page_meta/base.rb
|
|
@@ -182,14 +182,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
182
182
|
requirements:
|
|
183
183
|
- - ">="
|
|
184
184
|
- !ruby/object:Gem::Version
|
|
185
|
-
version:
|
|
185
|
+
version: 3.1.0
|
|
186
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
187
187
|
requirements:
|
|
188
188
|
- - ">="
|
|
189
189
|
- !ruby/object:Gem::Version
|
|
190
190
|
version: '0'
|
|
191
191
|
requirements: []
|
|
192
|
-
rubygems_version: 3.
|
|
192
|
+
rubygems_version: 3.5.9
|
|
193
193
|
signing_key:
|
|
194
194
|
specification_version: 4
|
|
195
195
|
summary: Easily define <meta> and <link> tags. I18n support for descriptions, keywords
|
data/.travis.yml
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
cache: bundler
|
|
3
|
-
sudo: false
|
|
4
|
-
rvm:
|
|
5
|
-
- 2.7.1
|
|
6
|
-
- 2.6.5
|
|
7
|
-
before_install: gem install bundler --pre
|
|
8
|
-
before_script:
|
|
9
|
-
- "curl -L
|
|
10
|
-
https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
|
|
11
|
-
> ./cc-test-reporter"
|
|
12
|
-
- chmod +x ./cc-test-reporter
|
|
13
|
-
- "./cc-test-reporter before-build"
|
|
14
|
-
after_script:
|
|
15
|
-
- "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
|
|
16
|
-
notifications:
|
|
17
|
-
email: false
|
|
18
|
-
env:
|
|
19
|
-
global:
|
|
20
|
-
secure: pN+1uDJEgbIfpvSmk9owADeqXcQAXzMYMkM6XHR3IgfjbRZ39sBL11EkYziF90boEJPoMkVYmwYuTfGePPN7uWxkDBQJXTEaAXGeuAlQc1Fhzsj0WQZlOcQn1JHYmLtzBVe/B8J4z5ZuQMDFTMe+f2i1qIk00P/R1ozcbz9+g3Pi/5Esf7+6NY2rxQYeEw21/D7WM4UGAOJ+uX6rHdEUo/ej18bUZC8GBxZZy6jVeVqbBE8PPdzNcLkkUu+soPbZVBZiVF2bXn+N3AqXQqA4oL4t7zorG7xU4+2mUldbHRr3HaJBPSwnWzw6mjnSEq6OO77nTOrpwdrkb/Qz/slgL5cuqjlO0MRNq6THdBZT29vCqErxAFs9w4AUoFgwkzMe1mR8ZB8QuUct3xFpAMtE2q35efCuHFb5h682Ske8v0COnzsIRjN1NgSX3nx1oKIh7V9c9O84oDx+W/h0oL2RH/OjW4DcLaVBDS5MhaMZ1ySuBktmqDJD2OqsfbO4Gn+LrWbQAM2RFp2TTROyfDJJU3ITgE7DMqn0QiOcZIoCWzastamGJJs99WzmliouO87ZDSG5Kct2JXml0syyY/jBuR5nnJ9x6TyJpDD9jNMz6LOW9LZ31aOttGbAOQbYVgUgtPkITEuo8xhLCBc6ae+GVA4t8NcJx/rAn1U9E/CXiPs=
|