page_title_helper 2.1.0 → 3.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 +73 -0
- data/CODE_OF_CONDUCT.md +77 -0
- data/Gemfile +1 -1
- data/README.md +53 -38
- data/Rakefile +1 -2
- data/lib/page_title_helper/version.rb +2 -2
- data/lib/page_title_helper.rb +11 -13
- data/page_title_helper.gemspec +17 -15
- data/test/multiple_formats_test.rb +30 -30
- data/test/page_title_helper_test.rb +54 -55
- data/test/test_helper.rb +21 -14
- metadata +54 -29
- data/.gitignore +0 -3
- data/.travis.yml +0 -4
- data/Gemfile.lock +0 -98
- data/init.rb +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: eaf4875e42896ac4021c8469718d914bcacfe096
|
4
|
+
data.tar.gz: f1e3fe136f672664c97c08948834a7c8bda199f1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ee336f599ff2d0bf6f2ab1699037ea22ac9ff7da9315f3a219e2a04ec1cf477c1c98589c0a638c66b7bcb8720213970c5024fb583ef683be267bb3e6dd5dfddf
|
7
|
+
data.tar.gz: d246357b274f769704ee093cf91d94297e6499d266dfcb547dada9329c81819b451529c4a9b3b886b03bf86e182f233e525d0765dfc071a7a1a76bbf1ca90a09
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,73 @@
|
|
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](http://semver.org/).
|
5
|
+
|
6
|
+
Read more at [Keep a CHANGELOG](http://keepachangelog.com/en/0.3.0/)
|
7
|
+
about why a change log is important.
|
8
|
+
|
9
|
+
|
10
|
+
## 3.0.0 [unreleased]
|
11
|
+
|
12
|
+
### Added
|
13
|
+
- Add Ruby 2.4.0 to the build matrix
|
14
|
+
([#68](https://github.com/lwe/page_title_helper/pull/68))
|
15
|
+
- Add a CHANGELOG.md
|
16
|
+
([#59](https://github.com/lwe/page_title_helper/pull/59))
|
17
|
+
- Add RuboCop checking to the CI
|
18
|
+
([#52](https://github.com/lwe/page_title_helper/pull/52))
|
19
|
+
- Add a CODE_OF_CONDUCT.md
|
20
|
+
([#51](https://github.com/lwe/page_title_helper/pull/51))
|
21
|
+
- Update Ruby to 2.3.3 and 2.2.6 on Travis
|
22
|
+
([#38](https://github.com/lwe/page_title_helper/pull/38))
|
23
|
+
- Add Ruby 2.3.0 to the build matrix
|
24
|
+
- Re-add Ruby 2.0.0 to the build matrix
|
25
|
+
([#29](https://github.com/lwe/page_title_helper/pull/29))
|
26
|
+
- Test against Ruby 2.2
|
27
|
+
- Use Appraisal for building with different Rails versions
|
28
|
+
([#19](https://github.com/lwe/page_title_helper/pull/19))
|
29
|
+
|
30
|
+
|
31
|
+
### Changed
|
32
|
+
- Replaced Appraisals with specific Gemfiles
|
33
|
+
([#41](https://github.com/lwe/page_title_helper/pull/41))
|
34
|
+
- Delete obsolete init.rb file
|
35
|
+
([#61](https://github.com/lwe/page_title_helper/pull/61))
|
36
|
+
- Add Rails 5.0 to the build matrix
|
37
|
+
([#42](https://github.com/lwe/page_title_helper/pull/42))
|
38
|
+
- Raise RVM and Gem minimum versions
|
39
|
+
([#3](https://github.com/lwe/page_title_helper/pull/3))
|
40
|
+
|
41
|
+
|
42
|
+
### Deprecated
|
43
|
+
|
44
|
+
|
45
|
+
### Removed
|
46
|
+
- Drop support for Rails 3.2 and 4.0
|
47
|
+
([#39](https://github.com/lwe/page_title_helper/pull/39))
|
48
|
+
- Drop support for Ruby 1.9.x
|
49
|
+
([#24](https://github.com/lwe/page_title_helper/pull/24))
|
50
|
+
|
51
|
+
|
52
|
+
### Fixed
|
53
|
+
- Fix @_page_title uninitialized warning
|
54
|
+
([#62](https://github.com/lwe/page_title_helper/pull/62))
|
55
|
+
- Fix the Travis build on Ruby 2.3.3
|
56
|
+
([#63](https://github.com/lwe/page_title_helper/pull/63))
|
57
|
+
- Do do not shell-out to `git` in Gemfile
|
58
|
+
([#49](https://github.com/lwe/page_title_helper/pull/49))
|
59
|
+
- Get the tests to run in Rails 4.2 and 5.0
|
60
|
+
([#40](https://github.com/lwe/page_title_helper/pull/40))
|
61
|
+
- Stop requiring version from the main class
|
62
|
+
([#47](https://github.com/lwe/page_title_helper/pull/47))
|
63
|
+
- Allow the Rails 3.2 build to fail only with Ruby 2.2
|
64
|
+
([#30](https://github.com/lwe/page_title_helper/pull/30))
|
65
|
+
- Allow Rails 3.2 builds to fail
|
66
|
+
([#26](https://github.com/lwe/page_title_helper/pull/26))
|
67
|
+
- Configure Travis for better performance
|
68
|
+
([#10](https://github.com/lwe/page_title_helper/pull/10))
|
69
|
+
- Remove Gemfile.lock
|
70
|
+
([#1](https://github.com/lwe/page_title_helper/pull/1))
|
71
|
+
|
72
|
+
|
73
|
+
### Security
|
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
|
+
[http://contributor-covenant.org/version/1/4/][version].
|
75
|
+
|
76
|
+
[homepage]: http://contributor-covenant.org
|
77
|
+
[version]: http://contributor-covenant.org/version/1/4/
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,26 +1,31 @@
|
|
1
1
|
# Page title helper
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
[![Build Status](https://travis-ci.org/lwe/page_title_helper.svg?branch=master)](https://travis-ci.org/lwe/page_title_helper)
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/page_title_helper.svg)](http://badge.fury.io/rb/page_title_helper)
|
5
|
+
|
6
|
+
This project adheres to [Semantic Versioning](http://semver.org/).
|
7
|
+
|
8
|
+
|
9
|
+
## What does this gem do?
|
6
10
|
|
7
|
-
|
8
|
-
|
11
|
+
Ever wondered if there was an easier and DRY-way to set your page titles (and/or headings),
|
12
|
+
introducing _page title helper_, a small view helper for Rails 4.2 and 5
|
13
|
+
to inflect titles from controllers and actions.
|
9
14
|
|
10
|
-
In your layout add this to your `<head>`-section:
|
15
|
+
In your layout, add this to your `<head>`-section:
|
11
16
|
|
12
17
|
...
|
13
18
|
<title><%= page_title %></title>
|
14
19
|
...
|
15
|
-
|
20
|
+
|
16
21
|
That's it. Now just add translations, in e.g. `config/locales/en.yml`:
|
17
22
|
|
18
23
|
en:
|
19
24
|
contacts:
|
20
25
|
index:
|
21
26
|
title: "Contacts"
|
22
|
-
|
23
|
-
When `/
|
27
|
+
|
28
|
+
When `/contacts/` is requested, the key `:en, :contacts, :index, :title`
|
24
29
|
is looked up and printed, together with the applications basename, like: `Contacts - My cool App`.
|
25
30
|
The format etc. is of course configurable, just head down to the options.
|
26
31
|
|
@@ -30,13 +35,9 @@ As gem (from rubygems.org):
|
|
30
35
|
|
31
36
|
# then add the following line to Gemfile
|
32
37
|
gem 'page_title_helper'
|
33
|
-
|
34
|
-
# living on the bleeding edge?
|
35
|
-
gem 'page_title_helper', :git => 'git://github.com/lwe/page_title_helper.git'
|
36
|
-
|
37
|
-
or as plain old Rails plugin:
|
38
38
|
|
39
|
-
|
39
|
+
# living on the bleeding edge?
|
40
|
+
gem 'page_title_helper', git: 'git://github.com/lwe/page_title_helper.git'
|
40
41
|
|
41
42
|
## Translated titles
|
42
43
|
|
@@ -57,13 +58,13 @@ Need a custom title, or need to fill in some placeholders? Just use the _bang_ m
|
|
57
58
|
`<title>-tag`as well as in the heading?
|
58
59
|
|
59
60
|
<h1><%= page_title!(@contact.name) %></h1>
|
60
|
-
|
61
|
+
|
61
62
|
A call to `page_title` will now return the contacts name, neat :) if for example the
|
62
63
|
`<h1>` does not match the `<title>`, then well, just do something like:
|
63
64
|
|
64
65
|
<% page_title!(@contact.name + " (" + @contact.company.name + ")") %>
|
65
66
|
<h1><%= @contact.name %></h1>
|
66
|
-
|
67
|
+
|
67
68
|
Guess, that's it. Of course it's also possible to use `translate` within `page_title!`, to
|
68
69
|
translate custom titles, like:
|
69
70
|
|
@@ -74,47 +75,47 @@ translate custom titles, like:
|
|
74
75
|
title: "Welcome back, {{name}}"
|
75
76
|
|
76
77
|
# in app/views/dashboard/index.html.erb:
|
77
|
-
<h1><%= page_title!(t('.title', :
|
78
|
+
<h1><%= page_title!(t('.title', name: @user.first_name)) %></h1>
|
78
79
|
|
79
80
|
## More fun with <tt>:format</tt>
|
80
81
|
|
81
82
|
The `:format` option is used to specify how a title is formatted, i.e. if the app name is
|
82
|
-
|
83
|
+
prepended or appended or if it contains the account name etc. It uses a similar approach as
|
83
84
|
paperclip's path interpolations:
|
84
85
|
|
85
|
-
page_title :
|
86
|
-
|
86
|
+
page_title format: ':title / :app' # => "Contacts / My cool app"
|
87
|
+
|
87
88
|
Adding custom interpolations is as easy as defining a block, for example to access the current
|
88
89
|
controller:
|
89
90
|
|
90
91
|
PageTitleHelper.interpolates :controller do |env|
|
91
92
|
env[:view].controller.controller_name.humanize
|
92
93
|
end
|
93
|
-
|
94
|
-
page_title :
|
95
|
-
|
94
|
+
|
95
|
+
page_title format: ':title / :controller / :app' # => "Welcome back / Dashboard / My cool app"
|
96
|
+
|
96
97
|
To access just the title, without any magic app stuff interpolated or appended, use:
|
97
98
|
|
98
99
|
page_title! "untitled"
|
99
|
-
page_title :
|
100
|
-
|
100
|
+
page_title format: false # => "untitled"
|
101
|
+
|
101
102
|
Need a custom format for a single title? Just return an array:
|
102
103
|
|
103
104
|
# in the view:
|
104
105
|
<h1><%= page_title!(@contact.name, ":title from :company - :app") %></h1> # => <h1>Franz Meyer</h1>
|
105
|
-
|
106
|
+
|
106
107
|
# in the <head>
|
107
108
|
<title><%= page_title %></title> # => this time it will use custom title like "Franz Meyer from ABC Corp. - My cool app"
|
108
|
-
|
109
|
+
|
109
110
|
To streamline that feature a bit and simplify reuse of often used formats, it's possible to define format aliases like:
|
110
111
|
|
111
112
|
# in an initializer, e.g. config/initializers/page_title_helper.rb:
|
112
113
|
PageTitleHelper.formats[:with_company] = ":title from :company - :app"
|
113
114
|
PageTitleHelper.formats[:promo] = ":app - :title" # show app first for promo pages :)
|
114
|
-
|
115
|
+
|
115
116
|
# then in the view to display a contact...
|
116
117
|
page_title! @contact.name, :with_company
|
117
|
-
|
118
|
+
|
118
119
|
# ...or for the promo page via config/locales/en.yml (!)
|
119
120
|
en:
|
120
121
|
pages:
|
@@ -123,7 +124,7 @@ To streamline that feature a bit and simplify reuse of often used formats, it's
|
|
123
124
|
- "Features comparison"
|
124
125
|
- !ruby/sym promo
|
125
126
|
|
126
|
-
Pretty, cool,
|
127
|
+
Pretty, cool, ain't it? The special `format: :app` works also via the `formats` hash. Then there is also a
|
127
128
|
`:default` format, which can be used to override the default format.
|
128
129
|
|
129
130
|
## All options - explained
|
@@ -165,10 +166,10 @@ To add or change formats use:
|
|
165
166
|
|
166
167
|
# change the default format used (if no format is specified):
|
167
168
|
PageTitleHelper.formats[:default] = ":title // :app"
|
168
|
-
|
169
|
-
# add a custom format alias (which can be used with page_title(:
|
169
|
+
|
170
|
+
# add a custom format alias (which can be used with page_title(format: :promo))
|
170
171
|
PageTitleHelper.formats[:promo] = ":app // :title"
|
171
|
-
|
172
|
+
|
172
173
|
_Note:_ it's recommended to add this kind of stuff to an initializer, like e.g.
|
173
174
|
`config/initializers/page_title_helper.rb`.
|
174
175
|
|
@@ -178,10 +179,24 @@ The internationalized controller name, with fallback to just display the humaniz
|
|
178
179
|
|
179
180
|
PageTitleHelper.interpolates :controller do |env|
|
180
181
|
c = env[:view].controller
|
181
|
-
I18n.t(c.controller_path.tr('/', '.') + '.controller', :
|
182
|
+
I18n.t(c.controller_path.tr('/', '.') + '.controller', default: c.controller_name.humanize)
|
182
183
|
end
|
183
|
-
|
184
|
-
_Note:_ Put this kind of stuff into an initializer, like `config/initializers/page_title_helper.rb` or
|
185
|
-
|
184
|
+
|
185
|
+
_Note:_ Put this kind of stuff into an initializer, like `config/initializers/page_title_helper.rb` or something like that.
|
186
|
+
|
187
|
+
|
188
|
+
## Contributing
|
189
|
+
|
190
|
+
Pull request are more than welcome. Please adhere to our
|
191
|
+
[CODE_OF_CONDUCT.md](code of conduct) in discussions and contributions.
|
192
|
+
Thanks!
|
193
|
+
|
194
|
+
|
195
|
+
## Maintainers
|
196
|
+
|
197
|
+
* [@lwe - Lukas Westermann](https://github.com/lwe)
|
198
|
+
* [@oliverklee - Oliver Klee](https://github.com/oliverklee)
|
199
|
+
|
200
|
+
|
186
201
|
## Licence and copyright
|
187
202
|
Copyright (c) 2009 Lukas Westermann (Zurich, Switzerland), released under the MIT license
|
data/Rakefile
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'bundler/setup'
|
3
2
|
require 'rake/testtask'
|
4
3
|
|
@@ -7,7 +6,7 @@ include Rake::DSL
|
|
7
6
|
Bundler::GemHelper.install_tasks
|
8
7
|
|
9
8
|
desc 'Default: run unit tests.'
|
10
|
-
task :
|
9
|
+
task default: :test
|
11
10
|
|
12
11
|
desc 'Test the page_title_helper plugin.'
|
13
12
|
Rake::TestTask.new(:test) do |t|
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module PageTitleHelper
|
2
|
-
VERSION =
|
3
|
-
end
|
2
|
+
VERSION = '3.0.0'.freeze
|
3
|
+
end
|
data/lib/page_title_helper.rb
CHANGED
@@ -7,25 +7,23 @@
|
|
7
7
|
#
|
8
8
|
# See documentation for +page_title+ for usage examples and more informations.
|
9
9
|
require 'active_support'
|
10
|
-
require 'page_title_helper/version'
|
11
10
|
|
12
11
|
# PageTitleHelper
|
13
12
|
module PageTitleHelper
|
14
|
-
|
15
13
|
# http://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/interpolations.rb
|
16
14
|
module Interpolations
|
17
15
|
extend self
|
18
16
|
|
19
17
|
def self.interpolate(pattern, *args)
|
20
18
|
instance_methods(false).sort.reverse.inject(pattern.to_s.dup) do |result, tag|
|
21
|
-
result.gsub(/:#{tag}/) do |
|
19
|
+
result.gsub(/:#{tag}/) do |_match|
|
22
20
|
send(tag, *args)
|
23
21
|
end
|
24
22
|
end
|
25
23
|
end
|
26
24
|
|
27
25
|
def app(env)
|
28
|
-
env[:app] || I18n.translate(
|
26
|
+
env[:app] || I18n.translate('app.name', default: File.basename(Rails.root).humanize)
|
29
27
|
end
|
30
28
|
|
31
29
|
def title(env)
|
@@ -42,17 +40,17 @@ module PageTitleHelper
|
|
42
40
|
# be changed globally, which might be useful in some cases.
|
43
41
|
def self.options
|
44
42
|
@options ||= {
|
45
|
-
:
|
46
|
-
:
|
43
|
+
format: :default,
|
44
|
+
default: :'app.tagline'
|
47
45
|
}
|
48
46
|
end
|
49
47
|
|
50
48
|
# Defined alias formats, pretty useful.
|
51
49
|
def self.formats
|
52
50
|
@formats ||= {
|
53
|
-
:
|
54
|
-
:
|
55
|
-
:
|
51
|
+
app: ':app',
|
52
|
+
default: ':title - :app',
|
53
|
+
title: ':title'
|
56
54
|
}
|
57
55
|
end
|
58
56
|
|
@@ -62,7 +60,7 @@ module PageTitleHelper
|
|
62
60
|
@_page_title.is_a?(Array) ? @_page_title.first : @_page_title
|
63
61
|
end
|
64
62
|
|
65
|
-
def page_title(options = nil
|
63
|
+
def page_title(options = nil)
|
66
64
|
return page_title!(yield) if block_given? # define title
|
67
65
|
|
68
66
|
options = PageTitleHelper.options.merge(options || {}).symbolize_keys!
|
@@ -70,7 +68,7 @@ module PageTitleHelper
|
|
70
68
|
options.assert_valid_keys(:app, :default, :format)
|
71
69
|
|
72
70
|
# read page title and split into 'real' title and customized format
|
73
|
-
title = @_page_title
|
71
|
+
title = @_page_title ||= page_title_from_translation(options[:default])
|
74
72
|
title, options[:format] = *(title << options[:format]) if title.is_a?(Array)
|
75
73
|
|
76
74
|
# handle format aliases
|
@@ -78,7 +76,7 @@ module PageTitleHelper
|
|
78
76
|
format = PageTitleHelper.formats[format] if PageTitleHelper.formats.include?(format)
|
79
77
|
|
80
78
|
# construct basic env to pass around
|
81
|
-
env = { :
|
79
|
+
env = { title: title, app: options.delete(:app), options: options, view: self }
|
82
80
|
|
83
81
|
# interpolate format
|
84
82
|
Interpolations.interpolate(format, env)
|
@@ -98,7 +96,7 @@ module PageTitleHelper
|
|
98
96
|
keys << :"#{base}.title"
|
99
97
|
keys << default
|
100
98
|
|
101
|
-
I18n.translate(keys.shift, :
|
99
|
+
I18n.translate(keys.shift, default: keys)
|
102
100
|
end
|
103
101
|
end
|
104
102
|
|
data/page_title_helper.gemspec
CHANGED
@@ -1,28 +1,30 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path(
|
3
|
-
require
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'page_title_helper/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name =
|
6
|
+
s.name = 'page_title_helper'
|
7
7
|
s.version = PageTitleHelper::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.summary =
|
10
|
-
s.description =
|
9
|
+
s.summary = 'Simple, internationalized and DRY page titles and headings for Rails.'
|
10
|
+
s.description = 'Simple, internationalized and DRY page titles and headings for Rails.'
|
11
11
|
|
12
|
-
s.required_ruby_version =
|
13
|
-
s.required_rubygems_version =
|
12
|
+
s.required_ruby_version = '>= 2.0.0'
|
13
|
+
s.required_rubygems_version = '>= 1.3.6'
|
14
14
|
|
15
|
-
s.authors = [
|
16
|
-
s.email = [
|
17
|
-
s.homepage =
|
15
|
+
s.authors = ['Lukas Westermann']
|
16
|
+
s.email = ['lukas.westermann@gmail.com']
|
17
|
+
s.homepage = 'http://github.com/lwe/page_title_helper'
|
18
18
|
|
19
|
-
s.files =
|
20
|
-
s.test_files =
|
19
|
+
s.files = %w{Gemfile LICENSE README.md CODE_OF_CONDUCT.md CHANGELOG.md Rakefile page_title_helper.gemspec} + Dir['**/*.{rb,yml}']
|
20
|
+
s.test_files = s.files.grep(%r{^(test|spec)/})
|
21
21
|
s.require_path = 'lib'
|
22
22
|
|
23
23
|
s.license = 'MIT'
|
24
24
|
|
25
|
-
s.add_dependency 'rails', '>=
|
26
|
-
|
27
|
-
s.add_development_dependency '
|
25
|
+
s.add_dependency 'rails', '>= 4.2.0', '< 6.0'
|
26
|
+
|
27
|
+
s.add_development_dependency 'rake', '>= 10.3.2'
|
28
|
+
s.add_development_dependency 'shoulda'
|
29
|
+
s.add_development_dependency 'rubocop', '~> 0.49.0'
|
28
30
|
end
|
@@ -1,71 +1,71 @@
|
|
1
|
+
require 'minitest/autorun'
|
1
2
|
require 'test_helper'
|
2
|
-
require 'page_title_helper'
|
3
3
|
|
4
4
|
class MultipleFormatsTest < ActiveSupport::TestCase
|
5
|
-
context
|
5
|
+
context '#page_title supporting multiple formats through arrays' do
|
6
6
|
setup do
|
7
7
|
@view = TestView.new('contacts', 'list')
|
8
8
|
end
|
9
9
|
|
10
|
-
should
|
11
|
-
@view.page_title { [
|
12
|
-
assert_equal
|
10
|
+
should 'accept an array passed in the page_title block and use the second argument as format' do
|
11
|
+
@view.page_title { ['Oh my...!', ':title // :app'] }
|
12
|
+
assert_equal 'Oh my...! // Page title helper', @view.page_title
|
13
13
|
end
|
14
14
|
|
15
|
-
should
|
16
|
-
assert_equal
|
15
|
+
should 'still return title as string and not the array' do
|
16
|
+
assert_equal('Oh my...!', @view.page_title { ['Oh my...!', ':title // :app'] })
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
context
|
20
|
+
context '#page_title with format aliases' do
|
21
21
|
setup do
|
22
|
-
PageTitleHelper.formats[:myformat] =
|
22
|
+
PageTitleHelper.formats[:myformat] = ':title <-> :app'
|
23
23
|
@view = TestView.new('contacts', 'list')
|
24
24
|
end
|
25
25
|
|
26
|
-
should
|
27
|
-
assert_equal
|
26
|
+
should 'have a default alias named :app' do
|
27
|
+
assert_equal 'Page title helper', @view.page_title(format: :app)
|
28
28
|
end
|
29
29
|
|
30
|
-
should
|
31
|
-
@view.page_title {
|
32
|
-
assert_equal
|
30
|
+
should 'allow custom aliases to be defined and used' do
|
31
|
+
@view.page_title { 'Test' }
|
32
|
+
assert_equal 'Test <-> Page title helper', @view.page_title(format: :myformat)
|
33
33
|
end
|
34
34
|
|
35
|
-
should
|
36
|
-
assert_equal
|
37
|
-
assert_equal
|
35
|
+
should 'fallback to default format, if array is not big enough (i.e. only contains single element...)' do
|
36
|
+
assert_equal('Test', @view.page_title { ['Test'] })
|
37
|
+
assert_equal 'Test - Page title helper', @view.page_title
|
38
38
|
end
|
39
39
|
|
40
|
-
context
|
41
|
-
should
|
42
|
-
assert_equal
|
43
|
-
assert_equal
|
40
|
+
context 'used with the array block' do
|
41
|
+
should 'also allow aliases returned in that array thingy' do
|
42
|
+
assert_equal('Test', @view.page_title { ['Test', :myformat] })
|
43
|
+
assert_equal 'Test <-> Page title helper', @view.page_title
|
44
44
|
end
|
45
45
|
|
46
|
-
should
|
47
|
-
assert_equal
|
48
|
-
assert_equal
|
46
|
+
should 'override locally supplied :format arguments' do
|
47
|
+
assert_equal('Something', @view.page_title { ['Something', '* * * :title * * *'] })
|
48
|
+
assert_equal '* * * Something * * *', @view.page_title(format: '-= :title =-') # yeah, using x-tra ugly titles :)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
context
|
53
|
+
context '#page_title, aliases and YAML' do
|
54
54
|
setup do
|
55
|
-
I18n.load_path = [File.join(File.dirname(__FILE__),
|
55
|
+
I18n.load_path = [File.join(File.dirname(__FILE__), 'en_wohaapp.yml')]
|
56
56
|
I18n.reload!
|
57
|
-
PageTitleHelper.formats[:promo] =
|
57
|
+
PageTitleHelper.formats[:promo] = ':app > :title'
|
58
58
|
@view = TestView.new
|
59
59
|
end
|
60
60
|
|
61
|
-
should
|
61
|
+
should 'allow to overide format through YAML' do
|
62
62
|
@view.controller! 'pages', 'features'
|
63
63
|
assert_equal 'Wohaapp > Feature comparison', @view.page_title
|
64
64
|
end
|
65
65
|
|
66
|
-
should
|
66
|
+
should 'handle raw string formats from YAML as well' do
|
67
67
|
@view.controller! 'pages', 'signup'
|
68
68
|
assert_equal 'Sign up for Wohaapp now!', @view.page_title
|
69
69
|
end
|
70
70
|
end
|
71
|
-
end
|
71
|
+
end
|
@@ -1,9 +1,8 @@
|
|
1
|
+
require 'minitest/autorun'
|
1
2
|
require 'test_helper'
|
2
|
-
require 'page_title_helper'
|
3
|
-
require 'ostruct'
|
4
3
|
|
5
4
|
class PageTitleHelperTest < ActiveSupport::TestCase
|
6
|
-
context
|
5
|
+
context 'PageTitleHelper' do
|
7
6
|
setup do
|
8
7
|
I18n.load_path = [File.join(File.dirname(__FILE__), 'en.yml')]
|
9
8
|
I18n.reload!
|
@@ -11,123 +10,123 @@ class PageTitleHelperTest < ActiveSupport::TestCase
|
|
11
10
|
@view = TestView.new('contacts', 'list')
|
12
11
|
end
|
13
12
|
|
14
|
-
context
|
15
|
-
should
|
13
|
+
context '::Interpolations' do
|
14
|
+
should 'interpolate :app and :title' do
|
16
15
|
assert_equal 'Page title helper', PageTitleHelper::Interpolations.app({})
|
17
|
-
assert_equal 'Appname', PageTitleHelper::Interpolations.app(
|
18
|
-
assert_equal 'untitled', PageTitleHelper::Interpolations.title(
|
16
|
+
assert_equal 'Appname', PageTitleHelper::Interpolations.app(app: 'Appname')
|
17
|
+
assert_equal 'untitled', PageTitleHelper::Interpolations.title(title: 'untitled')
|
19
18
|
end
|
20
19
|
|
21
|
-
should
|
20
|
+
should 'allow adding custom interpolations' do
|
22
21
|
# extend Interpolations
|
23
22
|
PageTitleHelper.interpolates(:app_reverse) { |env| app(env).reverse.downcase }
|
24
23
|
|
25
|
-
assert_equal
|
26
|
-
assert_equal
|
24
|
+
assert_equal 'anna', PageTitleHelper::Interpolations.app_reverse(app: 'Anna')
|
25
|
+
assert_equal 'ppa', PageTitleHelper::Interpolations.interpolate(':app_reverse', app: 'app')
|
27
26
|
end
|
28
27
|
|
29
|
-
should
|
30
|
-
PageTitleHelper.interpolates(:foobar) { |
|
31
|
-
PageTitleHelper.interpolates(:foobar_test) { |
|
32
|
-
PageTitleHelper.interpolates(:title_foobar) { |
|
28
|
+
should 'interpolate in correct order, i.e. longest first' do
|
29
|
+
PageTitleHelper.interpolates(:foobar) { |_env| 'foobar' }
|
30
|
+
PageTitleHelper.interpolates(:foobar_test) { |_env| 'foobar_test' }
|
31
|
+
PageTitleHelper.interpolates(:title_foobar) { |_env| 'title_foobar' }
|
33
32
|
|
34
|
-
assert_equal
|
33
|
+
assert_equal 'title_foobar / foobar_test / foobar / foobar_x', PageTitleHelper::Interpolations.interpolate(':title_foobar / :foobar_test / :foobar / :foobar_x', {})
|
35
34
|
end
|
36
35
|
end
|
37
36
|
|
38
|
-
context
|
39
|
-
should
|
40
|
-
assert_equal
|
37
|
+
context '#page_title (define w/ block)' do
|
38
|
+
should 'return title from block and render with app name' do
|
39
|
+
assert_equal('foo', @view.page_title { 'foo' })
|
41
40
|
assert_equal 'foo - Page title helper', @view.page_title
|
42
41
|
end
|
43
42
|
|
44
|
-
should
|
45
|
-
assert_equal
|
46
|
-
assert_equal
|
43
|
+
should 'set custom title using a translation with a placeholder' do
|
44
|
+
assert_equal('Displaying Bella', @view.page_title { I18n.t(:placeholder, name: 'Bella') })
|
45
|
+
assert_equal 'Displaying Bella - Page title helper', @view.page_title
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
50
|
-
context
|
51
|
-
should
|
49
|
+
context '#page_title! (define)' do
|
50
|
+
should 'set page title' do
|
52
51
|
assert_equal 'test', @view.page_title!('test')
|
53
52
|
assert_equal 'test - Page title helper', @view.page_title
|
54
53
|
end
|
55
54
|
|
56
|
-
should
|
57
|
-
PageTitleHelper.formats[:bang] =
|
55
|
+
should 'set page title and interpret second argument as custom format' do
|
56
|
+
PageTitleHelper.formats[:bang] = ':title !! :app'
|
58
57
|
assert_equal 'test', @view.page_title!('test', :bang)
|
59
58
|
assert_equal 'test !! Page title helper', @view.page_title
|
60
59
|
end
|
61
60
|
end
|
62
61
|
|
63
|
-
context
|
64
|
-
should
|
62
|
+
context '#page_title (rendering)' do
|
63
|
+
should 'read default title from I18n, based on controller/action' do
|
65
64
|
assert_equal 'contacts.list.title - Page title helper', @view.page_title
|
66
65
|
end
|
67
66
|
|
68
|
-
should
|
69
|
-
assert_equal 'Page title helper', @view.page_title(:
|
67
|
+
should 'only print app name if format: :app' do
|
68
|
+
assert_equal 'Page title helper', @view.page_title(format: :app)
|
70
69
|
end
|
71
70
|
|
72
|
-
should
|
73
|
-
assert_equal
|
71
|
+
should 'print custom app name if :app defined and format: :app' do
|
72
|
+
assert_equal 'Some app', @view.page_title(app: 'Some app', format: :app)
|
74
73
|
end
|
75
74
|
|
76
|
-
should
|
77
|
-
assert_equal
|
78
|
-
assert_equal
|
79
|
-
assert_equal
|
75
|
+
should 'use custom format, if :format option is defined' do
|
76
|
+
assert_equal('test', @view.page_title { 'test' })
|
77
|
+
assert_equal 'Some app :: test', @view.page_title(app: 'Some app', format: ':app :: :title')
|
78
|
+
assert_equal 'Some app / test', @view.page_title(format: 'Some app / :title')
|
80
79
|
end
|
81
80
|
|
82
|
-
should
|
83
|
-
assert_equal
|
84
|
-
assert_equal
|
81
|
+
should 'return just title if format: false is passed' do
|
82
|
+
assert_equal('untitled', @view.page_title { 'untitled' })
|
83
|
+
assert_equal 'untitled', @view.page_title(format: false)
|
85
84
|
end
|
86
85
|
|
87
|
-
should
|
88
|
-
assert_equal
|
86
|
+
should 'return title if format: false and when using the DRY-I18n titles' do
|
87
|
+
assert_equal 'contacts.list.title', @view.page_title(format: false)
|
89
88
|
end
|
90
89
|
|
91
|
-
should
|
90
|
+
should 'render translated :"app.tagline" if no title is available' do
|
92
91
|
@view.controller! 'view/does', 'not_exist'
|
93
|
-
assert_equal
|
92
|
+
assert_equal 'Default - Page title helper', @view.page_title
|
94
93
|
end
|
95
94
|
|
96
|
-
should
|
95
|
+
should 'render use controller.title as first fallback, if no title exists' do
|
97
96
|
@view.controller! 'admin/account', 'index'
|
98
|
-
assert_equal 'Account administration - Page title helper', @view.page_title(:
|
97
|
+
assert_equal 'Account administration - Page title helper', @view.page_title(default: 'Other default')
|
99
98
|
end
|
100
99
|
|
101
|
-
should
|
100
|
+
should 'not fallback to controller.title if controller.action.title exists' do
|
102
101
|
@view.controller! 'admin/account', 'show'
|
103
|
-
assert_equal 'Account - Page title helper', @view.page_title(:
|
102
|
+
assert_equal 'Account - Page title helper', @view.page_title(default: 'Other default')
|
104
103
|
end
|
105
104
|
|
106
105
|
should 'fallback to controller.new.title if create has no title' do
|
107
106
|
@view.controller! 'admin/account', 'create'
|
108
|
-
assert_equal 'New account - Page title helper', @view.page_title(:
|
107
|
+
assert_equal 'New account - Page title helper', @view.page_title(default: 'Other default')
|
109
108
|
end
|
110
109
|
|
111
110
|
should 'fallback to controller.edit.title if update has no title' do
|
112
111
|
@view.controller! 'admin/account', 'update'
|
113
|
-
assert_equal 'Edit account - Page title helper', @view.page_title(:
|
112
|
+
assert_equal 'Edit account - Page title helper', @view.page_title(default: 'Other default')
|
114
113
|
end
|
115
114
|
|
116
|
-
should
|
115
|
+
should 'render custom "default" string, if title is not available nor controller.title' do
|
117
116
|
@view.controller! 'view/does', 'not_exist'
|
118
|
-
assert_equal 'Some default - Page title helper', @view.page_title(:
|
117
|
+
assert_equal 'Some default - Page title helper', @view.page_title(default: 'Some default')
|
119
118
|
end
|
120
119
|
|
121
|
-
should
|
120
|
+
should 'render custom default translation, if title is not available nor controller.title' do
|
122
121
|
@view.controller! 'view/does', 'not_exist'
|
123
|
-
assert_equal 'Other default - Page title helper', @view.page_title(:
|
122
|
+
assert_equal 'Other default - Page title helper', @view.page_title(default: :'app.other_tagline')
|
124
123
|
end
|
125
124
|
end
|
126
125
|
|
127
|
-
context
|
128
|
-
should
|
126
|
+
context 'README.md' do
|
127
|
+
should 'interpolate :controller' do
|
129
128
|
PageTitleHelper.interpolates(:controller) { |env| env[:view].controller.controller_name.humanize }
|
130
|
-
assert_equal
|
129
|
+
assert_equal 'contacts.list.title - Test', @view.page_title(format: ':title - :controller')
|
131
130
|
end
|
132
131
|
end
|
133
132
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,34 +1,41 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'active_support'
|
3
2
|
require 'action_view'
|
4
|
-
require
|
3
|
+
require 'page_title_helper'
|
5
4
|
|
6
5
|
unless defined?(IRB)
|
7
6
|
require 'active_support/test_case'
|
8
7
|
require 'shoulda'
|
9
8
|
end
|
10
9
|
|
11
|
-
#
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
# Use sorted tests. We need to change that after the tests have been converted
|
11
|
+
# to RSpec.
|
12
|
+
ActiveSupport.test_order = :sorted
|
13
|
+
|
14
|
+
# fake global Rails module
|
15
|
+
module Rails
|
16
|
+
class << self
|
17
|
+
def root
|
18
|
+
@pathname ||= Pathname.new('/this/is/just/for/testing/page_title_helper')
|
19
|
+
end
|
20
|
+
|
21
|
+
def env
|
22
|
+
'test'
|
23
|
+
end
|
24
|
+
end
|
16
25
|
end
|
17
26
|
|
18
27
|
# Mock ActionView a bit to allow easy (fake) template assignment
|
19
28
|
class TestView < ActionView::Base
|
29
|
+
attr_reader :controller
|
30
|
+
|
20
31
|
def initialize(controller_path = nil, action = nil)
|
21
32
|
@controller = ActionView::TestCase::TestController.new
|
22
33
|
@controller.controller_path = controller_path
|
23
|
-
|
34
|
+
params[:action] = action if action
|
24
35
|
end
|
25
36
|
|
26
37
|
def controller!(controller_path, action)
|
27
38
|
@controller.controller_path = controller_path
|
28
|
-
|
39
|
+
params[:action] = action
|
29
40
|
end
|
30
|
-
|
31
|
-
def controller
|
32
|
-
@controller
|
33
|
-
end
|
34
|
-
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,64 +1,90 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page_title_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 3.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Lukas Westermann
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-03-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 4.2.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '6.0'
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 4.2.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '6.0'
|
25
33
|
- !ruby/object:Gem::Dependency
|
26
34
|
name: rake
|
27
|
-
requirement:
|
28
|
-
none: false
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
29
36
|
requirements:
|
30
|
-
- -
|
37
|
+
- - ">="
|
31
38
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
39
|
+
version: 10.3.2
|
33
40
|
type: :development
|
34
41
|
prerelease: false
|
35
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 10.3.2
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: shoulda
|
38
|
-
requirement:
|
39
|
-
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
57
|
requirements:
|
41
|
-
- -
|
58
|
+
- - ">="
|
42
59
|
- !ruby/object:Gem::Version
|
43
60
|
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rubocop
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.49.0
|
44
68
|
type: :development
|
45
69
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.49.0
|
75
|
+
description: Simple, internationalized and DRY page titles and headings for Rails.
|
48
76
|
email:
|
49
77
|
- lukas.westermann@gmail.com
|
50
78
|
executables: []
|
51
79
|
extensions: []
|
52
80
|
extra_rdoc_files: []
|
53
81
|
files:
|
54
|
-
- .
|
55
|
-
- .
|
82
|
+
- CHANGELOG.md
|
83
|
+
- CODE_OF_CONDUCT.md
|
56
84
|
- Gemfile
|
57
|
-
- Gemfile.lock
|
58
85
|
- LICENSE
|
59
86
|
- README.md
|
60
87
|
- Rakefile
|
61
|
-
- init.rb
|
62
88
|
- lib/page_title_helper.rb
|
63
89
|
- lib/page_title_helper/version.rb
|
64
90
|
- page_title_helper.gemspec
|
@@ -70,27 +96,26 @@ files:
|
|
70
96
|
homepage: http://github.com/lwe/page_title_helper
|
71
97
|
licenses:
|
72
98
|
- MIT
|
99
|
+
metadata: {}
|
73
100
|
post_install_message:
|
74
101
|
rdoc_options: []
|
75
102
|
require_paths:
|
76
103
|
- lib
|
77
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
105
|
requirements:
|
80
|
-
- -
|
106
|
+
- - ">="
|
81
107
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
108
|
+
version: 2.0.0
|
83
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
110
|
requirements:
|
86
|
-
- -
|
111
|
+
- - ">="
|
87
112
|
- !ruby/object:Gem::Version
|
88
113
|
version: 1.3.6
|
89
114
|
requirements: []
|
90
115
|
rubyforge_project:
|
91
|
-
rubygems_version:
|
116
|
+
rubygems_version: 2.6.13
|
92
117
|
signing_key:
|
93
|
-
specification_version:
|
118
|
+
specification_version: 4
|
94
119
|
summary: Simple, internationalized and DRY page titles and headings for Rails.
|
95
120
|
test_files:
|
96
121
|
- test/en.yml
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile.lock
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
page_title_helper (2.1.0)
|
5
|
-
rails (>= 3.0.0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
actionmailer (3.2.3)
|
11
|
-
actionpack (= 3.2.3)
|
12
|
-
mail (~> 2.4.4)
|
13
|
-
actionpack (3.2.3)
|
14
|
-
activemodel (= 3.2.3)
|
15
|
-
activesupport (= 3.2.3)
|
16
|
-
builder (~> 3.0.0)
|
17
|
-
erubis (~> 2.7.0)
|
18
|
-
journey (~> 1.0.1)
|
19
|
-
rack (~> 1.4.0)
|
20
|
-
rack-cache (~> 1.2)
|
21
|
-
rack-test (~> 0.6.1)
|
22
|
-
sprockets (~> 2.1.2)
|
23
|
-
activemodel (3.2.3)
|
24
|
-
activesupport (= 3.2.3)
|
25
|
-
builder (~> 3.0.0)
|
26
|
-
activerecord (3.2.3)
|
27
|
-
activemodel (= 3.2.3)
|
28
|
-
activesupport (= 3.2.3)
|
29
|
-
arel (~> 3.0.2)
|
30
|
-
tzinfo (~> 0.3.29)
|
31
|
-
activeresource (3.2.3)
|
32
|
-
activemodel (= 3.2.3)
|
33
|
-
activesupport (= 3.2.3)
|
34
|
-
activesupport (3.2.3)
|
35
|
-
i18n (~> 0.6)
|
36
|
-
multi_json (~> 1.0)
|
37
|
-
arel (3.0.2)
|
38
|
-
builder (3.0.0)
|
39
|
-
erubis (2.7.0)
|
40
|
-
hike (1.2.1)
|
41
|
-
i18n (0.6.0)
|
42
|
-
journey (1.0.3)
|
43
|
-
json (1.6.6)
|
44
|
-
mail (2.4.4)
|
45
|
-
i18n (>= 0.4.0)
|
46
|
-
mime-types (~> 1.16)
|
47
|
-
treetop (~> 1.4.8)
|
48
|
-
mime-types (1.18)
|
49
|
-
multi_json (1.2.0)
|
50
|
-
polyglot (0.3.3)
|
51
|
-
rack (1.4.1)
|
52
|
-
rack-cache (1.2)
|
53
|
-
rack (>= 0.4)
|
54
|
-
rack-ssl (1.3.2)
|
55
|
-
rack
|
56
|
-
rack-test (0.6.1)
|
57
|
-
rack (>= 1.0)
|
58
|
-
rails (3.2.3)
|
59
|
-
actionmailer (= 3.2.3)
|
60
|
-
actionpack (= 3.2.3)
|
61
|
-
activerecord (= 3.2.3)
|
62
|
-
activeresource (= 3.2.3)
|
63
|
-
activesupport (= 3.2.3)
|
64
|
-
bundler (~> 1.0)
|
65
|
-
railties (= 3.2.3)
|
66
|
-
railties (3.2.3)
|
67
|
-
actionpack (= 3.2.3)
|
68
|
-
activesupport (= 3.2.3)
|
69
|
-
rack-ssl (~> 1.3.2)
|
70
|
-
rake (>= 0.8.7)
|
71
|
-
rdoc (~> 3.4)
|
72
|
-
thor (~> 0.14.6)
|
73
|
-
rake (0.9.2.2)
|
74
|
-
rdoc (3.12)
|
75
|
-
json (~> 1.4)
|
76
|
-
shoulda (3.0.1)
|
77
|
-
shoulda-context (~> 1.0.0)
|
78
|
-
shoulda-matchers (~> 1.0.0)
|
79
|
-
shoulda-context (1.0.0)
|
80
|
-
shoulda-matchers (1.0.0)
|
81
|
-
sprockets (2.1.2)
|
82
|
-
hike (~> 1.2)
|
83
|
-
rack (~> 1.0)
|
84
|
-
tilt (~> 1.1, != 1.3.0)
|
85
|
-
thor (0.14.6)
|
86
|
-
tilt (1.3.3)
|
87
|
-
treetop (1.4.10)
|
88
|
-
polyglot
|
89
|
-
polyglot (>= 0.3.1)
|
90
|
-
tzinfo (0.3.33)
|
91
|
-
|
92
|
-
PLATFORMS
|
93
|
-
ruby
|
94
|
-
|
95
|
-
DEPENDENCIES
|
96
|
-
page_title_helper!
|
97
|
-
rake (>= 0.9.2)
|
98
|
-
shoulda
|
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'page_title_helper'
|