page_title_helper 5.0.0 → 6.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83ca84d323ad19f09e49b6ee6333f2cd3c06f0e2e3f8748b8081a204fdebc4ac
4
- data.tar.gz: 4c9affff4ee6f51d0dfccb906ec4406e5a50032da651fcc92be19603368741e0
3
+ metadata.gz: 5526377f52ae74a93d1dd45729c0278258db52f32e5e38e37ec9baed06a33a6d
4
+ data.tar.gz: bd18c28d5e3f5bfe0b0d2138d305d4af987293088dd7ac3c362db127ef903cbf
5
5
  SHA512:
6
- metadata.gz: 19879f1e33647398e8d15ee0b3adbaacd29a6645fd89b33838fddf11f469a577abf2467a368f6b352e61ad4db8fc71f0ac4f5e918112b16c59ab84751bfca0a2
7
- data.tar.gz: c28883f1bd9cefd68c8f121b4caced4bd946ffec08d5e10f4e33f8a6008ed825132886362b97afa36a642ce05e02b22182899743daeb56515962e24ac9e51fdd
6
+ metadata.gz: d1fe1095a08095559012b02daceda00de0152bf1f4dd531a719acbdabac958f5a0e2722950119bf0091783c2592a0c90720dbfaaf9f2f98d26e07012b400f347
7
+ data.tar.gz: 18c030e2df24abbe72cbfbecb39b3ee373b7a4723aeb1b03c3ab2d55a7a27bcec56bc3c4d5618ebc862e202f56369e672ec106af9fbf6039fbec4d26104f1b4a
data/CHANGELOG.md CHANGED
@@ -20,6 +20,18 @@ about why a change log is important.
20
20
 
21
21
  ### Security
22
22
 
23
+ ## 6.0.0
24
+
25
+ ### Added
26
+ - Add support for Rails 7.0 (#131)
27
+ - Add support for Ruby 3.1 (#143)
28
+
29
+ ### Removed
30
+ - Drop support for Ruby 2.5 and 2.6 (#127, #145)
31
+
32
+ ### Fixed
33
+ - Avoid modifying a frozen array in Ruby 3 (#135)
34
+
23
35
  ## 5.0.0
24
36
 
25
37
  ### Added
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PageTitleHelper
4
- VERSION = '5.0.0'
4
+ VERSION = '6.0.0'
5
5
  end
@@ -7,7 +7,7 @@
7
7
  # Copyright:: Copyright (c) 2009 Lukas Westermann (Zurich, Switzerland)
8
8
  # Licence:: MIT-Licence (https://www.opensource.org/licenses/mit-license.php)
9
9
  #
10
- # See documentation for +page_title+ for usage examples and more informations.
10
+ # See documentation for +page_title+ for usage examples and more information.
11
11
  require 'active_support'
12
12
 
13
13
  # PageTitleHelper
@@ -25,7 +25,7 @@ module PageTitleHelper
25
25
  end
26
26
 
27
27
  def app(env)
28
- env[:app] || I18n.translate('app.name', default: File.basename(Rails.root).humanize)
28
+ env[:app] || I18n.t('app.name', default: File.basename(Rails.root).humanize)
29
29
  end
30
30
 
31
31
  def title(env)
@@ -69,18 +69,13 @@ module PageTitleHelper
69
69
  options[:format] ||= :title # handles :format => false
70
70
  options.assert_valid_keys(:app, :default, :format)
71
71
 
72
- # read page title and split into 'real' title and customized format
73
- title = @_page_title ||= page_title_from_translation(options[:default])
74
- title, options[:format] = *(title << options[:format]) if title.is_a?(Array)
72
+ format, real_title = build_title_and_format(options)
75
73
 
76
74
  # handle format aliases
77
- format = options.delete(:format)
78
- if PageTitleHelper.formats.include?(format)
79
- format = PageTitleHelper.formats[format]
80
- end
75
+ format = PageTitleHelper.formats[format] if PageTitleHelper.formats.include?(format)
81
76
 
82
77
  # construct basic env to pass around
83
- env = { title: title, app: options.delete(:app), options: options, view: self }
78
+ env = { title: real_title, app: options[:app], options: options, view: self }
84
79
 
85
80
  # interpolate format
86
81
  Interpolations.interpolate(format, env)
@@ -100,7 +95,30 @@ module PageTitleHelper
100
95
  keys << :"#{base}.title"
101
96
  keys << default
102
97
 
103
- I18n.translate(keys.shift, default: keys)
98
+ I18n.t(keys.shift, default: keys)
99
+ end
100
+
101
+ private
102
+
103
+ ##
104
+ # Read the page title and splits it into 'real' title and the customized
105
+ # format.
106
+ #
107
+ # @param {Hash} options
108
+ #
109
+ # @return {Array}
110
+ #
111
+ def build_title_and_format(options)
112
+ raw_title = @_page_title ||= page_title_from_translation(options[:default])
113
+ if raw_title.is_a?(Array)
114
+ title_and_format = raw_title + [options[:format]]
115
+ real_title, format = *title_and_format
116
+ else
117
+ real_title = raw_title
118
+ format = options[:format]
119
+ end
120
+
121
+ [format, real_title]
104
122
  end
105
123
  end
106
124
 
@@ -1,5 +1,4 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path('../lib', __FILE__)
1
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
3
2
  require 'page_title_helper/version'
4
3
 
5
4
  Gem::Specification.new do |s|
@@ -9,22 +8,24 @@ Gem::Specification.new do |s|
9
8
  s.summary = 'Simple, internationalized and DRY page titles and headings for Rails.'
10
9
  s.description = 'Simple, internationalized and DRY page titles and headings for Rails.'
11
10
 
12
- s.required_ruby_version = '>= 2.5.0'
11
+ s.required_ruby_version = '>= 2.7.0'
13
12
 
14
13
  s.authors = ['Lukas Westermann']
15
14
  s.email = ['lukas.westermann@gmail.com']
16
15
  s.homepage = 'https://github.com/lwe/page_title_helper'
17
16
 
18
- s.files = %w{Gemfile LICENSE README.md CODE_OF_CONDUCT.md CHANGELOG.md Rakefile page_title_helper.gemspec} + Dir['**/*.{rb,yml}']
17
+ s.files = %w[Gemfile LICENSE README.md CODE_OF_CONDUCT.md CHANGELOG.md Rakefile
18
+ page_title_helper.gemspec] + Dir['**/*.{rb,yml}']
19
19
  s.test_files = s.files.grep(%r{^(test|spec)/})
20
20
  s.require_path = 'lib'
21
21
 
22
22
  s.license = 'MIT'
23
23
 
24
- s.add_dependency 'rails', '>= 5.2.0', '< 6.2'
24
+ s.add_dependency 'rails', '>= 5.2.0', '< 7.1'
25
25
 
26
- s.add_development_dependency 'rake', '>= 10.3.2'
27
- s.add_development_dependency 'shoulda'
28
- s.add_development_dependency 'rubocop', '~> 0.82.0'
29
- s.add_development_dependency 'rubocop-rails', '~> 2.5.2'
26
+ s.add_development_dependency 'rake', '~> 13.0.6'
27
+ s.add_development_dependency 'rubocop', '~> 1.26.1'
28
+ s.add_development_dependency 'rubocop-rails', '~> 2.14.2'
29
+ s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
30
+ s.add_development_dependency 'shoulda', '~> 4.0.0'
30
31
  end
@@ -47,7 +47,8 @@ class MultipleFormatsTest < ActiveSupport::TestCase
47
47
 
48
48
  should 'override locally supplied :format arguments' do
49
49
  assert_equal('Something', @view.page_title { ['Something', '* * * :title * * *'] })
50
- assert_equal '* * * Something * * *', @view.page_title(format: '-= :title =-') # yeah, using x-tra ugly titles :)
50
+ # yeah, using x-tra ugly titles :)
51
+ assert_equal '* * * Something * * *', @view.page_title(format: '-= :title =-')
51
52
  end
52
53
  end
53
54
  end
@@ -60,7 +61,7 @@ class MultipleFormatsTest < ActiveSupport::TestCase
60
61
  @view = TestView.new
61
62
  end
62
63
 
63
- should 'allow to overide format through YAML' do
64
+ should 'allow to override format through YAML' do
64
65
  @view.controller! 'pages', 'features'
65
66
  assert_equal 'Wohaapp > Feature comparison', @view.page_title
66
67
  end
@@ -32,7 +32,9 @@ class PageTitleHelperTest < ActiveSupport::TestCase
32
32
  PageTitleHelper.interpolates(:foobar_test) { |_env| 'foobar_test' }
33
33
  PageTitleHelper.interpolates(:title_foobar) { |_env| 'title_foobar' }
34
34
 
35
- assert_equal 'title_foobar / foobar_test / foobar / foobar_x', PageTitleHelper::Interpolations.interpolate(':title_foobar / :foobar_test / :foobar / :foobar_x', {})
35
+ assert_equal 'title_foobar / foobar_test / foobar / foobar_x',
36
+ PageTitleHelper::Interpolations.interpolate(':title_foobar / :foobar_test / :foobar / :foobar_x',
37
+ {})
36
38
  end
37
39
  end
38
40
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: page_title_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Westermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-19 00:00:00.000000000 Z
11
+ date: 2022-04-01 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: 5.2.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.2'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,63 +29,77 @@ dependencies:
29
29
  version: 5.2.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.2'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 10.3.2
39
+ version: 13.0.6
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 10.3.2
46
+ version: 13.0.6
47
47
  - !ruby/object:Gem::Dependency
48
- name: shoulda
48
+ name: rubocop
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 1.26.1
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: 1.26.1
61
61
  - !ruby/object:Gem::Dependency
62
- name: rubocop
62
+ name: rubocop-rails
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 0.82.0
67
+ version: 2.14.2
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: 0.82.0
74
+ version: 2.14.2
75
75
  - !ruby/object:Gem::Dependency
76
- name: rubocop-rails
76
+ name: rubocop-rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.6.0
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.6.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: shoulda
77
91
  requirement: !ruby/object:Gem::Requirement
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: 2.5.2
95
+ version: 4.0.0
82
96
  type: :development
83
97
  prerelease: false
84
98
  version_requirements: !ruby/object:Gem::Requirement
85
99
  requirements:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
- version: 2.5.2
102
+ version: 4.0.0
89
103
  description: Simple, internationalized and DRY page titles and headings for Rails.
90
104
  email:
91
105
  - lukas.westermann@gmail.com
@@ -119,14 +133,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
119
133
  requirements:
120
134
  - - ">="
121
135
  - !ruby/object:Gem::Version
122
- version: 2.5.0
136
+ version: 2.7.0
123
137
  required_rubygems_version: !ruby/object:Gem::Requirement
124
138
  requirements:
125
139
  - - ">="
126
140
  - !ruby/object:Gem::Version
127
141
  version: '0'
128
142
  requirements: []
129
- rubygems_version: 3.2.3
143
+ rubygems_version: 3.2.32
130
144
  signing_key:
131
145
  specification_version: 4
132
146
  summary: Simple, internationalized and DRY page titles and headings for Rails.