breadcrumbs_on_rails 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,13 @@
1
1
  = Changelog
2
2
 
3
3
 
4
+ == Release 2.0.0
5
+
6
+ * FIXED: Invalid documentation for Element target in the controller class context (closes #2)
7
+
8
+ * CHANGED: Upgraded to Rails 3
9
+
10
+
4
11
  == Release 1.0.1
5
12
 
6
13
  * FIXED: Since the removal of rails/init.rb in 7278376ab77651e540e39552384ad9677e32ff7e, Rails fails to load the helpers.
@@ -1,4 +1,6 @@
1
- Copyright (c) 2009-2010 Simone Carletti
1
+ Copyright (c) 2009-2011 Simone Carletti
2
+
3
+ MIT License
2
4
 
3
5
  Permission is hereby granted, free of charge, to any person obtaining
4
6
  a copy of this software and associated documentation files (the
@@ -1,61 +1,42 @@
1
1
  = Breadcrumbs On Rails
2
2
 
3
- BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.
3
+ *BreadcrumbsOnRails* is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.
4
4
  It provides helpers for creating navigation elements with a flexible interface.
5
5
 
6
6
 
7
7
  == Requirements
8
8
 
9
- * Ruby >= 1.8.6
10
- * Rails 2.2.x, 2.3.x or 3.0 (see section Rails 3 below)
9
+ * Rails 3
11
10
 
11
+ Please note
12
12
 
13
- == Rails Installation
13
+ * BreadcrumbsOnRails 2.x requires Rails 3. Use BreadcrumbsOnRails 1.x with Rails 2.
14
+ * BreadcrumbsOnRails doesn't work with Rails 2.1 or lower.
14
15
 
15
- === As a Gem
16
16
 
17
- This is the preferred way to install BreadcrumbsOnRails and the best way if you want install a stable version.
18
- The GEM is hosted on {RubyGems}[http://rubygems.org/gems/breadcrumbs_on_rails].
17
+ == Installation
19
18
 
20
- $ gem install breadcrumbs_on_rails
21
-
22
- ==== Rails 2.2.x and 2.3.x
23
-
24
- With Rails 2.2.x and 2.3.x, you need to specify the GEM dependency in your <tt>environment.rb</tt> file so that Rails will automatically include the library on startup.
19
+ "RubyGems":http://rubygems.org is the preferred way to install *BreadcrumbsOnRails* and the best way if you want install a stable version.
25
20
 
26
- Rails::Initializer.run do |config|
27
-
28
- # other configurations
29
- # ...
30
-
31
- config.gem "breadcrumbs_on_rails"
32
-
33
- end
34
-
35
- ==== Rails 3
21
+ $ gem install breadcrumbs_on_rails
36
22
 
37
- With Rails 3, you need to specify the GEM dependency in your <tt>Gemfile</tt> file so that Bundler can resolve, download and install the library.
23
+ Specify the Gem dependency in the "Bundler":http://gembundler.com Gemfile.
38
24
 
39
25
  gem "breadcrumbs_on_rails"
40
26
 
41
-
42
- === As a Plugin
43
-
44
- This is the preferred way if you want to live on the edge and install a development version.
45
-
46
- $ script/plugin install git://github.com/weppos/breadcrumbs_on_rails.git
27
+ Use "Bundler":http://gembundler.com and the ":git option":http://gembundler.com/v1.0/git.html if you want to grab the latest version from the Git repository.
47
28
 
48
29
 
49
30
  == Usage
50
31
 
51
32
  Creating a breadcrumb navigation menu in your Rails app using BreadcrumbsOnRails is really straightforward.
52
33
 
53
- In your controller, call <tt>add_breadcrumb</tt> to push a new element on the breadcrumb stack. <tt>add_breadcrumb</tt> requires two arguments: the name of the breadcrumb and the target path.
34
+ In your controller, call <tt>add_breadcrumb</tt> to push a new element on the breadcrumb stack. <tt>add_breadcrumb</tt> requires two arguments: the name of the breadcrumb and the target path. See the section "Breadcrumb Element" for more details about name and target class types.
54
35
 
55
36
  class MyController
56
37
 
57
- add_breadcrumb "home", root_path
58
- add_breadcrumb "my", my_path
38
+ add_breadcrumb "home", :root_path
39
+ add_breadcrumb "my", :my_path
59
40
 
60
41
  def index
61
42
  # ...
@@ -98,7 +79,6 @@ When you call <tt>add_breadcrumb</tt>, the method automatically creates a new <t
98
79
  * Proc
99
80
  * String
100
81
 
101
-
102
82
  ==== Symbol
103
83
 
104
84
  If the value is a Symbol, the library calls the corresponding method defined in the same context the and sets the <tt>Element</tt> attribute to the returned value.
@@ -107,7 +87,7 @@ If the value is a Symbol, the library calls the corresponding method defined in
107
87
 
108
88
  # The Name is set to the value returned by
109
89
  # the :root_name method.
110
- add_breadcrumb :root_name, root_path
90
+ add_breadcrumb :root_name, "/"
111
91
 
112
92
  protected
113
93
 
@@ -126,19 +106,19 @@ If the value is a Proc, the library calls the proc passing the current view cont
126
106
  # The Name is set to the value returned by
127
107
  # the :root_name method.
128
108
  add_breadcrumb Proc.new { |c| c.my_helper_method },
129
- root_path
109
+ "/"
130
110
 
131
111
  end
132
112
 
133
113
  ==== String
134
114
 
135
- If the value is a Proc, the library sets the <tt>Element</tt> attribute to the string value.
115
+ If the value is a String, the library sets the <tt>Element</tt> attribute to the string value.
136
116
 
137
117
  class MyController
138
118
 
139
119
  # The Name is set to the value returned by
140
120
  # the :root_name method.
141
- add_breadcrumb "homepage", "http://example.com/"
121
+ add_breadcrumb "homepage", "/"
142
122
 
143
123
  end
144
124
 
@@ -151,12 +131,12 @@ In fact, behind the scenes this method uses a <tt>before_filter</tt> to store th
151
131
  Taking advantage of Rails filter options, you can restrict a tab to a selected group of actions in the same controller.
152
132
 
153
133
  class PostsController < ApplicationController
154
- add_breadcrumb "admin", admin_path
155
- add_breadcrumb "posts, posts_path, :only => %w(index show)
134
+ add_breadcrumb "admin", :admin_path
135
+ add_breadcrumb "posts", :posts_path, :only => %w(index show)
156
136
  end
157
137
 
158
138
  class ApplicationController < ActionController::Base
159
- add_breadcrumb "admin", admin_path, :if => :admin_controller?
139
+ add_breadcrumb "admin", :admin_path, :if => :admin_controller?
160
140
 
161
141
  def admin_controller?
162
142
  self.class.name =~ /^Admin(::|Controller)/
@@ -188,32 +168,15 @@ For example, if you want to localize your menu, define a new breadcrumbs node in
188
168
  In your controller, use the <tt>I18n.t</tt> method.
189
169
 
190
170
  class PostsController < ApplicationController
191
- add_breadcrumb I18n.t("breadcrumbs.first"), first_path
192
- add_breadcrumb I18n.t("breadcrumbs.second"), second_path, :only => %w(second)
193
- add_breadcrumb I18n.t("breadcrumbs.third"), third_path, :only => %w(third)
171
+ add_breadcrumb I18n.t("breadcrumbs.first"), :first_path
172
+ add_breadcrumb I18n.t("breadcrumbs.second"), :second_path, :only => %w(second)
173
+ add_breadcrumb I18n.t("breadcrumbs.third"), :third_path, :only => %w(third)
194
174
  end
195
175
 
196
176
  class ApplicationController < ActionController::Base
197
- add_breadcrumb I18n.t("breadcrumbs.homepage"), root_path
198
- end
199
-
200
- === Rails 3
201
-
202
- This plugin is "partially" compatible with Rails 3.
203
- The first attempt to create an unique release compatible with both Rails 2.x and Rails 3 failed
204
- due to some Rails 3 internal changes
205
- (see http://github.com/weppos/breadcrumbs_on_rails/commit/b25885ceb293193b6b264177769f003985df3bff).
206
-
207
- This version is specifically packaged and tested against Rails 2.3.x,
208
- but you can use it in a Rails 3 application by manually including the
209
- <tt>BreadcrumbsOnRails::ControllerMixin</tt> mixin in your <tt>ApplicationController</tt>.
210
-
211
- class ApplicationController < ActionController::Base
212
- include BreadcrumbsOnRails::ControllerMixin
177
+ add_breadcrumb I18n.t("breadcrumbs.homepage"), :root_path
213
178
  end
214
179
 
215
- A Rails 3 version will be available very soon.
216
-
217
180
 
218
181
  == Author
219
182
 
@@ -222,11 +185,13 @@ A Rails 3 version will be available very soon.
222
185
 
223
186
  == Resources
224
187
 
225
- * {Homepage}[http://github.com/weppos/breadcrumbs_on_rails]
188
+ * {Homepage}[http://www.simonecarletti.com/code/breadcrumbs_on_rails]
189
+ * {Source}[http://github.com/weppos/breadcrumbs_on_rails]
190
+ * {API Documentation}[http://www.simonecarletti.com/code/breadcrumbs_on_rails/api/]
226
191
  * {Bugs & Features}[http://github.com/weppos/breadcrumbs_on_rails/issues]
227
192
 
228
193
 
229
194
  == License
230
195
 
231
- Copyright (c) 2009-2010 Simone Carletti, BreadcrumbsOnRails is released under the MIT license.
232
-
196
+ BreadCrumbsOnRails is Copyright (c) 2009-2011 Simone Carletti.
197
+ This is Free Software distributed under the MIT license.
data/Rakefile CHANGED
@@ -1,48 +1,97 @@
1
- $:.unshift(File.dirname(__FILE__) + "/lib")
2
-
3
1
  require 'rubygems'
4
- require 'rake'
5
- require 'echoe'
6
- require 'breadcrumbs_on_rails'
2
+ require 'bundler'
3
+ require 'rake/testtask'
4
+ require 'rake/gempackagetask'
5
+ require 'hanna/rdoctask'
7
6
 
7
+ $:.unshift(File.dirname(__FILE__) + "/lib")
8
+ require 'breadcrumbs_on_rails/version'
8
9
 
9
- PKG_NAME = ENV['PKG_NAME'] || BreadcrumbsOnRails::GEM
10
+
11
+ PKG_NAME = ENV['PKG_NAME'] || "breadcrumbs_on_rails"
10
12
  PKG_VERSION = ENV['PKG_VERSION'] || BreadcrumbsOnRails::VERSION
11
- RUBYFORGE_PROJECT = nil
12
13
 
13
14
  if ENV['SNAPSHOT'].to_i == 1
14
15
  PKG_VERSION << "." << Time.now.utc.strftime("%Y%m%d%H%M%S")
15
16
  end
16
17
 
17
18
 
18
- Echoe.new(PKG_NAME, PKG_VERSION) do |p|
19
- p.author = "Simone Carletti"
20
- p.email = "weppos@weppos.net"
21
- p.summary = "A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation."
22
- p.url = "http://code.simonecarletti.com/breadonrails"
23
- p.description = <<-EOD
24
- BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing \
25
- a breadcrumb navigation for a Rails project. \
26
- It provides helpers for creating navigation elements with a flexible interface.
27
- EOD
28
- p.project = RUBYFORGE_PROJECT
19
+ # Run test by default.
20
+ task :default => :test
21
+
22
+ # This builds the actual gem. For details of what all these options
23
+ # mean, and other ones you can add, check the documentation here:
24
+ #
25
+ # http://rubygems.org/read/chapter/20
26
+ #
27
+ spec = Gem::Specification.new do |s|
28
+ s.name = PKG_NAME
29
+ s.version = PKG_VERSION
30
+ s.summary = "A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation."
31
+ s.description = "BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project."
29
32
 
30
- p.need_zip = true
33
+ s.author = "Simone Carletti"
34
+ s.email = "weppos@weppos.net"
35
+ s.homepage = "http://www.simonecarletti.com/code/breadcrumbs_on_rails"
31
36
 
32
- p.development_dependencies += ["rake ~>0.8.7",
33
- "echoe ~>3.2.0"]
37
+ # You should probably have a README of some kind. Change the filename
38
+ # as appropriate
39
+ s.extra_rdoc_files = Dir.glob("*.rdoc")
40
+ s.rdoc_options = %w( --main README.rdoc )
41
+
42
+ # Add any extra files to include in the gem (like your README)
43
+ s.files = %w( Rakefile LICENSE init.rb ) + Dir.glob("*.{rdoc,gemspec}") + Dir.glob("{lib,test,rails}/**/*")
44
+ s.require_paths = %w( lib )
45
+
46
+ s.add_development_dependency("bundler")
47
+ s.add_development_dependency("hanna")
48
+ s.add_development_dependency("rails", "~> 3.0.0")
49
+ s.add_development_dependency("mocha", "~> 0.9.10")
50
+ end
51
+
52
+ # This task actually builds the gem. We also regenerate a static
53
+ # .gemspec file, which is useful if something (i.e. GitHub) will
54
+ # be automatically building a gem for this project. If you're not
55
+ # using GitHub, edit as appropriate.
56
+ Rake::GemPackageTask.new(spec) do |pkg|
57
+ pkg.gem_spec = spec
58
+ end
59
+
60
+ desc "Build the gemspec file #{spec.name}.gemspec"
61
+ task :gemspec do
62
+ file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
63
+ File.open(file, "w") {|f| f << spec.to_ruby }
64
+ end
65
+
66
+ desc "Remove any temporary products, including gemspec."
67
+ task :clean => [:clobber] do
68
+ rm "#{spec.name}.gemspec"
69
+ end
70
+
71
+ desc "Remove any generated file"
72
+ task :clobber => [:clobber_rdoc, :clobber_rcov, :clobber_package]
73
+
74
+ desc "Package the library and generates the gemspec"
75
+ task :package => [:gemspec]
76
+
77
+
78
+ # Run all the tests in the /test folder
79
+ Rake::TestTask.new do |t|
80
+ t.libs << "test"
81
+ t.test_files = FileList["test/**/*_test.rb"]
82
+ t.verbose = true
83
+ end
34
84
 
35
- p.rcov_options = ["-Itest -x Rakefile,rcov,json,mocha,rack,actionpack,activesupport"]
85
+ # Generate documentation
86
+ Rake::RDocTask.new do |rd|
87
+ rd.main = "README.rdoc"
88
+ rd.rdoc_files.include("*.rdoc", "lib/**/*.rb")
89
+ rd.rdoc_dir = "rdoc"
36
90
  end
37
91
 
38
92
 
39
- begin
40
- require 'code_statistics'
41
- desc "Show library's code statistics"
42
- task :stats do
43
- CodeStatistics.new(["BreadcrumbsOnRails", "lib"],
44
- ["Tests", "test"]).to_s
45
- end
46
- rescue LoadError
47
- puts "CodeStatistics (Rails) is not available"
93
+ desc "Publish documentation to the site"
94
+ task :publish_rdoc => [:clobber_rdoc, :rdoc] do
95
+ ENV["username"] || raise(ArgumentError, "Missing ssh username")
96
+ sh "rsync -avz --delete rdoc/ #{ENV["username"]}@code:/var/www/apps/code/#{PKG_NAME}/api"
48
97
  end
@@ -2,36 +2,39 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{breadcrumbs_on_rails}
5
- s.version = "1.0.1"
5
+ s.version = "2.0.0"
6
6
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Simone Carletti"]
9
- s.date = %q{2010-05-09}
10
- s.description = %q{ BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project. It provides helpers for creating navigation elements with a flexible interface.
11
- }
9
+ s.date = %q{2011-04-30}
10
+ s.description = %q{BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.}
12
11
  s.email = %q{weppos@weppos.net}
13
- s.extra_rdoc_files = ["CHANGELOG.rdoc", "LICENSE.rdoc", "README.rdoc", "lib/breadcrumbs_on_rails.rb", "lib/breadcrumbs_on_rails/breadcrumbs.rb", "lib/breadcrumbs_on_rails/controller_mixin.rb", "lib/breadcrumbs_on_rails/version.rb"]
14
- s.files = ["CHANGELOG.rdoc", "LICENSE.rdoc", "Manifest", "README.rdoc", "Rakefile", "init.rb", "lib/breadcrumbs_on_rails.rb", "lib/breadcrumbs_on_rails/breadcrumbs.rb", "lib/breadcrumbs_on_rails/controller_mixin.rb", "lib/breadcrumbs_on_rails/version.rb", "rails/init.rb", "test/breadcrumbs_on_rails_test.rb", "test/builder_test.rb", "test/element_test.rb", "test/simple_builder_test.rb", "test/test_helper.rb", "breadcrumbs_on_rails.gemspec"]
15
- s.homepage = %q{http://code.simonecarletti.com/breadonrails}
16
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Breadcrumbs_on_rails", "--main", "README.rdoc"]
12
+ s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.rdoc"]
13
+ s.files = ["Rakefile", "LICENSE", "init.rb", "CHANGELOG.rdoc", "README.rdoc", "breadcrumbs_on_rails.gemspec", "lib/breadcrumbs_on_rails", "lib/breadcrumbs_on_rails/breadcrumbs.rb", "lib/breadcrumbs_on_rails/controller_mixin.rb", "lib/breadcrumbs_on_rails/railtie.rb", "lib/breadcrumbs_on_rails/version.rb", "lib/breadcrumbs_on_rails.rb", "test/test_helper.rb", "test/unit", "test/unit/breadcrumbs_on_rails_test.rb", "test/unit/builder_test.rb", "test/unit/element_test.rb", "test/unit/simple_builder_test.rb"]
14
+ s.homepage = %q{http://www.simonecarletti.com/code/breadcrumbs_on_rails}
15
+ s.rdoc_options = ["--main", "README.rdoc"]
17
16
  s.require_paths = ["lib"]
18
- s.rubygems_version = %q{1.3.6}
17
+ s.rubygems_version = %q{1.7.2}
19
18
  s.summary = %q{A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.}
20
- s.test_files = ["test/breadcrumbs_on_rails_test.rb", "test/builder_test.rb", "test/element_test.rb", "test/simple_builder_test.rb", "test/test_helper.rb"]
21
19
 
22
20
  if s.respond_to? :specification_version then
23
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
21
  s.specification_version = 3
25
22
 
26
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
- s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
28
- s.add_development_dependency(%q<echoe>, ["~> 3.2.0"])
23
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
24
+ s.add_development_dependency(%q<bundler>, [">= 0"])
25
+ s.add_development_dependency(%q<hanna>, [">= 0"])
26
+ s.add_development_dependency(%q<rails>, ["~> 3.0.0"])
27
+ s.add_development_dependency(%q<mocha>, ["~> 0.9.10"])
29
28
  else
30
- s.add_dependency(%q<rake>, ["~> 0.8.7"])
31
- s.add_dependency(%q<echoe>, ["~> 3.2.0"])
29
+ s.add_dependency(%q<bundler>, [">= 0"])
30
+ s.add_dependency(%q<hanna>, [">= 0"])
31
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
32
+ s.add_dependency(%q<mocha>, ["~> 0.9.10"])
32
33
  end
33
34
  else
34
- s.add_dependency(%q<rake>, ["~> 0.8.7"])
35
- s.add_dependency(%q<echoe>, ["~> 3.2.0"])
35
+ s.add_dependency(%q<bundler>, [">= 0"])
36
+ s.add_dependency(%q<hanna>, [">= 0"])
37
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
38
+ s.add_dependency(%q<mocha>, ["~> 0.9.10"])
36
39
  end
37
40
  end
data/init.rb CHANGED
@@ -1 +1 @@
1
- require File.join(File.dirname(__FILE__), 'rails', 'init')
1
+ require 'breadcrumbs_on_rails'
@@ -10,19 +10,19 @@
10
10
  # License:: MIT License
11
11
  #
12
12
  #--
13
- # SVN: $Id$
13
+ #
14
14
  #++
15
15
 
16
16
 
17
17
  require 'breadcrumbs_on_rails/controller_mixin'
18
18
  require 'breadcrumbs_on_rails/breadcrumbs'
19
19
  require 'breadcrumbs_on_rails/version'
20
+ require 'breadcrumbs_on_rails/railtie'
20
21
 
21
22
 
22
23
  module BreadcrumbsOnRails
23
24
 
24
25
  NAME = 'Breadcrumbs on Rails'
25
26
  GEM = 'breadcrumbs_on_rails'
26
- AUTHORS = ['Simone Carletti <weppos@weppos.net>']
27
27
 
28
28
  end
@@ -10,7 +10,7 @@
10
10
  # License:: MIT License
11
11
  #
12
12
  #--
13
- # SVN: $Id$
13
+ #
14
14
  #++
15
15
 
16
16
 
@@ -26,20 +26,16 @@ module BreadcrumbsOnRails
26
26
  # To create a custom Builder, just extend this class
27
27
  # and implement the following abstract methods:
28
28
  #
29
- # render::
30
- # Renders and returns the collection of navigation elements
29
+ # * <tt>#render</tt>: Renders and returns the collection of navigation elements
31
30
  #
32
31
  class Builder
33
32
 
34
33
  # Initializes a new Builder with <tt>context</tt>,
35
34
  # <tt>element</tt> and <tt>options</tt>.
36
35
  #
37
- # context::
38
- # The view context, that is current Rails Template instance
39
- # elements::
40
- # The collection of Elements
41
- # options::
42
- # Hash with optional prefereces or settings to customize the rendering behavior
36
+ # * <tt>context</tt>: The view context, that is current Rails Template instance
37
+ # * <tt>elements</tt>: The collection of Elements
38
+ # * <tt>options</tt>: Hash with optional prefereces or settings to customize the rendering behavior
43
39
  #
44
40
  def initialize(context, elements, options = {})
45
41
  @context = context
@@ -49,10 +45,7 @@ module BreadcrumbsOnRails
49
45
 
50
46
  # Renders Elements and returns the Breadcrumb navigation for the view.
51
47
  #
52
- # ==== Raises
53
- #
54
- # NotImplemented:: you should implement this method in your custom Builder.
55
- #
48
+ # Raises <tt>NotImplemented</tt>: you should implement this method in your custom Builder.
56
49
  def render
57
50
  raise NotImplementedError
58
51
  end
@@ -96,7 +89,7 @@ module BreadcrumbsOnRails
96
89
  #
97
90
  # The SimpleBuilder accepts a limited set of options.
98
91
  # If you need more flexibility, create a custom Builder and
99
- # pass the option :builder => BuilderClass to the render_breadcrumbs helper method.
92
+ # pass the option :builder => BuilderClass to the <tt>render_breadcrumbs</tt> helper method.
100
93
  #
101
94
  class SimpleBuilder < Builder
102
95
 
@@ -120,8 +113,7 @@ module BreadcrumbsOnRails
120
113
 
121
114
  # = Element
122
115
  #
123
- # Represents a navigation element (probably a breadcrumb level)
124
- # in the breadcrumb collection.
116
+ # Represents a navigation element in the breadcrumb collection.
125
117
  #
126
118
  class Element
127
119
 
@@ -133,7 +125,7 @@ module BreadcrumbsOnRails
133
125
  end
134
126
 
135
127
  end
136
-
128
+
137
129
  end
138
-
139
- end
130
+
131
+ end
@@ -10,22 +10,20 @@
10
10
  # License:: MIT License
11
11
  #
12
12
  #--
13
- # SVN: $Id$
13
+ #
14
14
  #++
15
15
 
16
16
 
17
17
  module BreadcrumbsOnRails
18
18
 
19
19
  module ControllerMixin
20
+ extend ActiveSupport::Concern
20
21
 
21
- def self.included(base)
22
- base.extend ClassMethods
23
- base.send :helper, HelperMethods
24
- base.class_eval do
25
- include InstanceMethods
26
- helper HelperMethods
27
- helper_method :add_breadcrumb, :breadcrumbs
28
- end
22
+ included do
23
+ extend ClassMethods
24
+ include InstanceMethods
25
+ helper HelperMethods
26
+ helper_method :add_breadcrumb, :breadcrumbs
29
27
  end
30
28
 
31
29
  module Utils
@@ -40,14 +38,14 @@ module BreadcrumbsOnRails
40
38
 
41
39
  # This is an horrible method with an horrible name.
42
40
  #
43
- # convert_to_set_of_strings(nil, [:foo, :bar])
44
- # # => nil
45
- # convert_to_set_of_strings(true, [:foo, :bar])
46
- # # => ["foo", "bar"]
47
- # convert_to_set_of_strings(:foo, [:foo, :bar])
48
- # # => ["foo"]
49
- # convert_to_set_of_strings([:foo, :bar, :baz], [:foo, :bar])
50
- # # => ["foo", "bar", "baz"]
41
+ # convert_to_set_of_strings(nil, [:foo, :bar])
42
+ # # => nil
43
+ # convert_to_set_of_strings(true, [:foo, :bar])
44
+ # # => ["foo", "bar"]
45
+ # convert_to_set_of_strings(:foo, [:foo, :bar])
46
+ # # => ["foo"]
47
+ # convert_to_set_of_strings([:foo, :bar, :baz], [:foo, :bar])
48
+ # # => ["foo", "bar", "baz"]
51
49
  #
52
50
  def self.convert_to_set_of_strings(value, keys)
53
51
  if value == true
@@ -92,9 +90,9 @@ module BreadcrumbsOnRails
92
90
 
93
91
  def render_breadcrumbs(options = {}, &block)
94
92
  builder = (options.delete(:builder) || Breadcrumbs::SimpleBuilder).new(self, breadcrumbs, options)
95
- content = builder.render
93
+ content = builder.render.html_safe
96
94
  if block_given?
97
- concat(capture(content, &block))
95
+ capture(content, &block)
98
96
  else
99
97
  content
100
98
  end
@@ -103,5 +101,5 @@ module BreadcrumbsOnRails
103
101
  end
104
102
 
105
103
  end
106
-
104
+
107
105
  end
@@ -0,0 +1,28 @@
1
+ #
2
+ # = Breadcrumbs On Rails
3
+ #
4
+ # A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
5
+ #
6
+ #
7
+ # Category:: Rails
8
+ # Package:: BreadcrumbsOnRails
9
+ # Author:: Simone Carletti <weppos@weppos.net>
10
+ # License:: MIT License
11
+ #
12
+ #--
13
+ #
14
+ #++
15
+
16
+
17
+ module BreadcrumbsOnRails
18
+
19
+ class Railtie < Rails::Railtie
20
+ initializer "breadcrumbs_on_rails.initialize" do
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ ActiveSupport.on_load(:action_controller) do
27
+ include BreadcrumbsOnRails::ControllerMixin
28
+ end
@@ -10,16 +10,16 @@
10
10
  # License:: MIT License
11
11
  #
12
12
  #--
13
- # SVN: $Id$
13
+ #
14
14
  #++
15
15
 
16
16
 
17
17
  module BreadcrumbsOnRails
18
18
 
19
19
  module Version
20
- MAJOR = 1
20
+ MAJOR = 2
21
21
  MINOR = 0
22
- PATCH = 1
22
+ PATCH = 0
23
23
  BUILD = nil
24
24
 
25
25
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
@@ -1,23 +1,20 @@
1
- require 'rubygems'
2
- gem 'rails', '~>2.3.0'
3
- gem 'mocha', '~>0.9.7'
1
+ require 'test/unit'
2
+ require 'mocha'
4
3
 
5
- # Remember! Due to some Mocha internal changes,
6
- # Rails 2.2.x requires Mocha 0.9.5 and
7
- # Rails 2.3.x requires Mocha 0.9.7
8
- # gem 'rails', '2.2.2'
9
- # gem 'mocha', '0.9.5'
4
+ ENV["RAILS_ENV"] = "test"
10
5
 
11
- require 'test/unit'
12
- require 'active_support'
13
- require 'action_controller'
14
- require 'action_view/test_case'
6
+ require "active_support"
7
+ require "action_controller"
8
+ require "rails/railtie"
9
+
10
+ $:.unshift File.expand_path('../../lib', __FILE__)
11
+ require 'breadcrumbs_on_rails'
15
12
 
16
- $:.unshift File.dirname(__FILE__) + '/../lib'
17
- require File.dirname(__FILE__) + '/../init.rb'
13
+ ActionController::Base.view_paths = File.join(File.dirname(__FILE__), 'views')
18
14
 
19
- RAILS_ROOT = '.' unless defined? RAILS_ROOT
20
- RAILS_ENV = 'test' unless defined? RAILS_ENV
15
+ BreadcrumbsOnRails::Routes = ActionDispatch::Routing::RouteSet.new
16
+ BreadcrumbsOnRails::Routes.draw do
17
+ match ':controller(/:action(/:id))'
18
+ end
21
19
 
22
- ActionController::Base.logger = nil
23
- ActionController::Routing::Routes.reload rescue nil
20
+ ActionController::Base.send :include, BreadcrumbsOnRails::Routes.url_helpers
@@ -1,9 +1,8 @@
1
1
  require 'test_helper'
2
2
 
3
-
4
3
  class BuilderTest < ActiveSupport::TestCase
5
4
 
6
- class TestTemplate
5
+ Template = Class.new do
7
6
  include ActionView::Helpers::TagHelper
8
7
  include ActionView::Helpers::UrlHelper
9
8
 
@@ -28,12 +27,10 @@ class BuilderTest < ActiveSupport::TestCase
28
27
  def proc_for_path
29
28
  "http://localhost/#proc"
30
29
  end
31
-
32
30
  end
33
-
34
31
 
35
32
  def setup
36
- @template = TestTemplate.new
33
+ @template = Template.new
37
34
  @element = BreadcrumbsOnRails::Breadcrumbs::Element.new(nil, nil)
38
35
  end
39
36
 
@@ -3,14 +3,13 @@ require 'test_helper'
3
3
 
4
4
  class SimpleBuilderTest < ActionView::TestCase
5
5
 
6
- class TestTemplate
6
+ Template = Class.new do
7
7
  include ActionView::Helpers::TagHelper
8
8
  include ActionView::Helpers::UrlHelper
9
9
  end
10
10
 
11
-
12
11
  def setup
13
- @template = TestTemplate.new
12
+ @template = Template.new
14
13
  end
15
14
 
16
15
  def test_render_should_be_implemented
@@ -71,5 +70,4 @@ class SimpleBuilderTest < ActionView::TestCase
71
70
  end
72
71
  end
73
72
 
74
-
75
73
  end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breadcrumbs_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 1
9
- version: 1.0.1
4
+ prerelease:
5
+ version: 2.0.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - Simone Carletti
@@ -14,38 +10,53 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-05-09 00:00:00 +02:00
18
- default_executable:
13
+ date: 2011-04-30 00:00:00 Z
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
- name: rake
22
- prerelease: false
16
+ name: bundler
23
17
  requirement: &id001 !ruby/object:Gem::Requirement
18
+ none: false
24
19
  requirements:
25
- - - ~>
20
+ - - ">="
26
21
  - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- - 8
30
- - 7
31
- version: 0.8.7
22
+ version: "0"
32
23
  type: :development
24
+ prerelease: false
33
25
  version_requirements: *id001
34
26
  - !ruby/object:Gem::Dependency
35
- name: echoe
36
- prerelease: false
27
+ name: hanna
37
28
  requirement: &id002 !ruby/object:Gem::Requirement
29
+ none: false
38
30
  requirements:
39
- - - ~>
31
+ - - ">="
40
32
  - !ruby/object:Gem::Version
41
- segments:
42
- - 3
43
- - 2
44
- - 0
45
- version: 3.2.0
33
+ version: "0"
46
34
  type: :development
35
+ prerelease: false
47
36
  version_requirements: *id002
48
- description: " BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project. It provides helpers for creating navigation elements with a flexible interface.\n"
37
+ - !ruby/object:Gem::Dependency
38
+ name: rails
39
+ requirement: &id003 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 3.0.0
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: mocha
50
+ requirement: &id004 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 0.9.10
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *id004
59
+ description: BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.
49
60
  email: weppos@weppos.net
50
61
  executables: []
51
62
 
@@ -53,69 +64,51 @@ extensions: []
53
64
 
54
65
  extra_rdoc_files:
55
66
  - CHANGELOG.rdoc
56
- - LICENSE.rdoc
57
67
  - README.rdoc
58
- - lib/breadcrumbs_on_rails.rb
59
- - lib/breadcrumbs_on_rails/breadcrumbs.rb
60
- - lib/breadcrumbs_on_rails/controller_mixin.rb
61
- - lib/breadcrumbs_on_rails/version.rb
62
68
  files:
63
- - CHANGELOG.rdoc
64
- - LICENSE.rdoc
65
- - Manifest
66
- - README.rdoc
67
69
  - Rakefile
70
+ - LICENSE
68
71
  - init.rb
69
- - lib/breadcrumbs_on_rails.rb
72
+ - CHANGELOG.rdoc
73
+ - README.rdoc
74
+ - breadcrumbs_on_rails.gemspec
70
75
  - lib/breadcrumbs_on_rails/breadcrumbs.rb
71
76
  - lib/breadcrumbs_on_rails/controller_mixin.rb
77
+ - lib/breadcrumbs_on_rails/railtie.rb
72
78
  - lib/breadcrumbs_on_rails/version.rb
73
- - rails/init.rb
74
- - test/breadcrumbs_on_rails_test.rb
75
- - test/builder_test.rb
76
- - test/element_test.rb
77
- - test/simple_builder_test.rb
79
+ - lib/breadcrumbs_on_rails.rb
78
80
  - test/test_helper.rb
79
- - breadcrumbs_on_rails.gemspec
80
- has_rdoc: true
81
- homepage: http://code.simonecarletti.com/breadonrails
81
+ - test/unit/breadcrumbs_on_rails_test.rb
82
+ - test/unit/builder_test.rb
83
+ - test/unit/element_test.rb
84
+ - test/unit/simple_builder_test.rb
85
+ homepage: http://www.simonecarletti.com/code/breadcrumbs_on_rails
82
86
  licenses: []
83
87
 
84
88
  post_install_message:
85
89
  rdoc_options:
86
- - --line-numbers
87
- - --inline-source
88
- - --title
89
- - Breadcrumbs_on_rails
90
90
  - --main
91
91
  - README.rdoc
92
92
  require_paths:
93
93
  - lib
94
94
  required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
95
96
  requirements:
96
97
  - - ">="
97
98
  - !ruby/object:Gem::Version
98
- segments:
99
- - 0
100
99
  version: "0"
101
100
  required_rubygems_version: !ruby/object:Gem::Requirement
101
+ none: false
102
102
  requirements:
103
103
  - - ">="
104
104
  - !ruby/object:Gem::Version
105
- segments:
106
- - 1
107
- - 2
108
- version: "1.2"
105
+ version: "0"
109
106
  requirements: []
110
107
 
111
108
  rubyforge_project:
112
- rubygems_version: 1.3.6
109
+ rubygems_version: 1.7.2
113
110
  signing_key:
114
111
  specification_version: 3
115
112
  summary: A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
116
- test_files:
117
- - test/breadcrumbs_on_rails_test.rb
118
- - test/builder_test.rb
119
- - test/element_test.rb
120
- - test/simple_builder_test.rb
121
- - test/test_helper.rb
113
+ test_files: []
114
+
data/Manifest DELETED
@@ -1,16 +0,0 @@
1
- CHANGELOG.rdoc
2
- LICENSE.rdoc
3
- Manifest
4
- README.rdoc
5
- Rakefile
6
- init.rb
7
- lib/breadcrumbs_on_rails.rb
8
- lib/breadcrumbs_on_rails/breadcrumbs.rb
9
- lib/breadcrumbs_on_rails/controller_mixin.rb
10
- lib/breadcrumbs_on_rails/version.rb
11
- rails/init.rb
12
- test/breadcrumbs_on_rails_test.rb
13
- test/builder_test.rb
14
- test/element_test.rb
15
- test/simple_builder_test.rb
16
- test/test_helper.rb
@@ -1,5 +0,0 @@
1
- require 'breadcrumbs_on_rails'
2
-
3
- ActionController::Base.send :include, BreadcrumbsOnRails::ControllerMixin
4
-
5
- RAILS_DEFAULT_LOGGER.info("** BreadcrumbsOnRails: initialized properly") if defined?(RAILS_DEFAULT_LOGGER)