smart_titles 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|