weppos-helperful 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -1,28 +1,35 @@
1
1
  = Changelog
2
2
 
3
3
 
4
+ == Release 0.5.1
5
+
6
+ * ADDED: `canonical_link_tag` helper provides the ability to generate Canonical Link tags used by search engine crawlers to determine the preferred url for a page (closes #255).
7
+
8
+ * CHANGED: run test against Rails 2.3.x but ensure compatibility with Rails 2.2.x.
9
+
10
+
4
11
  == Release 0.5.0
5
12
 
6
- * REMOVED: ContentHelper#sidebar method. It was nothing special and just a wrapper for a simple Rails execution.
13
+ * REMOVED: `sidebar` helper. It was nothing special and just a wrapper for a simple Rails execution.
7
14
 
8
15
 
9
16
  == Release 0.4.0
10
17
 
11
- * ADDED: javascript and stylesheet AssetTag Helpers.
18
+ * ADDED: `javascript` and `stylesheet` helpers.
12
19
 
13
20
  * FIXED: GitHub now requires the Manifest file to be included in the repos.
14
21
 
15
22
 
16
23
  == Release 0.3.1
17
24
 
18
- * FIXED: #javascript_content_for doesn't properly concat output when called with block (closes #183).
25
+ * FIXED: `javascript_content_for` doesn't properly concat output when called with block (closes #183).
19
26
 
20
27
 
21
28
  == Release 0.3.0
22
29
 
23
- * ADDED: Added #javascript_content_for helper. #javascript_content_for combines the features of #content_for and #javascript_tag (closes #149).
30
+ * ADDED: Added `javascript_content_for helper`. `javascript_content_for` combines the features of `content_for` and `javascript_tag` (closes #149).
24
31
 
25
- * FIXED: has_content? raises an error when has_content isn't initialized (closes #179).
32
+ * FIXED: `has_content?` raises an error when has_content isn't initialized (closes #179).
26
33
 
27
34
  * CHANGED: Changed status to alpha and removed development warning (closes #151).
28
35
 
data/README.rdoc CHANGED
@@ -3,6 +3,12 @@
3
3
  Helperful aims to be a collection of useful and reusable Rails helpers.
4
4
 
5
5
 
6
+ == Requirements
7
+
8
+ * Ruby >= 1.8.6
9
+ * Rails >= 2.2.x (tested up to Rails 2.3.3)
10
+
11
+
6
12
  == Plugin Installation
7
13
 
8
14
  === As a Gem
@@ -45,7 +51,7 @@ Don't forget to add the namespace when including an helper from your controller.
45
51
  end
46
52
 
47
53
 
48
- Moreover, the <tt>Helperful</tt> library provides a helpful method called <tt>helperful</tt>.
54
+ Moreover, the <tt>Helperful</tt> library provides a helpful method called <tt>helperful</tt>.
49
55
  It aliases the standard Rails <tt>ActionController::Base#helper</tt> method with the exception that it automatically prepends the <tt>helperful</tt> namespace when necessary.
50
56
 
51
57
  class MyController < ApplicationController
@@ -70,7 +76,7 @@ The following lines are equivalent:
70
76
 
71
77
 
72
78
  The <tt>helperful</tt> methods accepts any parameter accepted by the original <tt>helper</tt> method.
73
-
79
+
74
80
  helper 'helperful/title', 'helperful/affiliations'
75
81
  helperful :title, :affiliations
76
82
 
@@ -112,7 +118,7 @@ The <tt>tradedoubler_verification_tag</tt> helper method returns the site verifi
112
118
  This is your page content.
113
119
  </body>
114
120
  </html>
115
-
121
+
116
122
  # Will produce the following output.
117
123
  <html>
118
124
  <head>
@@ -132,7 +138,7 @@ The <tt>has_content?</tt> helper is a natural fulfillment for the original <tt>c
132
138
  <% content_for :foo do %>
133
139
  <div>This is a foo content.</div>
134
140
  <% end %>
135
-
141
+
136
142
  <% has_content? :foo # => true %>
137
143
  <% has_content? "foo" # => true %>
138
144
 
@@ -195,5 +201,5 @@ Author:: {Simone Carletti}[http://www.simonecarletti.com/] <weppos@weppos.net>
195
201
 
196
202
  == License
197
203
 
198
- Copyright (c) 2008-2009 Simone Carletti, Helperful is released under the MIT license.
204
+ Copyright (c) 2008-2009 Simone Carletti, Helperful is released under the MIT license.
199
205
 
data/Rakefile CHANGED
@@ -8,10 +8,6 @@ require 'helperful'
8
8
 
9
9
  PKG_NAME = ENV['PKG_NAME'] || Helperful::GEM
10
10
  PKG_VERSION = ENV['PKG_VERSION'] || Helperful::VERSION
11
- PKG_FILES = FileList.new("{lib,rails,tasks,test}/**/*") do |files|
12
- files.include %w(*.{rdoc,rb})
13
- files.include %w(Rakefile)
14
- end
15
11
  RUBYFORGE_PROJECT = nil
16
12
 
17
13
  if ENV['SNAPSHOT'].to_i == 1
@@ -23,19 +19,19 @@ Echoe.new(PKG_NAME, PKG_VERSION) do |p|
23
19
  p.author = "Simone Carletti"
24
20
  p.email = "weppos@weppos.net"
25
21
  p.summary = "A collection of useful Rails helpers."
22
+ p.url = "http://code.simonecarletti.com/helperful"
23
+ p.project = RUBYFORGE_PROJECT
26
24
  p.description = <<-EOD
27
25
  Helperful aims to be a collection of useful and reusable Rails helpers.
28
26
  EOD
29
- p.url = "http://code.simonecarletti.com/helperful"
30
- p.project = RUBYFORGE_PROJECT
31
27
 
32
28
  p.need_zip = true
33
- p.rcov_options = ["--main README.rdoc -x Rakefile -x mocha -x rcov"]
34
- p.rdoc_pattern = /^(lib|CHANGELOG.rdoc|README.rdoc|LICENSE.rdoc)/
35
29
 
36
- p.development_dependencies += ["rake >=0.8",
37
- "echoe >=3.1",
38
- "mocha >=0.9"]
30
+ p.development_dependencies += ["rake ~>0.8",
31
+ "echoe ~>3.1",
32
+ "mocha ~>0.9.7"]
33
+
34
+ p.rcov_options = ["-Itest -x mocha,rcov,Rakefile"]
39
35
  end
40
36
 
41
37
 
data/helperful.gemspec CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{helperful}
5
- s.version = "0.5.0"
5
+ s.version = "0.5.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Simone Carletti"]
9
- s.date = %q{2009-07-03}
9
+ s.date = %q{2009-08-20}
10
10
  s.description = %q{ Helperful aims to be a collection of useful and reusable Rails helpers.
11
11
  }
12
12
  s.email = %q{weppos@weppos.net}
13
- s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/helperful/affiliations_helper.rb", "lib/helperful/asset_tag_helper.rb", "lib/helperful/content_helper.rb", "lib/helperful/deprecations.rb", "lib/helperful/javascript_helper.rb", "lib/helperful/title_helper.rb", "lib/helperful/version.rb", "lib/helperful.rb", "LICENSE.rdoc", "README.rdoc"]
13
+ s.extra_rdoc_files = ["CHANGELOG.rdoc", "lib/helperful/affiliations_helper.rb", "lib/helperful/asset_tag_helper.rb", "lib/helperful/content_helper.rb", "lib/helperful/deprecations.rb", "lib/helperful/javascript_helper.rb", "lib/helperful/title_helper.rb", "lib/helperful/version.rb", "lib/helperful.rb", "LICENSE.rdoc", "README.rdoc", "tasks/helperful_tasks.rake"]
14
14
  s.files = ["CHANGELOG.rdoc", "helperful.gemspec", "init.rb", "install.rb", "lib/helperful/affiliations_helper.rb", "lib/helperful/asset_tag_helper.rb", "lib/helperful/content_helper.rb", "lib/helperful/deprecations.rb", "lib/helperful/javascript_helper.rb", "lib/helperful/title_helper.rb", "lib/helperful/version.rb", "lib/helperful.rb", "LICENSE.rdoc", "Manifest", "rails/init.rb", "Rakefile", "README.rdoc", "tasks/helperful_tasks.rake", "test/affiliations_helper_test.rb", "test/asset_tag_helper_test.rb", "test/content_helper_test.rb", "test/fixtures/content/has_content.html.erb", "test/fixtures/content/has_content_is_called_alone.html.erb", "test/fixtures/layouts/has_content.html.erb", "test/helperful_test.rb", "test/javascript_helper_test.rb", "test/test_helper.rb", "test/title_helper_test.rb", "uninstall.rb"]
15
15
  s.homepage = %q{http://code.simonecarletti.com/helperful}
16
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Helperful", "--main", "README.rdoc"]
@@ -24,17 +24,17 @@ Gem::Specification.new do |s|
24
24
  s.specification_version = 3
25
25
 
26
26
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
- s.add_development_dependency(%q<rake>, [">= 0.8"])
28
- s.add_development_dependency(%q<echoe>, [">= 3.1"])
29
- s.add_development_dependency(%q<mocha>, [">= 0.9"])
27
+ s.add_development_dependency(%q<rake>, ["~> 0.8"])
28
+ s.add_development_dependency(%q<echoe>, ["~> 3.1"])
29
+ s.add_development_dependency(%q<mocha>, ["~> 0.9.7"])
30
30
  else
31
- s.add_dependency(%q<rake>, [">= 0.8"])
32
- s.add_dependency(%q<echoe>, [">= 3.1"])
33
- s.add_dependency(%q<mocha>, [">= 0.9"])
31
+ s.add_dependency(%q<rake>, ["~> 0.8"])
32
+ s.add_dependency(%q<echoe>, ["~> 3.1"])
33
+ s.add_dependency(%q<mocha>, ["~> 0.9.7"])
34
34
  end
35
35
  else
36
- s.add_dependency(%q<rake>, [">= 0.8"])
37
- s.add_dependency(%q<echoe>, [">= 3.1"])
38
- s.add_dependency(%q<mocha>, [">= 0.9"])
36
+ s.add_dependency(%q<rake>, ["~> 0.8"])
37
+ s.add_dependency(%q<echoe>, ["~> 3.1"])
38
+ s.add_dependency(%q<mocha>, ["~> 0.9.7"])
39
39
  end
40
40
  end
@@ -37,6 +37,33 @@ module Helperful
37
37
  base.included_modules.include?(ActionView::Helpers::AssetTagHelper) || include(ActionView::Helpers::AssetTagHelper)
38
38
  end
39
39
  end
40
+
41
+ # Returns a link tag that search engine crawlers may use to determine
42
+ # the preferred version of a page with multiple URLs.
43
+ #
44
+ # More details about the canonical link tag are available
45
+ # at the following sources:
46
+ # * http://www.mattcutts.com/blog/canonical-link-tag/
47
+ # * http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
48
+ #
49
+ # Control the link options in url_for format using the +url_options+.
50
+ #
51
+ # ==== Examples
52
+ #
53
+ # canonical_link_tag
54
+ # # => <link rel="canonical" href=http://www.currenthost.com/controller/action" />
55
+ # canonical_link_tag(:action => "show")
56
+ # # => <link rel="canonical" href=http://www.currenthost.com/controller/show" />
57
+ # canonical_link_tag("http://www.example.com/product.php?item=swedish-fish")
58
+ # # => <link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish" />
59
+ #
60
+ def canonical_link_tag(url_options = {})
61
+ tag(
62
+ "link",
63
+ "rel" => "canonical",
64
+ "href" => url_options.is_a?(Hash) ? url_for(url_options.merge(:only_path => false)) : url_options
65
+ )
66
+ end
40
67
 
41
68
  # Converts given +files+ in javascript include statements
42
69
  # and appends them in the head section of the page.
@@ -20,7 +20,7 @@ module Helperful
20
20
  module Version
21
21
  MAJOR = 0
22
22
  MINOR = 5
23
- TINY = 0
23
+ TINY = 1
24
24
 
25
25
  STRING = [MAJOR, MINOR, TINY].join('.')
26
26
  end
@@ -7,36 +7,71 @@ class AssetTagHelperTest < ActionView::TestCase
7
7
  ActionController::Base.perform_caching = false
8
8
  ActionController::Base.asset_host = nil
9
9
  ENV.delete('RAILS_ASSET_ID')
10
+
11
+ @controller = Class.new do
12
+ attr_accessor :request
13
+ def url_for(*args)
14
+ case arg = args.first
15
+ when String
16
+ arg
17
+ when Hash
18
+ "http://www.example.com?#{arg.to_param}"
19
+ else
20
+ "http://www.example.com"
21
+ end
22
+ end
23
+ end.new
24
+
25
+ @request = Class.new do
26
+ def protocol() 'http://' end
27
+ def ssl?() false end
28
+ def host_with_port() 'localhost' end
29
+ end.new
30
+
31
+ @controller.request = @request
10
32
  end
11
-
12
-
33
+
34
+
35
+ CanonicalToTag = {
36
+ %(canonical_link_tag) => %(<link href="http://www.example.com?only_path=false" rel="canonical" />),
37
+ %(canonical_link_tag(:action => "show")) => %(<link href="http://www.example.com?action=show&amp;only_path=false" rel="canonical" />),
38
+ %(canonical_link_tag("http://localhost/show")) => %(<link href="http://localhost/show" rel="canonical" />),
39
+ }
40
+
41
+ test "canonical_link_tag" do
42
+ CanonicalToTag.each do |method, tag|
43
+ assert_dom_equal(tag, eval(method))
44
+ end
45
+ end
46
+
47
+
13
48
  JavascriptToTag = {
14
49
  %(javascript) => %(javascript_include_tag),
15
50
  %(javascript(["foo", "bar"])) => %(javascript_include_tag(["foo", "bar"])),
16
51
  %(javascript("foo", "bar")) => %(javascript_include_tag("foo", "bar")),
17
52
  %(javascript("foo", "bar", :cache => true)) => %(javascript_include_tag("foo", "bar", :cache => true)),
18
53
  }
19
-
54
+
20
55
  test "javascript" do
21
56
  JavascriptToTag.each do |method, content|
22
57
  expects(:content_for).with(:head, eval(content))
23
58
  eval(method)
24
59
  end
25
60
  end
26
-
27
-
61
+
62
+
28
63
  StylesheetToTag = {
29
64
  %(stylesheet) => %(stylesheet_link_tag),
30
65
  %(stylesheet(["foo", "bar"])) => %(stylesheet_link_tag(["foo", "bar"])),
31
66
  %(stylesheet("foo", "bar")) => %(stylesheet_link_tag("foo", "bar")),
32
67
  %(stylesheet("foo", "bar", :cache => true)) => %(stylesheet_link_tag("foo", "bar", :cache => true)),
33
68
  }
34
-
69
+
35
70
  test "stylesheet" do
36
71
  StylesheetToTag.each do |method, content|
37
72
  expects(:content_for).with(:head, eval(content))
38
73
  eval(method)
39
74
  end
40
75
  end
41
-
76
+
42
77
  end
@@ -20,8 +20,11 @@ end
20
20
  ContentController.view_paths = [ File.dirname(__FILE__) + "/fixtures/" ]
21
21
 
22
22
 
23
- class ContentTest < ActiveSupport::TestCase
24
-
23
+ class ContentTest < ActionController::TestCase
24
+
25
+ # Compatibility workaround for Rails ~> 2.2.0
26
+ tests ContentController
27
+
25
28
  def setup
26
29
  @controller = ContentController.new
27
30
  @request = ActionController::TestRequest.new
data/test/test_helper.rb CHANGED
@@ -16,7 +16,14 @@
16
16
 
17
17
 
18
18
  require 'rubygems'
19
- gem 'rails', '2.2.2'
19
+ gem 'rails', '2.3.3'
20
+ gem 'mocha', '0.9.7'
21
+
22
+ # Remember! Due to some Mocha internal changes,
23
+ # Rails 2.2.x requires Mocha 0.9.5 and
24
+ # Rails 2.3.x requires Mocha 0.9.7
25
+ # gem 'rails', '2.2.2'
26
+ # gem 'mocha', '0.9.5'
20
27
 
21
28
  require 'mocha'
22
29
  require 'test/unit'
@@ -35,5 +42,6 @@ RAILS_ENV = 'test' unless defined? RAILS_ENV
35
42
  ActionController::Base.logger = nil
36
43
  ActionController::Routing::Routes.reload rescue nil
37
44
 
45
+
38
46
  # Unit tests for Helpers are based on unit tests created and developed by Rails core team.
39
47
  # See action_pack/test/abstract_unit for more details.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weppos-helperful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Carletti
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-03 00:00:00 -07:00
12
+ date: 2009-08-20 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -18,7 +18,7 @@ dependencies:
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - ">="
21
+ - - ~>
22
22
  - !ruby/object:Gem::Version
23
23
  version: "0.8"
24
24
  version:
@@ -28,7 +28,7 @@ dependencies:
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: "3.1"
34
34
  version:
@@ -38,9 +38,9 @@ dependencies:
38
38
  version_requirement:
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
41
+ - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: "0.9"
43
+ version: 0.9.7
44
44
  version:
45
45
  description: Helperful aims to be a collection of useful and reusable Rails helpers.
46
46
  email: weppos@weppos.net
@@ -60,6 +60,7 @@ extra_rdoc_files:
60
60
  - lib/helperful.rb
61
61
  - LICENSE.rdoc
62
62
  - README.rdoc
63
+ - tasks/helperful_tasks.rake
63
64
  files:
64
65
  - CHANGELOG.rdoc
65
66
  - helperful.gemspec
@@ -92,6 +93,7 @@ files:
92
93
  - uninstall.rb
93
94
  has_rdoc: false
94
95
  homepage: http://code.simonecarletti.com/helperful
96
+ licenses:
95
97
  post_install_message:
96
98
  rdoc_options:
97
99
  - --line-numbers
@@ -117,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
119
  requirements: []
118
120
 
119
121
  rubyforge_project:
120
- rubygems_version: 1.2.0
122
+ rubygems_version: 1.3.5
121
123
  signing_key:
122
124
  specification_version: 3
123
125
  summary: A collection of useful Rails helpers.