titler 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec5bde8aacb1e9937df0ba2fcd4d019c3ed41aac
4
- data.tar.gz: 46707d2984b2abf23db5de83afdff6c159b33e89
3
+ metadata.gz: 243be14d9f33906b9429d81e2dc09bcaf1787f69
4
+ data.tar.gz: 7663cf50018d91b19a79d289098db27585a3b1d0
5
5
  SHA512:
6
- metadata.gz: 2da0b72621220286557b51ccf3b1336a03ac8ba5acb458a7cfde788fd8aa602b8326e1a75281899ee4499e94b50f4bbdbb5dcd5bf5a70571134ac596f1b8ed3f
7
- data.tar.gz: 1a4cd1f97192812aa171a8b0d9fd5146f40507a5f74dbfde90274734dd73f707979a91874dc71970b4abb97b04059ae753ab74c0ffc8ba97e75b062a074599f6
6
+ metadata.gz: 70c9195c1e3b2f5c5711c736d35062d23efb890202b7ce2324be402c47158ab36ed9fae7f3b8901a56002605505656f256374864d5823686e0917285e1f7323f
7
+ data.tar.gz: 284f2771bbe1c0e4cf61198ae4b85011ec52b0ef203fe21cca4dd906033816fd60e7cb88874103b648355a2d624621db54c753555bb143c16c127b94953a0f5a
data/.coveralls.yml ADDED
@@ -0,0 +1,2 @@
1
+ service_name: travis-ci
2
+ repo_token: 9ZUQxniOGXZKxzquMyicEpxXCpnPenGNb
data/README.md CHANGED
@@ -3,17 +3,17 @@
3
3
  [![Build Status](https://travis-ci.org/roberttravispierce/titler.svg?branch=master)](https://travis-ci.org/roberttravispierce/titler)
4
4
  [![Code Climate](https://codeclimate.com/github/roberttravispierce/titler/badges/gpa.svg)](https://codeclimate.com/github/roberttravispierce/titler)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/roberttravispierce/titler/badge.svg?branch=master)](https://coveralls.io/github/roberttravispierce/titler?branch=master)
6
+ [![Gem Version](https://badge.fury.io/rb/titler.svg)](https://badge.fury.io/rb/titler)
6
7
 
7
- ![Titler is not quite ready for use yet; in case you stumbled across this somehow. Coming soon! —RTP](http://messages.hellobits.com/warning.svg?message=Titler%20is%20not%20quite%20ready%20for%20use%20yet%3B%20in%20case%20you%20stumbled%20across%20this%20somehow.%20Coming%20Soon!%20%E2%80%94RTP)
8
+ 1. [What is it?](#overview)
9
+ 2. [How do I get up and running?](#starting)
10
+ 3. [How do I use it?](#details)
11
+ 4. [How do I customize it?](#customize)
12
+ 4. [So why the fuss about titles anyway?](#why)
13
+ 5. [Who built this?](#attribution)
14
+ 6. [How can I help improve it?](#contributing)
8
15
 
9
- 1. [What is it?](#what-is-it?)
10
- 2. [How do I get up and running?](#how-do-i-get-up-and-running?)
11
- 3. [How do I use it?](#how-do-i-use-it?)
12
- 4. [So why the fuss about titles anyway?](#so-why-the-fuss-about-titles-anyway?)
13
- 5. [Who built this?](#who-built-this?)
14
- 6. [How can I help improve it?](#how-can-i-help-improve-it?)
15
-
16
- ## What is it?
16
+ ## <a name="overview"></a>What is it?
17
17
 
18
18
  Titler is a ruby gem that automaticaly gives you useful and consistent page titles for your Rails application.
19
19
 
@@ -21,7 +21,7 @@ Titler is a ruby gem that automaticaly gives you useful and consistent page titl
21
21
 
22
22
  There are lots of options and configurations available, all with sensible fallbacks and defaults, including reading from your i18n files. See the [How do I use it?](#how-do-i-use-it?) section for more information.
23
23
 
24
- ## How do I get up and running?
24
+ ## <a name="starting"></a>How do I get up and running?
25
25
 
26
26
  1. Install the titler gem to your Gemfile and install it:
27
27
  ```ruby
@@ -31,35 +31,14 @@ gem 'titler'
31
31
  $ bundle install
32
32
  ```
33
33
 
34
- 2. {Not Yet Implemented} Run the generator. This will create an initializer with config values and an i18n file:
35
- ```console
36
- $ rails generate titler:install
37
- ```
38
-
39
- 3. Add the page_title and set_page_title helper methods to your application helper:
40
-
41
- *app/helpers/application_helper.rb*
42
- ```ruby
43
- module ApplicationHelper
44
-
45
- def page_title(page_title)
46
- content_for(:page_title) {page_title}
47
- end
48
-
49
- def set_page_title
50
- Titler::Title.new(controller: self, i18n: I18n, title_as_set: content_for(:page_title) || @page_title).title
51
- end
52
- ...
53
- ```
54
-
55
- 4. Change your application layout title tag to:
34
+ 2. Change the title tag in your application layout(s) to:
56
35
 
57
36
  *app/views/layouts/application.html.erb*
58
37
  ```html
59
- <title><%= set_page_title %></title>
38
+ <title><%= titler %></title>
60
39
  ```
61
40
 
62
- 5. Set specific page titles as desired in your controllers or views:
41
+ 3. Set specific page titles as desired in your controllers or views:
63
42
  ```ruby
64
43
  # Example of setting the title in a controller method:
65
44
  helpers.page_title "Legal and Privacy Notices"
@@ -71,40 +50,32 @@ helpers.page_title "Legal and Privacy Notices"
71
50
 
72
51
  This will get you basic, consistent page titles. You can further customize universal and specific page title behavior. See the [How do I use it?](#usage) section.
73
52
 
74
- ## How do I use it?
53
+ ## <a name="details"></a>How do I use it?
75
54
 
76
55
  ![titler-string-elements](https://user-images.githubusercontent.com/1078402/27513269-9194340c-5925-11e7-8e7c-726a2d45e041.png)
77
56
 
78
57
  With Titler, a page title consists of the following elements:
79
58
 
80
- ### Environment Prefix
81
- (env_prefix)
59
+ ### Environment Prefix (env_prefix)
82
60
  - A one letter prefix in parentheses showing the rails environment. Example "(D) Title here..." for Development environment, or "(S) Title here..." for Staging environment. **This aids in quickly scanning and locating browser tabs during development and testing**. It is omitted for production environments.
83
61
 
84
- ### Admin Namespace
85
- (admin_namespace)
62
+ ### Admin Namespace (admin_namespace)
86
63
  - The title will be prefixed with "Admin" (admin_namespace i18n value) if the page controller is within an Admin namespace.
87
64
 
88
- ### Element Delimiter
89
- (delimiter)
65
+ ### Element Delimiter (delimiter)
90
66
  - Elements within the built title string will be delimited by this string. Developer can set it in the i18n file. The default is " - "
91
67
 
92
- ### Title Body
93
- (title_body)
94
-
68
+ ### Title Body (title_body)
95
69
  This is the core of the individual page title, which is set by the developer throughout their app. In order of preference:
96
70
 
97
71
  - content_for :page_title if found
98
72
  - @page_title instance variable if found
99
73
  - The Controller and Action (method) name is used if none of the above are found
100
74
 
101
- ### App Tagline
102
- (app_tagline)
103
-
75
+ ### App Tagline (app_tagline)
104
76
  This allows for an additional marketing tagline to be in every title. Set in the "app_tagline" i18n value and ignored if not found.
105
77
 
106
- ### App Name
107
- (app_name)
78
+ ### App Name (app_name)
108
79
 
109
80
  - The built title string is appended with the name of the application. This is set in the "app_name" i18n value. Default fallback is the Rails.application.class name.
110
81
 
@@ -117,22 +88,53 @@ This allows for an additional marketing tagline to be in every title. Set in the
117
88
  - Mom App | Posts Index
118
89
 
119
90
 
120
- ### Demonstration App with Live Versions
91
+ ### _Demonstration App with Live Versions_
121
92
 
122
- {{Insert screenshot of app}}
93
+ ![titler_demo_app2](https://user-images.githubusercontent.com/1078402/28021216-c65b61be-654c-11e7-883a-e0dced0fa1c3.png)
123
94
 
124
95
  There is a [titler_demo](https://github.com/roberttravispierce/titler_demo) demonstration app that shows how the titler gem works in a Rails app in many of the different combinations & situations. You can view live versions of it here:
125
96
 
126
97
  - In a Staging Environment: https://titler-demo-staging.herokuapp.com/
127
98
  - In a Production Environment: https://titler-demo-production.herokuapp.com/
128
99
 
129
- ## So why the fuss about titles anyway?
100
+ ## <a name="customize"></a>How do I customize it?
130
101
 
131
- Here are some resources to learn more about the importance of well-crafted and consistent page titles:
102
+ I'm working on a generator to add a config initializer and i18n locale file. In the meantime you can add a i18n locale file to change defaults (see the [titler_demo](https://github.com/roberttravispierce/titler_demo) demonstration app for an example):
132
103
 
133
- -
104
+ *app/config/locales/titler.en.yml*
105
+ ```yaml
106
+ ---
107
+ en:
108
+ titler:
109
+ app_name: 'App Name'
110
+ app_tagline: 'Your tagline'
111
+ delimiter: ' | '
112
+ ```
134
113
 
135
- ## Who built this?
114
+ ![Note the local config initializer is not working yet.](http://messages.hellobits.com/error.svg?message=Note%20the%20local%20config%20initializer%20is%20not%20working%20yet.)
115
+
116
+ *app/config/initializers/titler.rb*
117
+ ```ruby
118
+ Titler.configure do |config|
119
+ config.use_env_prefix = true
120
+ config.delimiter = ' - '
121
+ config.app_name_position = 'append' # append, prepend, none
122
+ config.use_app_tagline = true
123
+ config.admin_name = 'Admin'
124
+ config.admin_controller = AdminController
125
+ end
126
+ ```
127
+
128
+
129
+ ## <a name="why"></a>So why the fuss about titles anyway?
130
+
131
+ Here are some resources to learn more about the importance of thoughtful, well-crafted page titles:
132
+
133
+ - [Title Tags Guide \| Good & Bad Examples \| Search Engine Watch](https://searchenginewatch.com/2016/05/16/how-to-write-meta-title-tags-for-seo-with-good-and-bad-examples/#checklist)
134
+ - [9 Best Practices Title Tag Search Engine Optimization \- SEO](http://searchengineland.com/nine-best-practices-for-optimized-title-tags-111979)
135
+ - [Writing HTML Title Tags For Humans, Google & Bing](http://searchengineland.com/writing-html-title-tags-humans-google-bing-59384)
136
+
137
+ ## <a name="attribution"></a>Who built this?
136
138
 
137
139
  Titler was conceived and developed by Robert Travis Pierce ([roberttravispierce](https://github.com/roberttravispierce)), to scratch his own itch and further his education in Ruby and Rails.
138
140
 
@@ -140,7 +142,9 @@ Invaluable guidance and encouragment was provided along the way by Jonathan Allu
140
142
 
141
143
  In addition, the [title gem](https://github.com/calebthompson/title) by [calebthompson](https://github.com/calebthompson), helped greatly with figuring out how to structure the gem as a rails engine, and served as a guide for several improvements.
142
144
 
143
- ## How can I help improve it?
145
+ ## <a name="contributing"></a>How can I help improve it?
146
+
147
+ Please feel free to contribute any suggestions, improvements or refactors. This is an exercise in ruby education for me and an attempt to add something of value to the community.
144
148
 
145
149
  Bug reports and pull requests are welcome on GitHub at https://github.com/roberttravispierce/titler.
146
150
 
@@ -155,6 +159,13 @@ Here's the most direct way to get your work merged into the project.
155
159
  - Push the branch up to your fork
156
160
  - Send a pull request for your branch
157
161
 
162
+ ### Future Improvements
163
+
164
+ - Implement configuration and generator. The components are mostly there already. Just need to hook it all up correctly.
165
+ - Have i18n template installed locally by a generator.
166
+ - Improve test coverage and scheme
167
+ - Implement the more robust controller/action fallback ideas from the [title gem](https://github.com/calebthompson/title)
168
+
158
169
  ### Developing locally
159
170
 
160
171
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  en:
3
3
  titler:
4
- app_name: 'My App'
5
- app_tagline: 'Greatest App Ever'
4
+ app_name: ''
5
+ app_tagline: ''
6
6
  delimiter: ' - '
@@ -1,3 +1,3 @@
1
1
  module Titler
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2'
3
3
  end
@@ -65,6 +65,15 @@ describe Titler::TitlerHelper do
65
65
 
66
66
  # Specific Page Title Context ----------------------------------------------------
67
67
  context 'when specific page title exists' do
68
+ it '(1) uses page_title var when present' do
69
+ controller = MockController.new
70
+ stub_rails(controller, 'production', nil)
71
+ load_translations({})
72
+ titler_helper.instance_variable_set(:@page_title, 'Var Test Page')
73
+ expected_title = "#{env_prefix}Var Test Page - #{app_name}"
74
+ expect(titler_helper.titler).to eq(expected_title)
75
+ end
76
+
68
77
  # it '(1) uses content_for when present' do
69
78
  # controller = MockController.new
70
79
  # stub_rails(controller, 'production', nil)
@@ -73,14 +82,6 @@ describe Titler::TitlerHelper do
73
82
  # expected_title = "#{env_prefix}Test Page - #{app_name}"
74
83
  # expect(titler_helper.titler).to eq(expected_title)
75
84
  # end
76
-
77
- it '(2) uses page_title var when present' do
78
- controller = MockController.new
79
- stub_rails(controller, 'production', nil)
80
- titler_helper.instance_variable_set(:@page_title, 'Var Test Page')
81
- expected_title = "#{env_prefix}Var Test Page - #{app_name}"
82
- expect(titler_helper.titler).to eq(expected_title)
83
- end
84
85
  end
85
86
 
86
87
  # Configuration Values Context ----------------------------------------------------
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
1
4
  require "bundler/setup"
2
5
  require 'pry'
3
6
  require "titler"
data/titler.gemspec CHANGED
@@ -6,7 +6,7 @@ require 'titler/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "titler"
8
8
  spec.version = Titler::VERSION
9
- spec.authors = ["Robert Travis Pierce", "Jonathan Allured"]
9
+ spec.authors = ["Robert Travis Pierce"]
10
10
  spec.email = ["robert@roberttravispierce.com"]
11
11
 
12
12
  spec.summary = %q{A gem that make titling your Rails app pages dead simple but still allows you flexibility and control.}
@@ -47,7 +47,9 @@ Gem::Specification.new do |spec|
47
47
  spec.add_development_dependency "pry-nav"
48
48
  spec.add_development_dependency 'rb-readline'
49
49
  spec.add_development_dependency 'rspec-rails'
50
+ spec.add_development_dependency 'coveralls'
50
51
 
51
52
  spec.add_dependency 'rails', '>= 3.1'
52
53
  spec.add_dependency 'i18n'
54
+
53
55
  end
metadata CHANGED
@@ -1,11 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: titler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Travis Pierce
8
- - Jonathan Allured
9
8
  autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
@@ -179,6 +178,20 @@ dependencies:
179
178
  - - ">="
180
179
  - !ruby/object:Gem::Version
181
180
  version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: coveralls
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
182
195
  - !ruby/object:Gem::Dependency
183
196
  name: rails
184
197
  requirement: !ruby/object:Gem::Requirement
@@ -217,6 +230,7 @@ executables: []
217
230
  extensions: []
218
231
  extra_rdoc_files: []
219
232
  files:
233
+ - ".coveralls.yml"
220
234
  - ".gitignore"
221
235
  - ".rspec"
222
236
  - ".ruby-gemset"