smart_titles 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -0
- data/Gemfile.lock +22 -30
- data/Guardfile +14 -0
- data/README.md +10 -1
- data/Rakefile +9 -0
- data/lib/smart_titles/helper.rb +35 -23
- data/lib/smart_titles/railtie.rb +11 -1
- data/lib/smart_titles/version.rb +1 -1
- data/lib/smart_titles.rb +1 -1
- data/smart_titles.gemspec +1 -3
- data/test/smart_titles/helper_test.rb +136 -0
- data/test/test_helper.rb +8 -0
- metadata +16 -42
- data/spec/smart_titles_helper_spec.rb +0 -138
- data/spec/spec_helper.rb +0 -13
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,66 +1,58 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
smart_titles (0.
|
4
|
+
smart_titles (0.3.0)
|
5
5
|
actionpack
|
6
6
|
activesupport
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: http://rubygems.org/
|
10
10
|
specs:
|
11
|
-
actionpack (3.1.
|
12
|
-
activemodel (= 3.1.
|
13
|
-
activesupport (= 3.1.
|
11
|
+
actionpack (3.1.3)
|
12
|
+
activemodel (= 3.1.3)
|
13
|
+
activesupport (= 3.1.3)
|
14
14
|
builder (~> 3.0.0)
|
15
15
|
erubis (~> 2.7.0)
|
16
16
|
i18n (~> 0.6)
|
17
|
-
rack (~> 1.3.
|
18
|
-
rack-cache (~> 1.
|
17
|
+
rack (~> 1.3.5)
|
18
|
+
rack-cache (~> 1.1)
|
19
19
|
rack-mount (~> 0.8.2)
|
20
20
|
rack-test (~> 0.6.1)
|
21
|
-
sprockets (~> 2.0.
|
22
|
-
activemodel (3.1.
|
23
|
-
activesupport (= 3.1.
|
24
|
-
bcrypt-ruby (~> 3.0.0)
|
21
|
+
sprockets (~> 2.0.3)
|
22
|
+
activemodel (3.1.3)
|
23
|
+
activesupport (= 3.1.3)
|
25
24
|
builder (~> 3.0.0)
|
26
25
|
i18n (~> 0.6)
|
27
|
-
activesupport (3.1.
|
26
|
+
activesupport (3.1.3)
|
28
27
|
multi_json (~> 1.0)
|
29
|
-
bcrypt-ruby (3.0.0)
|
30
28
|
builder (3.0.0)
|
31
|
-
diff-lcs (1.1.3)
|
32
29
|
erubis (2.7.0)
|
30
|
+
guard (0.8.8)
|
31
|
+
thor (~> 0.14.6)
|
32
|
+
guard-minitest (0.4.0)
|
33
|
+
guard (~> 0.4)
|
33
34
|
hike (1.2.1)
|
34
35
|
i18n (0.6.0)
|
35
|
-
|
36
|
-
|
37
|
-
rack (1.
|
38
|
-
rack-cache (1.0.3)
|
36
|
+
multi_json (1.0.4)
|
37
|
+
rack (1.3.5)
|
38
|
+
rack-cache (1.1)
|
39
39
|
rack (>= 0.4)
|
40
40
|
rack-mount (0.8.3)
|
41
41
|
rack (>= 1.0.0)
|
42
42
|
rack-test (0.6.1)
|
43
43
|
rack (>= 1.0)
|
44
|
-
rake (0.9.2)
|
45
|
-
|
46
|
-
rspec-core (~> 2.6.0)
|
47
|
-
rspec-expectations (~> 2.6.0)
|
48
|
-
rspec-mocks (~> 2.6.0)
|
49
|
-
rspec-core (2.6.4)
|
50
|
-
rspec-expectations (2.6.0)
|
51
|
-
diff-lcs (~> 1.1.2)
|
52
|
-
rspec-mocks (2.6.0)
|
53
|
-
sprockets (2.0.0)
|
44
|
+
rake (0.9.2.2)
|
45
|
+
sprockets (2.0.3)
|
54
46
|
hike (~> 1.2)
|
55
47
|
rack (~> 1.0)
|
56
|
-
tilt (
|
48
|
+
tilt (~> 1.1, != 1.3.0)
|
49
|
+
thor (0.14.6)
|
57
50
|
tilt (1.3.3)
|
58
51
|
|
59
52
|
PLATFORMS
|
60
53
|
ruby
|
61
54
|
|
62
55
|
DEPENDENCIES
|
63
|
-
|
56
|
+
guard-minitest
|
64
57
|
rake
|
65
|
-
rspec
|
66
58
|
smart_titles!
|
data/Guardfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'minitest' do
|
5
|
+
# with Minitest::Unit
|
6
|
+
watch(%r|^test/(.*)_test\.rb|)
|
7
|
+
watch(%r|^lib/(.*)\.rb|) { |m| "test/#{m[1]}_test.rb" }
|
8
|
+
watch(%r|^test/test_helper\.rb|) { "test" }
|
9
|
+
|
10
|
+
# with Minitest::Spec
|
11
|
+
# watch(%r|^spec/(.*)_spec\.rb|)
|
12
|
+
# watch(%r|^lib/(.*)\.rb|) { |m| "spec/#{m[1]}_spec.rb" }
|
13
|
+
# watch(%r|^spec/spec_helper\.rb|) { "spec" }
|
14
|
+
end
|
data/README.md
CHANGED
@@ -46,7 +46,7 @@ And then you should just call `title` without any arguments.
|
|
46
46
|
|
47
47
|
<%= title %>
|
48
48
|
|
49
|
-
Note that you
|
49
|
+
Note that you _have to call it_ even if you don't output it.
|
50
50
|
|
51
51
|
<% title %>
|
52
52
|
|
@@ -73,6 +73,15 @@ And now products#index page will have "Products from the Coolest Store" browser'
|
|
73
73
|
|
74
74
|
Changelog
|
75
75
|
---
|
76
|
+
### 0.3.0
|
77
|
+
* Important change in the documentation: you have to call `title` with no arguments when you want to use translated title.
|
78
|
+
* Fixed bug when `head_title` returned default title even if there was a custom title in locale.
|
79
|
+
* Added actual Railtie class for reliable integration. This fixes a problem when sometimes helper wasn't included for some reason.
|
80
|
+
* Internal changes that you probably don't care about.
|
81
|
+
* There are now only 2 public helper methods: `title` and `head_title`.
|
82
|
+
* All helper methods are documented.
|
83
|
+
* Missing translation is now detected more safely.
|
84
|
+
|
76
85
|
### 0.2.0
|
77
86
|
* `page_title` renamed to `head_title`.
|
78
87
|
* Added support for :title_template translation
|
data/Rakefile
CHANGED
data/lib/smart_titles/helper.rb
CHANGED
@@ -1,37 +1,49 @@
|
|
1
1
|
module SmartTitles
|
2
|
-
|
3
|
-
MISSING_TRANSLATION = 0
|
4
|
-
|
5
|
-
def head_title(*args)
|
6
|
-
options = args.extract_options!
|
7
|
-
options[:template] = true if options[:template].nil?
|
8
|
-
custom_default_title = args.first
|
2
|
+
MISSING_TRANSLATION = Object.new
|
9
3
|
|
10
|
-
|
4
|
+
module Helper
|
5
|
+
# <title><%= head_title %></title>
|
6
|
+
# Will return title if it was set for the current page.
|
7
|
+
# Otherwise will return :title translation.
|
8
|
+
#
|
9
|
+
# <title><%= head_title "My Blog" %></title>
|
10
|
+
# The default title will be "My Blog" instead of :title translation.
|
11
|
+
#
|
12
|
+
# Example usage with title template:
|
13
|
+
# en:
|
14
|
+
# title: The Coolest Store
|
15
|
+
# title_template: %{title} from the Coolest Store
|
16
|
+
#
|
17
|
+
# head_title # => The Coolest Store
|
18
|
+
# title "Drinks" # => <h1>Drinks</h1>
|
19
|
+
# head_title # => Drinks from the Coolest Store
|
20
|
+
def head_title(default_title = t(:title))
|
21
|
+
if title = page_title
|
11
22
|
t(:title_template, title: title, default: title)
|
12
23
|
else
|
13
|
-
|
24
|
+
default_title
|
14
25
|
end
|
15
26
|
end
|
16
27
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
def title(new_title = nil)
|
24
|
-
self.page_title = new_title if new_title
|
28
|
+
# Convinient helper method that will:
|
29
|
+
# * Set custom title for the current page if it is passed. Otherwise the title will be automatically set
|
30
|
+
# * Return the title passed or looked up from locale wrapped into h1 tag
|
31
|
+
def title(custom_title = nil)
|
32
|
+
provide(:page_title, custom_title || page_title)
|
25
33
|
content_tag(:h1, page_title) if page_title
|
26
34
|
end
|
27
35
|
|
28
|
-
|
29
|
-
translation = t('.title', default: MISSING_TRANSLATION)
|
30
|
-
translation unless translation == MISSING_TRANSLATION
|
31
|
-
end
|
36
|
+
private
|
32
37
|
|
33
|
-
|
34
|
-
|
38
|
+
# This is a page title that was set by the #title helper method
|
39
|
+
# It defaults to ".title" translation
|
40
|
+
def page_title
|
41
|
+
if content_for?(:page_title)
|
42
|
+
content_for(:page_title)
|
43
|
+
else
|
44
|
+
translation = t('.title', default: MISSING_TRANSLATION)
|
45
|
+
translation unless translation.equal? MISSING_TRANSLATION
|
46
|
+
end
|
35
47
|
end
|
36
48
|
end
|
37
49
|
end
|
data/lib/smart_titles/railtie.rb
CHANGED
data/lib/smart_titles/version.rb
CHANGED
data/lib/smart_titles.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
require "smart_titles/helper"
|
2
|
-
require "smart_titles/railtie"
|
2
|
+
require "smart_titles/railtie" if defined?(Rails)
|
data/smart_titles.gemspec
CHANGED
@@ -10,13 +10,11 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = "sema@sema.in"
|
11
11
|
s.homepage = "http://github.com/semaperepelitsa/smart_titles"
|
12
12
|
s.license = "MIT"
|
13
|
-
s.summary = %q{Really convenient way to set up page titles in Rails application.}
|
13
|
+
s.summary = %q{Really convenient way to set up page titles in a Rails application.}
|
14
14
|
|
15
15
|
s.add_dependency 'activesupport'
|
16
16
|
s.add_dependency 'actionpack'
|
17
|
-
s.add_development_dependency 'rspec'
|
18
17
|
s.add_development_dependency 'rake'
|
19
|
-
s.add_development_dependency 'mocha'
|
20
18
|
|
21
19
|
s.files = `git ls-files`.split("\n")
|
22
20
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class SmartTitlesHelperTest < ActionView::TestCase
|
4
|
+
include SmartTitles::Helper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@av = ActionView::Base.new
|
9
|
+
@view_flow = ActionView::OutputFlow.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def inside_view
|
13
|
+
@virtual_path = 'posts/new'
|
14
|
+
end
|
15
|
+
|
16
|
+
def inside_layout
|
17
|
+
@virtual_path = 'layouts/application'
|
18
|
+
end
|
19
|
+
|
20
|
+
def title(*args)
|
21
|
+
inside_view
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
def head_title(*args)
|
26
|
+
inside_layout
|
27
|
+
super
|
28
|
+
end
|
29
|
+
|
30
|
+
def teardown
|
31
|
+
I18n.backend.reload!
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def test_custom_title
|
36
|
+
store_global_title
|
37
|
+
store_page_title
|
38
|
+
assert_equal "<h1>Hi</h1>", title("Hi")
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_translated_title
|
42
|
+
store_global_title
|
43
|
+
store_page_title
|
44
|
+
assert_equal "<h1>New post</h1>", title
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_no_page_title
|
48
|
+
store_global_title
|
49
|
+
assert_nil title
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_no_title
|
53
|
+
assert_nil title
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
def test_head_title_with_custom_title
|
58
|
+
store_global_title
|
59
|
+
store_page_title
|
60
|
+
title("Hi")
|
61
|
+
assert_equal "Hi", head_title
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_head_title_with_translated_title
|
65
|
+
store_global_title
|
66
|
+
store_page_title
|
67
|
+
title
|
68
|
+
assert_equal "New post", head_title
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_head_title_with_translated_global_title
|
72
|
+
store_global_title
|
73
|
+
assert_equal "My Website", head_title
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_head_title_with_no_title
|
77
|
+
assert_includes head_title, "translation missing: en.title"
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
def test_head_title_with_custom_global_title
|
82
|
+
assert_equal "Default", head_title("Default")
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_head_title_with_custom_global_title_and_custom_title
|
86
|
+
title("Hi")
|
87
|
+
assert_equal "Hi", head_title("Default")
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
def test_head_title_with_template_and_translated_titles
|
92
|
+
store_global_title
|
93
|
+
store_page_title
|
94
|
+
store_title_template
|
95
|
+
title
|
96
|
+
assert_equal "d New post b", head_title
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_head_title_with_template_and_custom_title
|
100
|
+
store_global_title
|
101
|
+
store_page_title
|
102
|
+
store_title_template
|
103
|
+
title("Hi")
|
104
|
+
assert_equal "d Hi b", head_title
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_head_title_with_template_and_translated_title
|
108
|
+
store_global_title
|
109
|
+
store_title_template
|
110
|
+
assert_equal "My Website", head_title
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
|
115
|
+
def store_translations(*args)
|
116
|
+
I18n.backend.store_translations(:en, *args)
|
117
|
+
end
|
118
|
+
|
119
|
+
def store_page_title
|
120
|
+
store_translations posts: { new: { title: "New post" } }
|
121
|
+
end
|
122
|
+
|
123
|
+
def store_titles
|
124
|
+
store_global_title
|
125
|
+
store_page_title
|
126
|
+
end
|
127
|
+
|
128
|
+
def store_global_title
|
129
|
+
store_translations title: "My Website"
|
130
|
+
end
|
131
|
+
|
132
|
+
def store_title_template
|
133
|
+
store_translations title_template: "d %{title} b"
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_titles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09
|
12
|
+
date: 2011-12-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70340769140560 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70340769140560
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: actionpack
|
27
|
-
requirement: &
|
27
|
+
requirement: &70340769124440 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,32 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rspec
|
38
|
-
requirement: &70107579603080 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ! '>='
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0'
|
44
|
-
type: :development
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *70107579603080
|
35
|
+
version_requirements: *70340769124440
|
47
36
|
- !ruby/object:Gem::Dependency
|
48
37
|
name: rake
|
49
|
-
requirement: &
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
type: :development
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: *70107579602360
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: mocha
|
60
|
-
requirement: &70107579601760 !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70340769123460 !ruby/object:Gem::Requirement
|
61
39
|
none: false
|
62
40
|
requirements:
|
63
41
|
- - ! '>='
|
@@ -65,7 +43,7 @@ dependencies:
|
|
65
43
|
version: '0'
|
66
44
|
type: :development
|
67
45
|
prerelease: false
|
68
|
-
version_requirements: *
|
46
|
+
version_requirements: *70340769123460
|
69
47
|
description:
|
70
48
|
email: sema@sema.in
|
71
49
|
executables: []
|
@@ -77,6 +55,7 @@ files:
|
|
77
55
|
- .rspec
|
78
56
|
- Gemfile
|
79
57
|
- Gemfile.lock
|
58
|
+
- Guardfile
|
80
59
|
- LICENSE.txt
|
81
60
|
- README.md
|
82
61
|
- Rakefile
|
@@ -86,8 +65,8 @@ files:
|
|
86
65
|
- lib/smart_titles/railtie.rb
|
87
66
|
- lib/smart_titles/version.rb
|
88
67
|
- smart_titles.gemspec
|
89
|
-
-
|
90
|
-
-
|
68
|
+
- test/smart_titles/helper_test.rb
|
69
|
+
- test/test_helper.rb
|
91
70
|
homepage: http://github.com/semaperepelitsa/smart_titles
|
92
71
|
licenses:
|
93
72
|
- MIT
|
@@ -101,24 +80,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
80
|
- - ! '>='
|
102
81
|
- !ruby/object:Gem::Version
|
103
82
|
version: '0'
|
104
|
-
segments:
|
105
|
-
- 0
|
106
|
-
hash: -4104704374070627387
|
107
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
84
|
none: false
|
109
85
|
requirements:
|
110
86
|
- - ! '>='
|
111
87
|
- !ruby/object:Gem::Version
|
112
88
|
version: '0'
|
113
|
-
segments:
|
114
|
-
- 0
|
115
|
-
hash: -4104704374070627387
|
116
89
|
requirements: []
|
117
90
|
rubyforge_project:
|
118
|
-
rubygems_version: 1.8.
|
91
|
+
rubygems_version: 1.8.11
|
119
92
|
signing_key:
|
120
93
|
specification_version: 3
|
121
|
-
summary: Really convenient way to set up page titles in Rails application.
|
94
|
+
summary: Really convenient way to set up page titles in a Rails application.
|
122
95
|
test_files:
|
123
|
-
-
|
124
|
-
-
|
96
|
+
- test/smart_titles/helper_test.rb
|
97
|
+
- test/test_helper.rb
|
98
|
+
has_rdoc:
|
@@ -1,138 +0,0 @@
|
|
1
|
-
require File.expand_path('spec_helper', File.dirname(__FILE__))
|
2
|
-
|
3
|
-
describe SmartTitles::Helper do
|
4
|
-
include ActionView::Helpers
|
5
|
-
|
6
|
-
before do
|
7
|
-
@virtual_path = 'posts/new'
|
8
|
-
I18n.backend.reload!
|
9
|
-
end
|
10
|
-
|
11
|
-
def store_translations(*args)
|
12
|
-
I18n.backend.store_translations(:en, *args)
|
13
|
-
end
|
14
|
-
|
15
|
-
describe 'no i18n' do
|
16
|
-
describe '#title' do
|
17
|
-
it "sets #page_title" do
|
18
|
-
title("Hi")
|
19
|
-
page_title.should == "Hi"
|
20
|
-
end
|
21
|
-
|
22
|
-
it "returns h1-wrapped title" do
|
23
|
-
title("Hi").should == "<h1>Hi</h1>"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe '#page_title' do
|
28
|
-
it "returns nil if no title was set" do
|
29
|
-
page_title.should == nil
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe '#head_title' do
|
34
|
-
it 'returns #page_title if it was set' do
|
35
|
-
title("Hi")
|
36
|
-
head_title.should == "Hi"
|
37
|
-
end
|
38
|
-
|
39
|
-
it "returns missing translation if no title was set" do
|
40
|
-
head_title.should include("translation missing: en.title")
|
41
|
-
end
|
42
|
-
|
43
|
-
it "returns title passed if no title was set" do
|
44
|
-
head_title("Default").should == "Default"
|
45
|
-
end
|
46
|
-
|
47
|
-
describe 'with :title_template' do
|
48
|
-
it "used for page_title" do
|
49
|
-
store_translations title_template: "d %{title} b"
|
50
|
-
title("New post")
|
51
|
-
head_title.should == "d New post b"
|
52
|
-
end
|
53
|
-
|
54
|
-
it "is skipped for custom title" do
|
55
|
-
store_translations title_template: "d %{title} b"
|
56
|
-
head_title("Default").should == "Default"
|
57
|
-
end
|
58
|
-
|
59
|
-
it "is skipped if template: false" do
|
60
|
-
store_translations title_template: "d %{title} b"
|
61
|
-
title("New post")
|
62
|
-
head_title("Default", template: false).should == "New post"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe 'i18n' do
|
69
|
-
describe '#title' do
|
70
|
-
it "returns .title wrapped in h1 tag if there are :title and .title" do
|
71
|
-
store_translations title: "My Website", posts: { new: { title: "New post" } }
|
72
|
-
title.should == "<h1>New post</h1>"
|
73
|
-
end
|
74
|
-
|
75
|
-
it "returns .title wrapped in h1 tag if there is only .title" do
|
76
|
-
store_translations posts: { new: { title: "New post" } }
|
77
|
-
title.should == "<h1>New post</h1>"
|
78
|
-
end
|
79
|
-
|
80
|
-
it "returns nothing if there is no .title" do
|
81
|
-
store_translations title: "My Website"
|
82
|
-
title.should == nil
|
83
|
-
end
|
84
|
-
|
85
|
-
it "returns nothing if there are no translations" do
|
86
|
-
title.should == nil
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
describe '#head_title' do
|
91
|
-
it "returns .title if there are :title and .title" do
|
92
|
-
store_translations title: "My Website", posts: { new: { title: "New post" } }
|
93
|
-
head_title.should == "New post"
|
94
|
-
end
|
95
|
-
|
96
|
-
it "returns .title if there is only .title" do
|
97
|
-
store_translations posts: { new: { title: "New post" } }
|
98
|
-
head_title.should == "New post"
|
99
|
-
end
|
100
|
-
|
101
|
-
it "returns :title if there is no .title" do
|
102
|
-
store_translations title: "My Website"
|
103
|
-
head_title.should == "My Website"
|
104
|
-
end
|
105
|
-
|
106
|
-
it "returns missing translation if there are no tranlations" do
|
107
|
-
head_title.should include("translation missing: en.title")
|
108
|
-
end
|
109
|
-
|
110
|
-
it "returns custom title" do
|
111
|
-
store_translations title: "My Website"
|
112
|
-
head_title("Custom").should == "Custom"
|
113
|
-
end
|
114
|
-
|
115
|
-
it "returns .title even if custom default title is passed" do
|
116
|
-
store_translations posts: { new: { title: "New post" } }
|
117
|
-
head_title("Custom").should == "New post"
|
118
|
-
end
|
119
|
-
|
120
|
-
describe 'with :title_template' do
|
121
|
-
it "used for page_title" do
|
122
|
-
store_translations title_template: "d %{title} b", posts: { new: { title: "New post" } }
|
123
|
-
head_title.should == "d New post b"
|
124
|
-
end
|
125
|
-
|
126
|
-
it "is skipped for default title" do
|
127
|
-
store_translations title: "My Website", title_template: "d %{title} b"
|
128
|
-
head_title.should == "My Website"
|
129
|
-
end
|
130
|
-
|
131
|
-
it "is skipped if template: false" do
|
132
|
-
store_translations title_template: "d %{title} b", posts: { new: { title: "New post" } }
|
133
|
-
head_title(template: false).should == "New post"
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
-
require 'active_support/all'
|
4
|
-
require 'action_view'
|
5
|
-
require 'smart_titles'
|
6
|
-
|
7
|
-
# Requires supporting files with custom matchers and macros, etc,
|
8
|
-
# in ./support/ and its subdirectories.
|
9
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
10
|
-
|
11
|
-
RSpec.configure do |config|
|
12
|
-
config.mock_with :mocha
|
13
|
-
end
|