page_title_helper 1.0.1 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +79 -0
- data/CODE_OF_CONDUCT.md +77 -0
- data/Gemfile +5 -0
- data/README.md +201 -155
- data/Rakefile +8 -62
- data/lib/page_title_helper.rb +56 -52
- data/lib/page_title_helper/version.rb +5 -0
- data/page_title_helper.gemspec +30 -0
- data/test/en.yml +11 -1
- data/test/multiple_formats_test.rb +50 -50
- data/test/page_title_helper_test.rb +89 -71
- data/test/test_helper.rb +33 -13
- metadata +112 -43
- data/.gitignore +0 -4
- data/VERSION.yml +0 -4
- data/rails/init.rb +0 -4
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 83ca84d323ad19f09e49b6ee6333f2cd3c06f0e2e3f8748b8081a204fdebc4ac
|
4
|
+
data.tar.gz: 4c9affff4ee6f51d0dfccb906ec4406e5a50032da651fcc92be19603368741e0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 19879f1e33647398e8d15ee0b3adbaacd29a6645fd89b33838fddf11f469a577abf2467a368f6b352e61ad4db8fc71f0ac4f5e918112b16c59ab84751bfca0a2
|
7
|
+
data.tar.gz: c28883f1bd9cefd68c8f121b4caced4bd946ffec08d5e10f4e33f8a6008ed825132886362b97afa36a642ce05e02b22182899743daeb56515962e24ac9e51fdd
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# Page title helper change log
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
This project adheres to [Semantic Versioning](https://semver.org/).
|
5
|
+
|
6
|
+
Read more at [Keep a CHANGELOG](https://keepachangelog.com/en/0.3.0/)
|
7
|
+
about why a change log is important.
|
8
|
+
|
9
|
+
## x.y.z
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
|
15
|
+
### Deprecated
|
16
|
+
|
17
|
+
### Removed
|
18
|
+
|
19
|
+
### Fixed
|
20
|
+
|
21
|
+
### Security
|
22
|
+
|
23
|
+
## 5.0.0
|
24
|
+
|
25
|
+
### Added
|
26
|
+
- Add support for Ruby 3 (#120)
|
27
|
+
- Add automatic gem release (#122)
|
28
|
+
- Add support for Rails 6.1 (#113, #114)
|
29
|
+
- Officially support Ruby 2.7 (#103)
|
30
|
+
|
31
|
+
### Removed
|
32
|
+
- Drop support for Ruby 2.4 (#109)
|
33
|
+
- Drop support for Rails < 5.2 (#104)
|
34
|
+
|
35
|
+
### Fixed
|
36
|
+
- Use a better-maintained Ruby setup for the CI (#121)
|
37
|
+
- Fix warnings in the `.travis.yml` (#106)
|
38
|
+
|
39
|
+
## 4.0.0
|
40
|
+
|
41
|
+
### Added
|
42
|
+
- Add support for Rails 6.0 (#94)
|
43
|
+
|
44
|
+
### Removed
|
45
|
+
- Drop support for Ruby < 2.4 (#93)
|
46
|
+
|
47
|
+
## 3.0.0
|
48
|
+
|
49
|
+
### Added
|
50
|
+
- Add Ruby 2.4.0 to the build matrix (#68)
|
51
|
+
- Add a CHANGELOG.md (#59)
|
52
|
+
- Add RuboCop checking to the CI (#52)
|
53
|
+
- Add a CODE_OF_CONDUCT.md (#51)
|
54
|
+
- Update Ruby to 2.3.3 and 2.2.6 on Travis (#38)
|
55
|
+
- Add Ruby 2.3.0 to the build matrix
|
56
|
+
- Re-add Ruby 2.0.0 to the build matrix (#29)
|
57
|
+
- Test against Ruby 2.2
|
58
|
+
- Use Appraisal for building with different Rails versions (#19)
|
59
|
+
|
60
|
+
### Changed
|
61
|
+
- Replaced Appraisals with specific Gemfiles (#41)
|
62
|
+
- Delete obsolete init.rb file (#61)
|
63
|
+
- Add Rails 5.0 to the build matrix (#42)
|
64
|
+
- Raise RVM and Gem minimum versions (#3)
|
65
|
+
|
66
|
+
### Removed
|
67
|
+
- Drop support for Rails 3.2 and 4.0 (#39)
|
68
|
+
- Drop support for Ruby 1.9.x (#24)
|
69
|
+
|
70
|
+
### Fixed
|
71
|
+
- Fix @_page_title uninitialized warning (#62)
|
72
|
+
- Fix the Travis build on Ruby 2.3.3 (#63)
|
73
|
+
- Do do not shell-out to `git` in Gemfile (#49)
|
74
|
+
- Get the tests to run in Rails 4.2 and 5.0 (#40)
|
75
|
+
- Stop requiring version from the main class (#47)
|
76
|
+
- Allow the Rails 3.2 build to fail only with Ruby 2.2 (#30)
|
77
|
+
- Allow Rails 3.2 builds to fail (#26)
|
78
|
+
- Configure Travis for better performance (#10)
|
79
|
+
- Remove Gemfile.lock (#1)
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age,
|
8
|
+
body size, disability, ethnicity, gender identity and expression, level of
|
9
|
+
experience, nationality, personal appearance, race, religion, or sexual
|
10
|
+
identity and orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
|
35
|
+
## Our Responsibilities
|
36
|
+
|
37
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
38
|
+
behavior and are expected to take appropriate and fair corrective action in
|
39
|
+
response to any instances of unacceptable behavior.
|
40
|
+
|
41
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
42
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
43
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
44
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
45
|
+
threatening, offensive, or harmful.
|
46
|
+
|
47
|
+
## Scope
|
48
|
+
|
49
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
50
|
+
when an individual is representing the project or its community. Examples of
|
51
|
+
representing a project or community include using an official project e-mail
|
52
|
+
address, posting via an official social media account, or acting as an
|
53
|
+
appointed representative at an online or offline event. Representation of a
|
54
|
+
project may be further defined and clarified by project maintainers.
|
55
|
+
|
56
|
+
## Enforcement
|
57
|
+
|
58
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
59
|
+
reported by contacting the project team at (lukas dot westermann at gmail dot com).
|
60
|
+
All complaints will be reviewed and investigated and will result in a response
|
61
|
+
that is deemed necessary and appropriate to the circumstances. The project team
|
62
|
+
is obligated to maintain confidentiality with regard to the reporter of an
|
63
|
+
incident. Further details of specific enforcement policies may be posted
|
64
|
+
separately.
|
65
|
+
|
66
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
67
|
+
faith may face temporary or permanent repercussions as determined by other
|
68
|
+
members of the project's leadership.
|
69
|
+
|
70
|
+
## Attribution
|
71
|
+
|
72
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
73
|
+
version 1.4, available at
|
74
|
+
[https://contributor-covenant.org/version/1/4/][version].
|
75
|
+
|
76
|
+
[homepage]: https://contributor-covenant.org
|
77
|
+
[version]: https://contributor-covenant.org/version/1/4/
|
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -1,178 +1,224 @@
|
|
1
1
|
# Page title helper
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
3
|
+
[![GitHub CI Status](https://github.com/lwe/page_title_helper/workflows/CI/badge.svg?branch=main)](https://github.com/lwe/page_title_helper/actions)
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/page_title_helper.svg)](https://badge.fury.io/rb/page_title_helper)
|
5
|
+
|
6
|
+
This project adheres to [Semantic Versioning](https://semver.org/).
|
7
|
+
|
8
|
+
## What does this gem do?
|
9
|
+
|
10
|
+
Ever wondered if there was an easier and DRY-way to set your page titles
|
11
|
+
(and/or headings), introducing _page title helper_, a small view helper for
|
12
|
+
Rails to inflect titles from controllers and actions.
|
13
|
+
|
14
|
+
In your layout, add this to your `<head>`-section:
|
15
|
+
|
16
|
+
```html
|
17
|
+
<title><%= page_title %></title>
|
18
|
+
```
|
19
|
+
|
20
|
+
That's it. Now just add translations, in e.g. `config/locales/en.yml`:
|
21
|
+
|
22
|
+
```yaml
|
23
|
+
en:
|
24
|
+
contacts:
|
25
|
+
index:
|
26
|
+
title: "Contacts"
|
27
|
+
```
|
28
|
+
|
29
|
+
When `/contacts/` is requested, the key `:en, :contacts, :index, :title`
|
30
|
+
is looked up and printed, together with the applications basename, like:
|
31
|
+
`Contacts - My cool App`.
|
21
32
|
The format etc. is of course configurable, just head down to the options.
|
22
33
|
|
23
34
|
## Installation
|
24
35
|
|
25
|
-
As gem (from
|
36
|
+
As gem (from rubygems.org):
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
# then add the following line to Gemfile
|
40
|
+
gem 'page_title_helper'
|
41
|
+
|
42
|
+
# living on the bleeding edge?
|
43
|
+
gem 'page_title_helper', git: 'git://github.com/lwe/page_title_helper.git'
|
44
|
+
```
|
26
45
|
|
27
|
-
|
28
|
-
|
29
|
-
# then add the following line to config/environment.rb
|
30
|
-
config.gem 'page_title_helper', :source => 'http://gemcutter.org'
|
31
|
-
|
32
|
-
or as plain old Rails plugin:
|
46
|
+
## Translated titles
|
33
47
|
|
34
|
-
|
48
|
+
All translated titles are inflected from the current controller and action,
|
49
|
+
so to easily explain all lookups, here an example with the corresponding
|
50
|
+
lookups:
|
51
|
+
|
52
|
+
```
|
53
|
+
Admin::AccountController#index => :'admin.account.index.title'
|
54
|
+
:'admin.account.title'
|
55
|
+
options[:default]
|
56
|
+
```
|
57
|
+
|
58
|
+
For `create` and `update` a further fallback to `new.title` and `edit.title`
|
59
|
+
have been added, because they certainly are duplicates.
|
35
60
|
|
36
61
|
## Customize titles
|
37
62
|
|
38
|
-
Need a custom title, or need to fill in some placeholders? Just use the _bang_
|
39
|
-
`contacts/show.html.erb` the requirement is to
|
40
|
-
`<title>-tag`as well as in the heading?
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
63
|
+
Need a custom title, or need to fill in some placeholders? Just use the _bang_
|
64
|
+
method (`page_title!`), in e.g. `contacts/show.html.erb` the requirement is to
|
65
|
+
display the contacts name in the `<title>-tag`as well as in the heading?
|
66
|
+
|
67
|
+
```html
|
68
|
+
<h1><%= page_title!(@contact.name) %></h1>
|
69
|
+
```
|
70
|
+
|
71
|
+
A call to `page_title` will now return the contacts name, neat :) if for
|
72
|
+
example the `<h1>` does not match the `<title>`, then well, just do something
|
73
|
+
like:
|
74
|
+
|
75
|
+
```html
|
76
|
+
<% page_title!(@contact.name + " (" + @contact.company.name + ")") %>
|
77
|
+
<h1><%= @contact.name %></h1>
|
78
|
+
```
|
79
|
+
|
80
|
+
Guess, that's it. Of course it's also possible to use `translate` within
|
81
|
+
`page_title!`, to translate custom titles, like:
|
82
|
+
|
83
|
+
In `config/locales/en.yml`:
|
84
|
+
|
85
|
+
```yaml
|
86
|
+
en:
|
87
|
+
dashboard:
|
88
|
+
index:
|
89
|
+
title: "Welcome back, {{name}}"
|
90
|
+
```
|
91
|
+
|
92
|
+
In `app/views/dashboard/index.html.erb`:
|
93
|
+
```html
|
94
|
+
<h1><%= page_title!(t('.title', name: @user.first_name)) %></h1>
|
95
|
+
```
|
96
|
+
|
97
|
+
## More fun with <code>:format</code>
|
98
|
+
|
99
|
+
The `:format` option is used to specify how a title is formatted, i.e. if the
|
100
|
+
app name is prepended or appended or if it contains the account name etc.
|
101
|
+
It uses a similar approach as paperclip's path interpolations:
|
102
|
+
|
103
|
+
```ruby
|
104
|
+
page_title format: ':title / :app' # => "Contacts / My cool app"
|
105
|
+
```
|
106
|
+
|
107
|
+
Adding custom interpolations is as easy as defining a block, for example to
|
108
|
+
access the current controller:
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
PageTitleHelper.interpolates :controller do |env|
|
112
|
+
env[:view].controller.controller_name.humanize
|
113
|
+
end
|
114
|
+
|
115
|
+
page_title format: ':title / :controller / :app' # => "Welcome back / Dashboard / My cool app"
|
116
|
+
```
|
117
|
+
|
118
|
+
To access just the title, without any magic app stuff interpolated or appended,
|
119
|
+
use:
|
120
|
+
|
121
|
+
```ruby
|
122
|
+
page_title! "untitled"
|
123
|
+
page_title format: false # => "untitled"
|
124
|
+
```
|
125
|
+
|
84
126
|
Need a custom format for a single title? Just return an array:
|
85
127
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
128
|
+
In the view:
|
129
|
+
|
130
|
+
```html
|
131
|
+
<h1><%= page_title!(@contact.name, ":title from :company - :app") %></h1> # => <h1>Franz Meyer</h1>
|
132
|
+
```
|
133
|
+
|
134
|
+
In the `<head>`:
|
135
|
+
|
136
|
+
```html
|
137
|
+
<title><%= page_title %></title> # => this time it will use custom title like "Franz Meyer from ABC Corp. - My cool app"
|
138
|
+
```
|
139
|
+
|
140
|
+
To streamline that feature a bit and simplify reuse of often used formats,
|
141
|
+
it's possible to define format aliases like:
|
142
|
+
|
143
|
+
In an initializer, e.g., `config/initializers/page_title_helper.rb`:
|
144
|
+
|
145
|
+
```ruby
|
146
|
+
PageTitleHelper.formats[:with_company] = ":title from :company - :app"
|
147
|
+
# show app first for promo pages :)
|
148
|
+
PageTitleHelper.formats[:promo] = ":app - :title"
|
149
|
+
```
|
150
|
+
|
151
|
+
Then in the view to display a contact:
|
152
|
+
|
153
|
+
```ruby
|
154
|
+
page_title! @contact.name, :with_company
|
155
|
+
```
|
156
|
+
|
157
|
+
Or for the promo page via `config/locales/en.yml` (!):
|
158
|
+
|
159
|
+
```yaml
|
160
|
+
en:
|
161
|
+
pages:
|
162
|
+
features:
|
163
|
+
title:
|
164
|
+
- "Features comparison"
|
165
|
+
- !ruby/sym promo
|
166
|
+
```
|
167
|
+
|
168
|
+
Pretty, cool, ain't it? The special `format: :app` works also via the `formats`
|
169
|
+
hash. Then there is also a `:default` format, which can be used to override the
|
170
|
+
default format.
|
111
171
|
|
112
172
|
## All options - explained
|
113
173
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
<td>string</td>
|
124
|
-
</tr>
|
125
|
-
<tr>
|
126
|
-
<td><tt>:default</tt></td>
|
127
|
-
<td>String which is displayed when no translation exists and no custom title
|
128
|
-
has been specified. Can also be set to a symbol or array to take advantage of
|
129
|
-
<tt>I18n.translate</tt>s <tt>:default</tt> option.</td>
|
130
|
-
<td><tt>:'app.tagline'</tt></td>
|
131
|
-
<td>string, symbol or array of those</td>
|
132
|
-
</tr>
|
133
|
-
<tr>
|
134
|
-
<td><tt>:format</tt></td>
|
135
|
-
<td>Defines the output format, accepts a string containing multiple interpolations, or
|
136
|
-
a symbol to a format alias, see <i>More fun with <tt>:format</tt></i>. If set to
|
137
|
-
+false+, just the current title is returned.</td>
|
138
|
-
<td><tt>:default</tt></td>
|
139
|
-
<td>string, symbol</td>
|
140
|
-
</tr>
|
141
|
-
<tr>
|
142
|
-
<td><tt>:suffix</tt></td>
|
143
|
-
<td>Not happy with the fact that the translations must be named like
|
144
|
-
<tt>en -> contacts -> index -> title</tt>, but prefer e.g. them to be suffixed with
|
145
|
-
<tt>page_title</tt>? Then just set <tt>:suffix => :page_title</tt>.</td>
|
146
|
-
<td><tt>:title</tt></td>
|
147
|
-
<td>symbol or string</td>
|
148
|
-
</tr>
|
149
|
-
</table>
|
150
|
-
</p>
|
151
|
-
|
152
|
-
If an option should be set globally it's possible to change the default options hash as follows:
|
153
|
-
|
154
|
-
PageTitleHelper.options[:suffix] = :page_title
|
155
|
-
|
156
|
-
Note, currently it only makes sense to set `:default` and/or `:page_title` globally.
|
174
|
+
| Option | Description | Default | Values |
|
175
|
+
|----------|-------------|---------|--------|
|
176
|
+
|`:app` | Specify the applications name, however it's recommended to define it via translation key `:'app.name'`. | Inflected from `Rails.root`| string |
|
177
|
+
|`:default`| String which is displayed when no translation exists and no custom title has been specified. Can also be set to a symbol or array to take advantage of `I18n.translate`'s `:default` option. | `'app.tagline'` | string, symbol or array of those |
|
178
|
+
|`:format` | Defines the output format, accepts a string containing multiple interpolations, or a symbol to a format alias, see _More fun with `:format`_. If set to `false`, just the current title is returned. | `:default`| string, symbol |
|
179
|
+
|
180
|
+
Options can be set globally via `PageTitleHelper.options`. Note, currently it
|
181
|
+
only makes sense to set `:default` globally.
|
182
|
+
|
157
183
|
To add or change formats use:
|
158
184
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
185
|
+
```ruby
|
186
|
+
# change the default format used (if no format is specified):
|
187
|
+
PageTitleHelper.formats[:default] = ":title // :app"
|
188
|
+
|
189
|
+
# add a custom format alias (which can be used with page_title(format: :promo))
|
190
|
+
PageTitleHelper.formats[:promo] = ":app // :title"
|
191
|
+
```
|
192
|
+
|
193
|
+
_Note:_ It's recommended to add this kind of stuff to an initializer, like e.g.
|
194
|
+
`config/initializers/page_title_helper.rb`.
|
166
195
|
|
167
196
|
## A (maybe useful) interpolation
|
168
197
|
|
169
|
-
The internationalized controller name, with fallback to just display the
|
198
|
+
The internationalized controller name, with fallback to just display the
|
199
|
+
humanized name:
|
200
|
+
|
201
|
+
```ruby
|
202
|
+
PageTitleHelper.interpolates :controller do |env|
|
203
|
+
c = env[:view].controller
|
204
|
+
I18n.t(c.controller_path.tr('/', '.') + '.controller', default: c.controller_name.humanize)
|
205
|
+
end
|
206
|
+
```
|
207
|
+
|
208
|
+
_Note:_ Put this kind of stuff into an initializer, like
|
209
|
+
`config/initializers/page_title_helper.rb` or something like that.
|
210
|
+
|
211
|
+
## Contributing
|
212
|
+
|
213
|
+
Pull request are more than welcome. Please adhere to our
|
214
|
+
[code of conduct](CODE_OF_CONDUCT.md) in discussions and contributions.
|
215
|
+
Thanks!
|
216
|
+
|
217
|
+
## Maintainers
|
218
|
+
|
219
|
+
* [@lwe - Lukas Westermann](https://github.com/lwe)
|
220
|
+
* [@oliverklee - Oliver Klee](https://github.com/oliverklee)
|
170
221
|
|
171
|
-
PageTitleHelper.interpolates :controller do |env|
|
172
|
-
I18n.t env.controller.controller_path.tr('/','.') + '.controller', :default => env.controller.controller_name.humanize
|
173
|
-
end
|
174
|
-
|
175
|
-
_Note:_ Put this kind of stuff into an initilizer, like `config/initializers/page_title.rb` or someting like that.
|
176
|
-
|
177
222
|
## Licence and copyright
|
178
|
-
Copyright (c) 2009 Lukas Westermann (Zurich, Switzerland), released under the
|
223
|
+
Copyright (c) 2009 Lukas Westermann (Zurich, Switzerland), released under the
|
224
|
+
MIT license
|