meta-tags 2.17.0 → 2.19.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.
@@ -47,25 +47,25 @@ module MetaTags
47
47
  def default_property_tags
48
48
  [
49
49
  # App Link metadata https://developers.facebook.com/docs/applinks/metadata-reference
50
- 'al',
50
+ "al",
51
51
  # Open Graph Markup https://developers.facebook.com/docs/sharing/webmasters#markup
52
- 'fb',
53
- 'og',
52
+ "fb",
53
+ "og",
54
54
  # Facebook OpenGraph Object Types https://developers.facebook.com/docs/reference/opengraph
55
55
  # Note that these tags are used in a regex, so including e.g. 'restaurant' will affect
56
56
  # 'restaurant:category', 'restaurant:price_rating', and anything else under that namespace.
57
- 'article',
58
- 'book',
59
- 'books',
60
- 'business',
61
- 'fitness',
62
- 'game',
63
- 'music',
64
- 'place',
65
- 'product',
66
- 'profile',
67
- 'restaurant',
68
- 'video',
57
+ "article",
58
+ "book",
59
+ "books",
60
+ "business",
61
+ "fitness",
62
+ "game",
63
+ "music",
64
+ "place",
65
+ "product",
66
+ "profile",
67
+ "restaurant",
68
+ "video"
69
69
  ].freeze
70
70
  end
71
71
 
@@ -78,7 +78,7 @@ module MetaTags
78
78
  @truncate_site_title_first = false
79
79
  @description_limit = 300
80
80
  @keywords_limit = 255
81
- @keywords_separator = ', '
81
+ @keywords_separator = ", "
82
82
  @keywords_lowercase = true
83
83
  @property_tags = default_property_tags.dup
84
84
  @open_meta_tags = true
@@ -15,8 +15,8 @@ module MetaTags
15
15
  # Processes the <tt>@page_title</tt>, <tt>@page_keywords</tt>, and
16
16
  # <tt>@page_description</tt> instance variables and calls +render+.
17
17
  def render(*args, &block)
18
- meta_tags[:title] = @page_title if defined?(@page_title) && @page_title
19
- meta_tags[:keywords] = @page_keywords if defined?(@page_keywords) && @page_keywords
18
+ meta_tags[:title] = @page_title if defined?(@page_title) && @page_title
19
+ meta_tags[:keywords] = @page_keywords if defined?(@page_keywords) && @page_keywords
20
20
  meta_tags[:description] = @page_description if defined?(@page_description) && @page_description
21
21
 
22
22
  super
@@ -25,7 +25,7 @@ module MetaTags
25
25
  # Set meta tags for the page.
26
26
  #
27
27
  # See <tt>MetaTags::ViewHelper#set_meta_tags</tt> for details.
28
- def set_meta_tags(meta_tags) # rubocop:disable Naming/AccessorMethodName
28
+ def set_meta_tags(meta_tags)
29
29
  self.meta_tags.update(meta_tags)
30
30
  end
31
31
  protected :set_meta_tags
@@ -39,12 +39,12 @@ module MetaTags
39
39
  #
40
40
  def update(object = {})
41
41
  meta_tags = if object.respond_to?(:to_meta_tags)
42
- # @type var object: (_MetaTagish & Object)
43
- object.to_meta_tags
44
- else
45
- # @type var object: Hash[String | Symbol, untyped]
46
- object
47
- end
42
+ # @type var object: _MetaTagish & Object
43
+ object.to_meta_tags
44
+ else
45
+ # @type var object: Hash[String | Symbol, untyped]
46
+ object
47
+ end
48
48
  @meta_tags.deep_merge! normalize_open_graph(meta_tags)
49
49
  end
50
50
 
@@ -70,14 +70,16 @@ module MetaTags
70
70
  with_defaults(defaults) { extract_full_title }
71
71
  end
72
72
 
73
- # Constructs the title without site title (for normalized parameters).
73
+ # Constructs the title without site title (for normalized parameters). When title is empty,
74
+ # use the site title instead.
74
75
  #
75
76
  # @return [String] page title.
76
77
  #
77
78
  def page_title(defaults = {})
78
79
  old_site = @meta_tags[:site]
79
80
  @meta_tags[:site] = nil
80
- with_defaults(defaults) { extract_full_title }
81
+ full_title = with_defaults(defaults) { extract_full_title }
82
+ full_title.presence || old_site || ""
81
83
  ensure
82
84
  @meta_tags[:site] = old_site
83
85
  end
@@ -104,10 +106,10 @@ module MetaTags
104
106
  # @return [String] page title.
105
107
  #
106
108
  def extract_full_title
107
- site_title = extract(:site) || ''
108
- title = extract_title
109
- separator = extract_separator
110
- reverse = extract(:reverse) == true
109
+ site_title = extract(:site) || ""
110
+ title = extract_title
111
+ separator = extract_separator
112
+ reverse = extract(:reverse) == true
111
113
 
112
114
  TextNormalizer.normalize_title(site_title, title, separator, reverse)
113
115
  end
@@ -134,15 +136,15 @@ module MetaTags
134
136
  def extract_separator
135
137
  if meta_tags[:separator] == false
136
138
  # Special case: if separator is hidden, do not display suffix/prefix
137
- prefix = separator = suffix = ''
139
+ prefix = separator = suffix = ""
138
140
  else
139
- prefix = extract_separator_section(:prefix, ' ')
140
- separator = extract_separator_section(:separator, '|')
141
- suffix = extract_separator_section(:suffix, ' ')
141
+ prefix = extract_separator_section(:prefix, " ")
142
+ separator = extract_separator_section(:separator, "|")
143
+ suffix = extract_separator_section(:suffix, " ")
142
144
  end
143
145
  delete(:separator, :prefix, :suffix)
144
146
 
145
- TextNormalizer.safe_join([prefix, separator, suffix], '')
147
+ TextNormalizer.safe_join([prefix, separator, suffix], "")
146
148
  end
147
149
 
148
150
  # Extracts noindex settings as a Hash mapping noindex tag name to value.
@@ -157,12 +159,12 @@ module MetaTags
157
159
  [:noindex, :index],
158
160
  # follow has higher priority than nofollow
159
161
  [:follow, :nofollow],
160
- :noarchive,
162
+ :noarchive
161
163
  ].each do |attributes|
162
164
  calculate_robots_attributes(result, attributes)
163
165
  end
164
166
 
165
- result.transform_values { |v| v.join(', ') }
167
+ result.transform_values { |v| v.join(", ") }
166
168
  end
167
169
 
168
170
  protected
@@ -186,7 +188,7 @@ module MetaTags
186
188
  # @return [String] separator segment value.
187
189
  #
188
190
  def extract_separator_section(name, default)
189
- meta_tags[name] == false ? '' : (meta_tags[name] || default)
191
+ (meta_tags[name] == false) ? "" : (meta_tags[name] || default)
190
192
  end
191
193
 
192
194
  # Extracts robots attribute (noindex, nofollow, etc) name and value.
@@ -195,11 +197,11 @@ module MetaTags
195
197
  # @return [Array<String>] pair of noindex attribute name and value.
196
198
  #
197
199
  def extract_robots_attribute(name)
198
- noindex = extract(name)
199
- noindex_name = noindex.kind_of?(String) || noindex.kind_of?(Array) ? noindex : 'robots'
200
+ noindex = extract(name)
201
+ noindex_name = (noindex.is_a?(String) || noindex.is_a?(Array)) ? noindex : "robots"
200
202
  noindex_value = noindex ? name.to_s : nil
201
203
 
202
- [ noindex_name, noindex_value ]
204
+ [noindex_name, noindex_value]
203
205
  end
204
206
 
205
207
  def calculate_robots_attributes(result, attributes)
@@ -2,15 +2,15 @@
2
2
 
3
3
  module MetaTags
4
4
  class Railtie < Rails::Railtie
5
- initializer 'meta_tags.setup_action_controller' do
5
+ initializer "meta_tags.setup_action_controller" do
6
6
  ActiveSupport.on_load :action_controller do
7
- ActionController::Base.include MetaTags::ControllerHelper
7
+ include MetaTags::ControllerHelper
8
8
  end
9
9
  end
10
10
 
11
- initializer 'meta_tags.setup_action_view' do
11
+ initializer "meta_tags.setup_action_view" do
12
12
  ActiveSupport.on_load :action_view do
13
- ActionView::Base.include MetaTags::ViewHelper
13
+ include MetaTags::ViewHelper
14
14
  end
15
15
  end
16
16
  end
@@ -71,12 +71,12 @@ module MetaTags
71
71
  return unless icon
72
72
 
73
73
  # String? Value is an href
74
- icon = [{ href: icon }] if icon.kind_of?(String)
74
+ icon = [{href: icon}] if icon.is_a?(String)
75
75
  # Hash? Single icon instead of a list of icons
76
- icon = [icon] if icon.kind_of?(Hash)
76
+ icon = [icon] if icon.is_a?(Hash)
77
77
 
78
78
  icon.each do |icon_params|
79
- icon_params = { rel: 'icon', type: 'image/x-icon' }.with_indifferent_access.merge(icon_params)
79
+ icon_params = {rel: "icon", type: "image/x-icon"}.with_indifferent_access.merge(icon_params)
80
80
  tags << Tag.new(:link, icon_params)
81
81
  end
82
82
  end
@@ -109,7 +109,7 @@ module MetaTags
109
109
  #
110
110
  def render_refresh(tags)
111
111
  refresh = meta_tags.extract(:refresh)
112
- tags << Tag.new(:meta, 'http-equiv' => 'refresh', content: refresh.to_s) if refresh.present?
112
+ tags << Tag.new(:meta, "http-equiv" => "refresh", :content => refresh.to_s) if refresh.present?
113
113
  end
114
114
 
115
115
  # Renders alternate link tags.
@@ -120,13 +120,13 @@ module MetaTags
120
120
  alternate = meta_tags.extract(:alternate)
121
121
  return unless alternate
122
122
 
123
- if alternate.kind_of?(Hash)
123
+ if alternate.is_a?(Hash)
124
124
  alternate.each do |hreflang, href|
125
- tags << Tag.new(:link, rel: 'alternate', href: href, hreflang: hreflang) if href.present?
125
+ tags << Tag.new(:link, rel: "alternate", href: href, hreflang: hreflang) if href.present?
126
126
  end
127
- elsif alternate.kind_of?(Array)
127
+ elsif alternate.is_a?(Array)
128
128
  alternate.each do |link_params|
129
- tags << Tag.new(:link, { rel: 'alternate' }.with_indifferent_access.merge(link_params))
129
+ tags << Tag.new(:link, {rel: "alternate"}.with_indifferent_access.merge(link_params))
130
130
  end
131
131
  end
132
132
  end
@@ -143,7 +143,7 @@ module MetaTags
143
143
  title = open_search[:title]
144
144
 
145
145
  type = "application/opensearchdescription+xml"
146
- tags << Tag.new(:link, rel: 'search', type: type, href: href, title: title) if href.present?
146
+ tags << Tag.new(:link, rel: "search", type: type, href: href, title: title) if href.present?
147
147
  end
148
148
 
149
149
  # Renders links.
@@ -151,7 +151,7 @@ module MetaTags
151
151
  # @param [Array<Tag>] tags a buffer object to store tag in.
152
152
  #
153
153
  def render_links(tags)
154
- [ :amphtml, :prev, :next, :image_src, :manifest ].each do |tag_name|
154
+ [:amphtml, :prev, :next, :image_src, :manifest].each do |tag_name|
155
155
  href = meta_tags.extract(tag_name)
156
156
  if href.present?
157
157
  @normalized_meta_tags[tag_name] = href
@@ -189,7 +189,7 @@ module MetaTags
189
189
  #
190
190
  def render_hash(tags, key, **opts)
191
191
  data = meta_tags.meta_tags[key]
192
- return unless data.kind_of?(Hash)
192
+ return unless data.is_a?(Hash)
193
193
 
194
194
  process_hash(tags, key, data, **opts)
195
195
  meta_tags.extract(key)
@@ -202,7 +202,7 @@ module MetaTags
202
202
  def render_custom(tags)
203
203
  meta_tags.meta_tags.each do |name, data|
204
204
  Array(data).each do |val|
205
- tags << Tag.new(:meta, configured_name_key(name) => name, content: val)
205
+ tags << Tag.new(:meta, configured_name_key(name) => name, :content => val)
206
206
  end
207
207
  meta_tags.extract(name)
208
208
  end
@@ -217,14 +217,14 @@ module MetaTags
217
217
  #
218
218
  def process_tree(tags, property, content, itemprop: nil, **opts)
219
219
  method = case content
220
- when Hash
221
- :process_hash
222
- when Array
223
- :process_array
224
- else
225
- iprop = itemprop
226
- :render_tag
227
- end
220
+ when Hash
221
+ :process_hash
222
+ when Array
223
+ :process_array
224
+ else
225
+ iprop = itemprop
226
+ :render_tag
227
+ end
228
228
  __send__(method, tags, property, content, itemprop: iprop, **opts)
229
229
  end
230
230
 
@@ -237,18 +237,18 @@ module MetaTags
237
237
  def process_hash(tags, property, content, **opts)
238
238
  itemprop = content.delete(:itemprop)
239
239
  content.each do |key, value|
240
- if key.to_s == '_'
240
+ if key.to_s == "_"
241
241
  iprop = itemprop
242
242
  key = property
243
243
  else
244
244
  key = "#{property}:#{key}"
245
245
  end
246
246
 
247
- normalized_value = if value.kind_of?(Symbol)
248
- normalized_meta_tags[value]
249
- else
250
- value
251
- end
247
+ normalized_value = if value.is_a?(Symbol)
248
+ normalized_meta_tags[value]
249
+ else
250
+ value
251
+ end
252
252
  process_tree(tags, key, normalized_value, **opts.merge(itemprop: iprop))
253
253
  end
254
254
  end
@@ -273,7 +273,7 @@ module MetaTags
273
273
  #
274
274
  def render_tag(tags, name, value, itemprop: nil)
275
275
  name_key ||= configured_name_key(name)
276
- tags << Tag.new(:meta, name_key => name.to_s, content: value, itemprop: itemprop) if value.present?
276
+ tags << Tag.new(:meta, name_key => name.to_s, :content => value, :itemprop => itemprop) if value.present?
277
277
  end
278
278
 
279
279
  # Returns meta tag property name for a give meta tag based on the
@@ -44,7 +44,7 @@ module MetaTags
44
44
  # serves the same purpose we could just as it to convert itself to str
45
45
  # and continue from there
46
46
  description = cleanup_string(description)
47
- return '' if description.blank?
47
+ return "" if description.blank?
48
48
 
49
49
  truncate(description, MetaTags.config.description_limit)
50
50
  end
@@ -56,7 +56,7 @@ module MetaTags
56
56
  #
57
57
  def normalize_keywords(keywords)
58
58
  keywords = cleanup_strings(keywords)
59
- return '' if keywords.blank?
59
+ return "" if keywords.blank?
60
60
 
61
61
  keywords.each(&:downcase!) if MetaTags.config.keywords_lowercase
62
62
  separator = cleanup_string MetaTags.config.keywords_separator, strip: false
@@ -107,12 +107,12 @@ module MetaTags
107
107
  # space characters squashed into a single space.
108
108
  #
109
109
  def cleanup_string(string, strip: true)
110
- return '' if string.nil?
111
- raise ArgumentError, 'Expected a string or an object that implements #to_str' unless string.respond_to?(:to_str)
110
+ return "" if string.nil?
111
+ raise ArgumentError, "Expected a string or an object that implements #to_str" unless string.respond_to?(:to_str)
112
112
 
113
113
  s = strip_tags(string.to_str)
114
114
  s = s.dup if s.frozen?
115
- s.gsub!(/\s+/, ' ')
115
+ s.gsub!(/\s+/, " ")
116
116
  s.strip! if strip
117
117
 
118
118
  s
@@ -137,15 +137,15 @@ module MetaTags
137
137
  # @param [String] natural_separator natural separator to truncate at.
138
138
  # @return [String] truncated string.
139
139
  #
140
- def truncate(string, limit = nil, natural_separator = ' ')
141
- return string if limit.to_i == 0 # rubocop:disable Lint/NumberConversion
140
+ def truncate(string, limit = nil, natural_separator = " ")
141
+ return string if limit.to_i == 0
142
142
 
143
143
  helpers.truncate(
144
144
  string,
145
- length: limit,
145
+ length: limit,
146
146
  separator: natural_separator,
147
- omission: '',
148
- escape: true,
147
+ omission: "",
148
+ escape: true
149
149
  )
150
150
  end
151
151
 
@@ -157,7 +157,7 @@ module MetaTags
157
157
  # @param [String] natural_separator natural separator to truncate at.
158
158
  # @return [Array<String>] truncated array of strings.
159
159
  #
160
- def truncate_array(string_array, limit = nil, separator = '', natural_separator = ' ')
160
+ def truncate_array(string_array, limit = nil, separator = "", natural_separator = " ")
161
161
  return string_array if limit.nil? || limit <= 0
162
162
 
163
163
  length = 0
@@ -188,14 +188,14 @@ module MetaTags
188
188
  end
189
189
 
190
190
  def truncate_title(site_title, title, separator)
191
- global_limit = MetaTags.config.title_limit.to_i # rubocop:disable Lint/NumberConversion
191
+ global_limit = MetaTags.config.title_limit.to_i
192
192
  if global_limit > 0
193
193
  site_title_limited_length, title_limited_length = calculate_title_limits(
194
- site_title, title, separator, global_limit,
194
+ site_title, title, separator, global_limit
195
195
  )
196
196
 
197
- title = title_limited_length > 0 ? truncate_array(title, title_limited_length, separator) : []
198
- site_title = site_title_limited_length > 0 ? truncate(site_title, site_title_limited_length) : nil
197
+ title = (title_limited_length > 0) ? truncate_array(title, title_limited_length, separator) : []
198
+ site_title = (site_title_limited_length > 0) ? truncate(site_title, site_title_limited_length) : nil
199
199
  end
200
200
 
201
201
  [site_title, title]
@@ -208,13 +208,13 @@ module MetaTags
208
208
  main_length = main_title.map(&:length).sum + ((main_title.size - 1) * separator.length)
209
209
  main_limited_length = global_limit
210
210
 
211
- secondary_limited_length = global_limit - (main_length > 0 ? main_length + separator.length : 0)
211
+ secondary_limited_length = global_limit - ((main_length > 0) ? main_length + separator.length : 0)
212
212
  secondary_limited_length = [0, secondary_limited_length].max
213
213
 
214
214
  if MetaTags.config.truncate_site_title_first
215
- [ secondary_limited_length, main_limited_length ]
215
+ [secondary_limited_length, main_limited_length]
216
216
  else
217
- [ main_limited_length, secondary_limited_length ]
217
+ [main_limited_length, secondary_limited_length]
218
218
  end
219
219
  end
220
220
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module MetaTags
4
4
  # Gem version.
5
- VERSION = '2.17.0'
5
+ VERSION = "2.19.0"
6
6
  public_constant :VERSION
7
7
  end
@@ -55,7 +55,7 @@ module MetaTags
55
55
  #
56
56
  # @see #display_meta_tags
57
57
  #
58
- def title(title = nil, headline = '')
58
+ def title(title = nil, headline = "")
59
59
  set_meta_tags(title: title) unless title.nil?
60
60
  headline.presence || meta_tags[:title]
61
61
  end
@@ -203,7 +203,7 @@ module MetaTags
203
203
  # <div data-page-container="true" title="<%= display_title title: 'My Page', site: 'PJAX Site' %>">
204
204
  #
205
205
  def display_title(defaults = {})
206
- @meta_tags.full_title(defaults)
206
+ meta_tags.full_title(defaults)
207
207
  end
208
208
  end
209
209
  end
data/lib/meta_tags.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'set'
4
- require 'active_support/core_ext/hash/indifferent_access'
3
+ require "set"
4
+ require "active_support/core_ext/hash/indifferent_access"
5
5
 
6
6
  # MetaTags gem namespace.
7
7
  module MetaTags
@@ -24,15 +24,15 @@ module MetaTags
24
24
  end
25
25
  end
26
26
 
27
- require 'meta_tags/version'
27
+ require "meta_tags/version"
28
28
 
29
- require 'meta_tags/configuration'
30
- require 'meta_tags/controller_helper'
31
- require 'meta_tags/meta_tags_collection'
32
- require 'meta_tags/renderer'
33
- require 'meta_tags/tag'
34
- require 'meta_tags/content_tag'
35
- require 'meta_tags/text_normalizer'
36
- require 'meta_tags/view_helper'
29
+ require "meta_tags/configuration"
30
+ require "meta_tags/controller_helper"
31
+ require "meta_tags/meta_tags_collection"
32
+ require "meta_tags/renderer"
33
+ require "meta_tags/tag"
34
+ require "meta_tags/content_tag"
35
+ require "meta_tags/text_normalizer"
36
+ require "meta_tags/view_helper"
37
37
 
38
- require 'meta_tags/railtie' if defined?(Rails)
38
+ require "meta_tags/railtie" if defined?(Rails)
data/meta-tags.gemspec CHANGED
@@ -1,43 +1,52 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'meta_tags/version'
5
+ require "meta_tags/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "meta-tags"
9
- spec.version = MetaTags::VERSION
10
- spec.authors = ["Dmytro Shteflyuk"]
11
- spec.email = ["kpumuk@kpumuk.info"]
12
-
13
- spec.summary = "Collection of SEO helpers for Ruby on Rails."
14
- spec.description = "Search Engine Optimization (SEO) plugin for Ruby on Rails applications."
15
- spec.homepage = "https://github.com/kpumuk/meta-tags"
16
- spec.license = "MIT"
17
- spec.platform = Gem::Platform::RUBY
18
- spec.required_ruby_version = '>= 2.6.0'
19
-
20
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(\.|(bin|test|spec|features)/)}) }
21
- spec.bindir = "exe"
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
8
+ spec.name = "meta-tags"
9
+ spec.version = MetaTags::VERSION
10
+ spec.authors = ["Dmytro Shteflyuk"]
11
+ spec.email = ["kpumuk@kpumuk.info"]
12
+
13
+ spec.summary = "Collection of SEO helpers for Ruby on Rails."
14
+ spec.description = "Search Engine Optimization (SEO) plugin for Ruby on Rails applications."
15
+ spec.homepage = "https://github.com/kpumuk/meta-tags"
16
+ spec.license = "MIT"
17
+ spec.platform = Gem::Platform::RUBY
18
+ spec.required_ruby_version = ">= 2.7.0"
19
+
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(\.|(bin|test|spec|features)/)}) }
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_dependency "actionpack", ">= 3.2.0", "< 7.1"
25
+ spec.add_runtime_dependency "actionpack", ">= 3.2.0", "< 7.2"
26
26
 
27
- spec.add_development_dependency "railties", ">= 3.2.0", "< 7.1"
27
+ spec.add_development_dependency "railties", ">= 3.2.0", "< 7.2"
28
28
  spec.add_development_dependency "rake", "~> 13.0"
29
- spec.add_development_dependency "rspec", "~> 3.10.0"
30
- spec.add_development_dependency "rspec-html-matchers", "~> 0.9.1"
31
-
32
- spec.cert_chain = ["certs/kpumuk.pem"]
33
- spec.signing_key = File.expand_path("~/.ssh/gem-kpumuk.pem") if $PROGRAM_NAME.end_with?('gem')
29
+ spec.add_development_dependency "rspec", "~> 3.12.0"
30
+ spec.add_development_dependency "rspec-html-matchers", "~> 0.10.0"
31
+ spec.add_development_dependency "appraisal", "~> 2.5.0"
32
+ spec.add_development_dependency "simplecov", "~> 0.22.0"
33
+ # Code style
34
+ spec.add_development_dependency "standard", "~> 1.29"
35
+ spec.add_development_dependency "rubocop-rails", "~> 2.20.2"
36
+ spec.add_development_dependency "rubocop-rake", "~> 0.6.0"
37
+ spec.add_development_dependency "rubocop-rspec", "~> 2.23.0"
38
+ # Format RSpec output for CircleCI
39
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.6.0"
40
+
41
+ spec.cert_chain = ["certs/kpumuk.pem"]
42
+ spec.signing_key = File.expand_path("~/.ssh/gem-kpumuk.pem") if $PROGRAM_NAME.end_with?("gem")
34
43
 
35
44
  spec.metadata = {
36
- "bug_tracker_uri" => "https://github.com/kpumuk/meta-tags/issues/",
37
- "changelog_uri" => "https://github.com/kpumuk/meta-tags/blob/main/CHANGELOG.md",
38
- "documentation_uri" => "https://rubydoc.info/github/kpumuk/meta-tags/",
39
- "homepage_uri" => "https://github.com/kpumuk/meta-tags/",
40
- "source_code_uri" => "https://github.com/kpumuk/meta-tags/",
41
- "rubygems_mfa_required" => "true",
45
+ "bug_tracker_uri" => "https://github.com/kpumuk/meta-tags/issues/",
46
+ "changelog_uri" => "https://github.com/kpumuk/meta-tags/blob/main/CHANGELOG.md",
47
+ "documentation_uri" => "https://rubydoc.info/github/kpumuk/meta-tags/",
48
+ "homepage_uri" => "https://github.com/kpumuk/meta-tags/",
49
+ "source_code_uri" => "https://github.com/kpumuk/meta-tags/",
50
+ "rubygems_mfa_required" => "true"
42
51
  }
43
52
  end
@@ -4,7 +4,9 @@ class ::Hash[unchecked out K, unchecked out V]
4
4
  end
5
5
 
6
6
  class ::Object
7
- def presence: () -> String?
7
+ $OFS: String
8
+
9
+ def presence: () -> self?
8
10
  def blank?: () -> bool
9
11
  def present?: () -> bool
10
12
  end
@@ -1,5 +1,6 @@
1
1
  module MetaTags
2
2
  module ControllerHelper : _ActionControllerBase
3
+ @meta_tags: MetaTagsCollection?
3
4
  @page_title: String?
4
5
  @page_description: String?
5
6
  @page_keywords: String? | Array[String]
@@ -1,5 +1,7 @@
1
1
  module MetaTags
2
2
  module ViewHelper : Module, _ActionViewBase
3
+ @meta_tags: MetaTagsCollection?
4
+
3
5
  # type meta_tags = {
4
6
  # site: String?,
5
7
  # title: Array[String] | String?,
@@ -1,4 +1,6 @@
1
1
  module MetaTags
2
+ self.@config: Configuration
3
+
2
4
  def self.config: () -> Configuration
3
5
  def self.configure: () { (Configuration) -> void } -> void
4
6
 
data.tar.gz.sig CHANGED
Binary file