tophat 1.2.0 → 1.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.
@@ -0,0 +1,43 @@
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_group 'TopHat', 'lib/tophat'
4
+ add_group 'Specs', 'spec'
5
+ end
6
+
7
+ require File.expand_path('../../lib/tophat', __FILE__)
8
+
9
+ require 'rspec'
10
+ require 'rails/all'
11
+
12
+ require 'action_controller/vendor/html-scanner'
13
+
14
+ module HTML
15
+ class Node
16
+ def ==(node)
17
+ return false unless self.class == node.class && children.size == node.children.size
18
+
19
+ equivalent = true
20
+
21
+ children.size.times do |i|
22
+ equivalent &&= children.include?(node.children[i])
23
+ end
24
+
25
+ equivalent
26
+ end
27
+ end
28
+ end
29
+
30
+ RSpec::Matchers.define :be_dom_equivalent_to do |expected|
31
+ match do |actual|
32
+ expected_dom = HTML::Document.new(expected).root
33
+ actual_dom = HTML::Document.new(actual).root
34
+
35
+ expected_dom == actual_dom
36
+ end
37
+
38
+ failure_message_for_should do |actual|
39
+ "expected #{actual} would be dom equivalent to #{expected}"
40
+ end
41
+
42
+ end
43
+
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe TopHat::MetaHelper do
4
+
5
+ before(:each) do
6
+ @template = ActionView::Base.new
7
+ end
8
+
9
+ describe "keywords" do
10
+ context "defined as an array" do
11
+ before do
12
+ @keywords = %w{ John Paul George Ringo }
13
+ end
14
+
15
+ it "should save keywords" do
16
+ @template.keywords(@keywords).should == @keywords.join(', ')
17
+ end
18
+
19
+ it "should use default keywords if keywords is empty" do
20
+ @template.keywords(:default => @keywords).should == "<meta content=\"#{@keywords.join(', ')}\" name=\"keywords\" />"
21
+ end
22
+ end
23
+
24
+ context "defined as a string" do
25
+ before do
26
+ @keywords = "John, Paul, George, Ringo"
27
+ end
28
+
29
+ it "should save keywords" do
30
+ @template.keywords(@keywords).should == @keywords
31
+ end
32
+
33
+ it "should use default keywords passed as a string if keywords is empty" do
34
+ @template.keywords(:default => @keywords).should == "<meta content=\"#{@keywords}\" name=\"keywords\" />"
35
+ end
36
+ end
37
+
38
+ it "should not return a tag if no default is configured and no keywords are defined" do
39
+ @template.keywords.should be_nil
40
+ end
41
+
42
+ it "should merge default tags with page tags, when merge_default is set to true" do
43
+ @template.keywords("Stu, Pete")
44
+ @template.keywords(:default => "John, Paul, George, Ringo", :merge_default => true).should == "<meta content=\"Stu, Pete, John, Paul, George, Ringo\" name=\"keywords\" />"
45
+ end
46
+ end
47
+
48
+ describe ".description" do
49
+ it "should save the description" do
50
+ desc = "Cinderella story. Outta nowhere. A former greenskeeper, now, about to become the Masters champion."
51
+ @template.description(desc).should == desc
52
+ end
53
+
54
+ it "should use the default description if no description is defined" do
55
+ desc = "A flute without holes, is not a flute. A donut without a hole, is a Danish."
56
+ @template.description(:default => desc).should == "<meta content=\"#{desc}\" name=\"description\" />"
57
+ end
58
+
59
+ it "should not return a tag if no default is configured and no description is defined" do
60
+ @template.description.should be_nil
61
+ end
62
+ end
63
+
64
+ end
@@ -0,0 +1,71 @@
1
+ require 'spec_helper'
2
+
3
+ describe TopHat::OpenGraphHelper do
4
+
5
+ before(:each) do
6
+ @template = ActionView::Base.new
7
+ end
8
+
9
+ context "site admins when configured" do
10
+ context "as a string" do
11
+ it "should generate a site admin tag" do
12
+ @template.opengraph(:admins => '123,124')
13
+ @template.opengraph.should be_dom_equivalent_to('<meta content="123,124" property="fb:admins" />\n')
14
+ end
15
+ end
16
+
17
+ context "as an array" do
18
+ it "should generate a site admin tag" do
19
+ @template.opengraph(:admins => [123, 124])
20
+ @template.opengraph.should be_dom_equivalent_to('<meta content="123,124" property="fb:admins" />\n')
21
+ end
22
+ end
23
+ end
24
+
25
+ context "app_id when configured" do
26
+ it "should generate an app_id meta tag" do
27
+ @template.opengraph(:app_id => 'MyApp')
28
+ @template.opengraph.should be_dom_equivalent_to('<meta content="MyApp" property="fb:app_id" />\n')
29
+ end
30
+ end
31
+
32
+ context "additional open graph properties" do
33
+ it "should generate tags" do
34
+ @template.opengraph { |graph| graph.title 'The Great Gatsby' }
35
+ @template.opengraph.should be_dom_equivalent_to('<meta content="The Great Gatsby" property="og:title" />')
36
+ end
37
+
38
+ it "should allow use of the tag 'type'" do
39
+ @template.opengraph { |graph| graph.type 'sports_team' }
40
+ @template.opengraph.should be_dom_equivalent_to('<meta content="sports_team" property="og:type" />')
41
+ end
42
+
43
+ it "should support multiple tags" do
44
+ @template.opengraph { |graph|
45
+ graph.title 'Austin Powers: International Man of Mystery'
46
+ graph.type 'movie'
47
+ }
48
+ @template.opengraph.should be_dom_equivalent_to('<meta content="movie" property="og:type" />\n<meta content="Austin Powers: International Man of Mystery" property="og:title" />\n')
49
+ end
50
+
51
+ end
52
+
53
+ context "combined usage" do
54
+ it "should generate all tags" do
55
+ @template.opengraph(:app_id => 'MyApp', :admins => [123, 1234]) { |graph|
56
+ graph.title 'Rain Man'
57
+ graph.type 'movie'
58
+ }
59
+ @template.opengraph.should be_dom_equivalent_to('<meta content="MyApp" property="fb:app_id" />\n<meta content="123,1234" property="fb:admins" />\n<meta content="movie" property="og:type" />\n<meta content="Rain Man" property="og:title" />\n')
60
+ end
61
+
62
+ it "should generate all tags - alternative usage" do
63
+ @template.opengraph { |graph|
64
+ graph.title 'Rain Man'
65
+ graph.type 'movie'
66
+ }
67
+ @template.opengraph(:app_id => 'MyApp', :admins => [123, 1234]).should be_dom_equivalent_to('<meta content="MyApp" property="fb:app_id" />\n<meta content="123,1234" property="fb:admins" />\n<meta content="movie" property="og:type" />\n<meta content="Rain Man" property="og:title" />\n')
68
+ end
69
+ end
70
+
71
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe TopHat::RobotsHelper do
4
+
5
+ before(:all) do
6
+ @template = ActionView::Base.new
7
+ end
8
+
9
+ describe ".nofollow" do
10
+ it "should default to all robots" do
11
+ @template.nofollow.should == "<meta content=\"nofollow\" name=\"robots\" />"
12
+ end
13
+
14
+ it "should use a descriptor if one is provided" do
15
+ @template.nofollow('googlebot').should == "<meta content=\"nofollow\" name=\"googlebot\" />"
16
+ end
17
+ end
18
+
19
+ describe ".noindex" do
20
+ it "should default to all robots" do
21
+ @template.noindex.should == "<meta content=\"noindex\" name=\"robots\" />"
22
+ end
23
+
24
+ it "should use a descriptor if one is provided" do
25
+ @template.noindex('googlebot').should == "<meta content=\"noindex\" name=\"googlebot\" />"
26
+ end
27
+ end
28
+
29
+ describe ".canonical" do
30
+ it "should not render when not passed a path" do
31
+ @template.canonical.should be_nil
32
+ end
33
+
34
+ it "should render a tag when passed a path" do
35
+ @template.canonical('http://mysite.com/somepath/').should == "<link href=\"http://mysite.com/somepath/\" rel=\"canonical\" />"
36
+ end
37
+ end
38
+
39
+ end
@@ -0,0 +1,148 @@
1
+ require 'spec_helper'
2
+
3
+ describe TopHat::StylesheetHelper do
4
+
5
+ before(:each) do
6
+ ENV["RAILS_ASSET_ID"] = ''
7
+ public_dir = File.join(File.dirname(__FILE__), 'public')
8
+ @helpers = ActionController::Base.helpers
9
+ @helpers.config.perform_caching = false
10
+ @helpers.config.assets_dir = public_dir
11
+ @helpers.config.javascripts_dir = "#{public_dir}/javascripts"
12
+ @helpers.config.stylesheets_dir = "#{public_dir}/stylesheets"
13
+
14
+ @template = ActionView::Base.new
15
+
16
+ @stylesheet = "ie.css"
17
+ end
18
+
19
+ it "should define IE conditionals" do
20
+ @template.ie_5_conditional {
21
+ @template.stylesheet_link_tag(@stylesheet)
22
+ }.should == "<!--[if IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
23
+
24
+ @template.ie_5_5_conditional {
25
+ @template.stylesheet_link_tag(@stylesheet)
26
+ }.should == "<!--[if IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
27
+
28
+ @template.ie_6_conditional {
29
+ @template.stylesheet_link_tag(@stylesheet)
30
+ }.should == "<!--[if IE 6]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
31
+
32
+ @template.ie_7_conditional {
33
+ @template.stylesheet_link_tag(@stylesheet)
34
+ }.should == "<!--[if IE 7]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
35
+
36
+ @template.ie_8_conditional {
37
+ @template.stylesheet_link_tag(@stylesheet)
38
+ }.should == "<!--[if IE 8]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
39
+
40
+ @template.ie_9_conditional {
41
+ @template.stylesheet_link_tag(@stylesheet)
42
+ }.should == "<!--[if IE 9]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
43
+ end
44
+
45
+ it "should render defined IE conditional with greater than operator" do
46
+ @template.ie_5_conditional(:gt) {
47
+ @template.stylesheet_link_tag(@stylesheet)
48
+ }.should == "<!--[if gt IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
49
+
50
+ @template.ie_5_5_conditional(:gt) {
51
+ @template.stylesheet_link_tag(@stylesheet)
52
+ }.should == "<!--[if gt IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
53
+ end
54
+
55
+ it "should render defined IE conditional with greater than or equal to operator" do
56
+ @template.ie_5_conditional(:gte) {
57
+ @template.stylesheet_link_tag(@stylesheet)
58
+ }.should == "<!--[if gte IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
59
+
60
+ @template.ie_5_5_conditional(:gte) {
61
+ @template.stylesheet_link_tag(@stylesheet)
62
+ }.should == "<!--[if gte IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
63
+ end
64
+
65
+ it "should render defined IE conditional with ! operator" do
66
+ @template.ie_5_conditional(:not) {
67
+ @template.stylesheet_link_tag(@stylesheet)
68
+ }.should == "<!--[if !IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
69
+
70
+ @template.ie_5_5_conditional(:not) {
71
+ @template.stylesheet_link_tag(@stylesheet)
72
+ }.should == "<!--[if !IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
73
+ end
74
+
75
+ it "should render defined IE conditional with less than operator" do
76
+ @template.ie_5_conditional(:lt) {
77
+ @template.stylesheet_link_tag(@stylesheet)
78
+ }.should == "<!--[if lt IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
79
+
80
+ @template.ie_5_5_conditional(:lt) {
81
+ @template.stylesheet_link_tag(@stylesheet)
82
+ }.should == "<!--[if lt IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
83
+ end
84
+
85
+ it "should render defined IE conditional with less than or equal to operator" do
86
+ @template.ie_5_conditional(:lte) {
87
+ @template.stylesheet_link_tag(@stylesheet)
88
+ }.should == "<!--[if lte IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
89
+
90
+ @template.ie_5_5_conditional(:lte) {
91
+ @template.stylesheet_link_tag(@stylesheet)
92
+ }.should == "<!--[if lte IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
93
+ end
94
+
95
+ it "should render defined IE conditional with equal to operator" do
96
+ @template.ie_5_conditional(:eq) {
97
+ @template.stylesheet_link_tag(@stylesheet)
98
+ }.should == "<!--[if eq IE 5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
99
+
100
+ @template.ie_5_5_conditional(:eq) {
101
+ @template.stylesheet_link_tag(@stylesheet)
102
+ }.should == "<!--[if eq IE 5.5]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
103
+ end
104
+
105
+ it "should render defined conditionals for other browsers" do
106
+ @template.opera_conditional {
107
+ @template.stylesheet_link_tag(@stylesheet)
108
+ }.should == "<!--[if Opera]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
109
+
110
+ @template.webkit_conditional {
111
+ @template.stylesheet_link_tag(@stylesheet)
112
+ }.should == "<!--[if Webkit]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
113
+
114
+ @template.webkit_conditional(:eq) {
115
+ @template.stylesheet_link_tag(@stylesheet)
116
+ }.should == "<!--[if eq Webkit]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
117
+
118
+ @template.gecko_conditional {
119
+ @template.stylesheet_link_tag(@stylesheet)
120
+ }.should == "<!--[if Gecko]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
121
+
122
+ @template.ie_mac_conditional {
123
+ @template.stylesheet_link_tag(@stylesheet)
124
+ }.should == "<!--[if IEMac]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
125
+
126
+ @template.konqueror_conditional {
127
+ @template.stylesheet_link_tag(@stylesheet)
128
+ }.should == "<!--[if Konq]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
129
+
130
+ @template.ie_mobile_conditional {
131
+ @template.stylesheet_link_tag(@stylesheet)
132
+ }.should == "<!--[if IEmob]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
133
+
134
+ @template.psp_conditional {
135
+ @template.stylesheet_link_tag(@stylesheet)
136
+ }.should == "<!--[if PSP]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
137
+
138
+ @template.net_front_conditional {
139
+ @template.stylesheet_link_tag(@stylesheet)
140
+ }.should == "<!--[if NetF]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
141
+
142
+ @template.mobile_safari_conditional {
143
+ @template.stylesheet_link_tag(@stylesheet)
144
+ }.should == "<!--[if SafMob]>\n<link href=\"/stylesheets/ie.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n<![endif]-->"
145
+
146
+ end
147
+
148
+ end
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+
3
+ describe TopHat::TitleHelper do
4
+
5
+ before(:each) do
6
+ @template = ActionView::Base.new
7
+ end
8
+
9
+ context "saving a title" do
10
+ it "should save the title" do
11
+ @template.title('Kind of Blue').should == 'Kind of Blue'
12
+ end
13
+ end
14
+
15
+ context "displaying a title" do
16
+ it "should use the website name if title is empty" do
17
+ @template.title(:site => "Miles Davis").should == "<title>Miles Davis</title>"
18
+ end
19
+
20
+ it "should display the title if no website was specified" do
21
+ save_basic_title
22
+ @template.title().should == '<title>Kind of Blue</title>'
23
+ end
24
+
25
+ it "should use website before page by default" do
26
+ save_basic_title
27
+ @template.title(:site => "Miles Davis", :separator => '|').should == "<title>Miles Davis | Kind of Blue</title>"
28
+ end
29
+
30
+ it "should only use markup in titles in the view" do
31
+ save_basic_title("<b>Kind of Blue</b>").should == "<b>Kind of Blue</b>"
32
+ @template.title(:site => "Miles Davis", :separator => '|').should == "<title>Miles Davis | Kind of Blue</title>"
33
+ end
34
+
35
+ it "should use page before website if :reverse" do
36
+ save_basic_title
37
+ @template.title(:site => "Miles Davis", :reverse => true, :separator => '|').should == "<title>Kind of Blue | Miles Davis</title>"
38
+ end
39
+
40
+ it "should use website before page if :reverse and :reverse_on_default" do
41
+ @template.title(:site => "John Coltrane", :default => "My Favorite Things", :reverse => true, :reverse_on_default => false, :separator => '|').should == "<title>John Coltrane | My Favorite Things</title>"
42
+ end
43
+
44
+ it "should be lowercase if :lowercase" do
45
+ save_basic_title
46
+ @template.title(:site => "Miles Davis", :lowercase => true, :separator => '|').should == "<title>miles davis | kind of blue</title>"
47
+ end
48
+
49
+ it "should use custom separator if :separator" do
50
+ save_basic_title
51
+ @template.title(:site => "Miles Davis", :separator => "-").should == "<title>Miles Davis - Kind of Blue</title>"
52
+ @template.title(:site => "Miles Davis", :separator => ":").should == "<title>Miles Davis : Kind of Blue</title>"
53
+ @template.title(:site => "Miles Davis", :separator => "&mdash;").should == "<title>Miles Davis &amp;mdash; Kind of Blue</title>"
54
+ end
55
+
56
+ it "should use custom prefix and suffix if available" do
57
+ save_basic_title
58
+ @template.title(:site => "Miles Davis", :prefix => " |", :suffix => "| ", :separator => '|').should == "<title>Miles Davis ||| Kind of Blue</title>"
59
+ end
60
+
61
+ it "should collapse prefix if false" do
62
+ save_basic_title
63
+ @template.title(:site => "Miles Davis", :prefix => false, :separator => ":").should == "<title>Miles Davis: Kind of Blue</title>"
64
+ end
65
+
66
+ it "should collapse suffix if false" do
67
+ save_basic_title
68
+ @template.title(:site => "Miles Davis", :suffix => false, :separator => "~").should == "<title>Miles Davis ~Kind of Blue</title>"
69
+ end
70
+
71
+ it "should use all custom options if available" do
72
+ save_basic_title
73
+ custom_options = { :site => "Miles Davis", :prefix => " ", :suffix => " ", :separator => "-", :lowercase => true, :reverse => true }
74
+ @template.title(custom_options).should == "<title>kind of blue - miles davis</title>"
75
+ end
76
+
77
+ it "should use default one if title is not present or blank" do
78
+ save_basic_title("")
79
+ @template.title(:site => "Miles Davis", :default => "Round About Midnight", :separator => '|').should == "<title>Miles Davis | Round About Midnight</title>"
80
+ end
81
+
82
+ it "should allow custom options per title" do
83
+ save_custom_title
84
+ @template.title(:site => "Freddie Freeloader", :separator => '|').should == "<title>Kind of Blue | Freddie Freeloader</title>"
85
+ end
86
+ end
87
+
88
+ def save_basic_title(title='Kind of Blue')
89
+ @template.title(title)
90
+ end
91
+
92
+ def save_custom_title(title='Kind of Blue')
93
+ @template.title(title, { :reverse => true })
94
+ end
95
+
96
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+
3
+ describe TopHat do
4
+
5
+ context "loading the TopHat plugin" do
6
+ before(:each) do
7
+ @template = ActionView::Base.new
8
+ end
9
+
10
+ it "be mixed into ActionView::Base" do
11
+ ActionView::Base.included_modules.include?(TopHat::TitleHelper).should be_true
12
+ ActionView::Base.included_modules.include?(TopHat::MetaHelper).should be_true
13
+ ActionView::Base.included_modules.include?(TopHat::StylesheetHelper).should be_true
14
+ end
15
+
16
+ it "should respond to the 'title' helper" do
17
+ @template.respond_to?(:title).should be_true
18
+ end
19
+
20
+ it "should respond to the 'title' helper alias" do
21
+ @template.respond_to?(:t).should be_true
22
+ end
23
+
24
+ it "should respond to the 'description' helper" do
25
+ @template.respond_to?(:description).should be_true
26
+ end
27
+
28
+ it "should respond to the 'keywords' helper" do
29
+ @template.respond_to?(:keywords).should be_true
30
+ end
31
+
32
+ it "should respond to the 'ie_5_conditional' helper" do
33
+ @template.respond_to?(:ie_5_conditional).should be_true
34
+ end
35
+
36
+ it "should respond to the 'ie_5_5_conditional' helper" do
37
+ @template.respond_to?(:ie_5_5_conditional).should be_true
38
+ end
39
+
40
+ it "should respond to the 'ie_6_conditional' helper" do
41
+ @template.respond_to?(:ie_6_conditional).should be_true
42
+ end
43
+
44
+ it "should respond to the 'ie_7_conditional' helper" do
45
+ @template.respond_to?(:ie_7_conditional).should be_true
46
+ end
47
+
48
+ it "should respond to the 'ie_8_conditional' helper" do
49
+ @template.respond_to?(:ie_8_conditional).should be_true
50
+ end
51
+
52
+ it "should respond to the 'ie_9_conditional' helper" do
53
+ @template.respond_to?(:ie_9_conditional).should be_true
54
+ end
55
+
56
+ it "should respond to the 'opengraph' helper" do
57
+ @template.respond_to?(:opengraph).should be_true
58
+ end
59
+
60
+ it "should respond to the 'noindex' helper" do
61
+ @template.respond_to?(:noindex).should be_true
62
+ end
63
+
64
+ it "should respond to the 'nofollow' helper" do
65
+ @template.respond_to?(:nofollow).should be_true
66
+ end
67
+
68
+ it "should respond to the 'canonical' helper" do
69
+ @template.respond_to?(:canonical).should be_true
70
+ end
71
+ end
72
+
73
+ end
data/tophat.gemspec CHANGED
@@ -1,73 +1,31 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "tophat/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{tophat}
8
- s.version = "1.2.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Steve Agalloco"]
12
- s.date = %q{2010-08-29}
6
+ s.name = 'tophat'
7
+ s.version = TopHat::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Steve Agalloco"]
10
+ s.email = ['steve.agalloco@gmail.com']
11
+ s.homepage = "https://github.com/spagalloco/tophat"
13
12
  s.description = %q{simple view helpers for your layouts}
14
- s.email = %q{steve.agalloco@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.textile"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.textile",
24
- "Rakefile",
25
- "lib/tophat.rb",
26
- "lib/tophat/meta.rb",
27
- "lib/tophat/opengraph.rb",
28
- "lib/tophat/robots.rb",
29
- "lib/tophat/stylesheet.rb",
30
- "lib/tophat/title.rb",
31
- "lib/tophat/version.rb",
32
- "rails/init.rb",
33
- "test/helper.rb",
34
- "test/test_opengraph.rb",
35
- "test/test_robots.rb",
36
- "test/test_tophat.rb",
37
- "test/test_tophat_meta.rb",
38
- "test/test_tophat_stylesheets.rb",
39
- "test/test_tophat_title.rb",
40
- "tophat.gemspec"
41
- ]
42
- s.homepage = %q{http://github.com/spagalloco/tophat}
43
- s.rdoc_options = ["--charset=UTF-8"]
44
- s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.3.7}
46
- s.summary = %q{simple view helpers for your layouts}
47
- s.test_files = [
48
- "test/helper.rb",
49
- "test/test_opengraph.rb",
50
- "test/test_robots.rb",
51
- "test/test_tophat.rb",
52
- "test/test_tophat_meta.rb",
53
- "test/test_tophat_stylesheets.rb",
54
- "test/test_tophat_title.rb"
55
- ]
13
+ s.summary = %q{simple view helpers for your layouts}
56
14
 
57
- if s.respond_to? :specification_version then
58
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
59
- s.specification_version = 3
15
+ s.add_runtime_dependency('actionpack', '>= 3.0.0')
60
16
 
61
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
62
- s.add_runtime_dependency(%q<actionpack>, [">= 2.3.5"])
63
- s.add_development_dependency(%q<shoulda>, [">= 0"])
64
- else
65
- s.add_dependency(%q<actionpack>, [">= 2.3.5"])
66
- s.add_dependency(%q<shoulda>, [">= 0"])
67
- end
68
- else
69
- s.add_dependency(%q<actionpack>, [">= 2.3.5"])
70
- s.add_dependency(%q<shoulda>, [">= 0"])
71
- end
17
+ s.add_development_dependency('bundler', '~> 1.0')
18
+ s.add_development_dependency('rake', '~> 0.8')
19
+ s.add_development_dependency('rspec', '~> 2.5.0')
20
+ s.add_development_dependency('yard', '~> 0.6')
21
+ s.add_development_dependency('maruku', '~> 0.6')
22
+ s.add_development_dependency('simplecov', '~> 0.3')
23
+ s.add_development_dependency('shoulda', '>= 0')
24
+ s.add_development_dependency('rails', '>= 3.0.0')
25
+
26
+ s.files = `git ls-files`.split("\n")
27
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
28
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
29
+ s.require_paths = ["lib"]
72
30
  end
73
31