breadcrumbs_on_rails 2.3.1 → 3.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f861ee1dec574febf12f825fdf42eb2724cd1533
4
- data.tar.gz: 18113d4d55b083203257f36ed7c26326116f86e2
3
+ metadata.gz: ee122bb4062b89a562c760486bfa006531ad8d0d
4
+ data.tar.gz: 45ade515b86324c2bfe3062cc834876f7a7f5a75
5
5
  SHA512:
6
- metadata.gz: 9b09772ae55aa3e5af148d774969e8729c16e69fe334963ee2909b3dfa5b59515b19b73d271c62d176b6a5eb61282d1ea8fb8021a6a5b46141414337b2800e00
7
- data.tar.gz: ac31a1edcf7894c13da3382789e44082cfbfd9cb8503499bc55a0c6f9514c5b901c894f3b5e1f9bb5f6796d25683eaa55f479a42cb83a9b6e1d6550e2391f70a
6
+ metadata.gz: 70e1efd32dbc1a1f3b505763f2c577a311509faa46697661f95a1da0d1ca9234d17d06edd8d5837cf6c7e2ac63677c60134953f74b1db1f413f55b2dcac6d733
7
+ data.tar.gz: 2d14d97add461e23ef06dc50c18c0a2d88bd7f78472943a75dda59e2d5a114295dcc270cb27bd919a54658f4c382184fcfe3efa39c9f6305a7a1b4deb6d600f3
@@ -1 +1 @@
1
- ruby-2.1
1
+ 2.3.1
@@ -1,18 +1,25 @@
1
1
  rvm:
2
- - 1.9.2
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.0
6
- - 2.2.0
2
+ - 2.0
3
+ - 2.1
4
+ - 2.2.5
5
+ - 2.3.1
6
+
7
7
  gemfile:
8
- - gemfiles/3.0.gemfile
9
- - gemfiles/3.1.gemfile
10
- - gemfiles/3.2.gemfile
11
8
  - gemfiles/4.0.gemfile
9
+ - gemfiles/4.1.gemfile
10
+ - gemfiles/4.2.gemfile
11
+ - gemfiles/5.0.gemfile
12
+
13
+ before_install:
14
+ - gem install bundler
15
+
16
+ matrix:
17
+ exclude:
18
+ - rvm: 2.0
19
+ gemfile: gemfiles/5.0.gemfile
20
+ - rvm: 2.1
21
+ gemfile: gemfiles/5.0.gemfile
22
+
12
23
  notifications:
13
24
  recipients:
14
25
  - weppos@weppos.net
15
- matrix:
16
- exclude:
17
- - rvm: 1.9.2
18
- gemfile: gemfiles/4.0.gemfile
data/Appraisals CHANGED
@@ -1,15 +1,12 @@
1
- appraise "3.0" do
2
- gem "activerecord", "~> 3.0.0"
1
+ appraise "4.0" do
2
+ gem "rails", "~> 4.0.0"
3
3
  end
4
-
5
- appraise "3.1" do
6
- gem "activerecord", "~> 3.1.0"
4
+ appraise "4.1" do
5
+ gem "rails", "~> 4.1.0"
7
6
  end
8
-
9
- appraise "3.2" do
10
- gem "activerecord", "~> 3.2.0"
7
+ appraise "4.2" do
8
+ gem "rails", "~> 4.2.0"
11
9
  end
12
-
13
- appraise "4.0" do
14
- gem "activerecord", "~> 4.0.0"
10
+ appraise "5.0" do
11
+ gem "rails", "~> 5.0.0"
15
12
  end
@@ -1,66 +1,73 @@
1
1
  # Changelog
2
2
 
3
- ## Release 2.3.1
4
3
 
5
- - FIXED: Using `add_breadcrumbs` did not properly pass `options` (GH-46). [Thanks @link664]
4
+ #### Release 3.0.0
5
+
6
+ - FIXED: Fixed compatibility with Rails 5.0 (GH-80). [Thanks @ochko]
7
+ - FIXED: Fixed initialization error (GH-75). [Thanks @soulcutter]
8
+ - FIXED: Escape user input by default to avoid XSS attacks (GH-63). [Thanks @rdunlop]
6
9
 
10
+ - CHANGED: Minimum requirements Rails >= 4 and Ruby >= 2.
7
11
 
8
- ## Release 2.3.0
9
12
 
10
- * FIXED: In some circumstances the BreadcrumbsOnRails::ActionController::HelperMethods is not mixed into the controller.
13
+ #### Release 2.3.1
14
+
15
+ - FIXED: Using `add_breadcrumbs` did not properly pass `options` (GH-46). [Thanks @link664]
11
16
 
12
- * FIXED: Breadcrumbs now accepts a polymorphic path (GH-15).
13
17
 
14
- * CHANGED: Second argument on `add_breadcrumb` is now optional (GH-6, GH-32). [Thanks @mpartel]
18
+ #### Release 2.3.0
15
19
 
16
- * CHANGED: Breadcrumb path computation fallbacks to url_for in case of unknown arguments.
20
+ - FIXED: In some circumstances the BreadcrumbsOnRails::ActionController::HelperMethods is not mixed into the controller.
21
+ - FIXED: Breadcrumbs now accepts a polymorphic path (GH-15).
17
22
 
23
+ - CHANGED: Second argument on `add_breadcrumb` is now optional (GH-6, GH-32). [Thanks @mpartel]
24
+ - CHANGED: Breadcrumb path computation fallbacks to url_for in case of unknown arguments.
18
25
 
19
- ## Release 2.2.0
20
26
 
21
- * NEW: Support for Rails 3.2.
27
+ #### Release 2.2.0
22
28
 
23
- * FIXED: Fixed Rails 3.2 ActiveSupport::Concern deprecation warning (GH-17, GH-20).
29
+ - NEW: Support for Rails 3.2.
24
30
 
31
+ - FIXED: Fixed Rails 3.2 ActiveSupport::Concern deprecation warning (GH-17, GH-20).
25
32
 
26
- ## Release 2.1.0
27
33
 
28
- * NEW: Element now accepts a Hash of options. The options can be useful to customize the appearance of the element, for example to set a link title or class.
34
+ #### Release 2.1.0
29
35
 
36
+ - NEW: Element now accepts a Hash of options. The options can be useful to customize the appearance of the element, for example to set a link title or class.
30
37
 
31
- ## Release 2.0.0
32
38
 
33
- * FIXED: Invalid documentation for Element target in the controller class context (closes #2)
39
+ #### Release 2.0.0
34
40
 
35
- * CHANGED: Upgraded to Rails 3
41
+ - FIXED: Invalid documentation for Element target in the controller class context (closes #2)
36
42
 
43
+ - CHANGED: Upgraded to Rails 3
37
44
 
38
- ## Release 1.0.1
39
45
 
40
- * FIXED: Since the removal of rails/init.rb in 7278376ab77651e540e39552384ad9677e32ff7e, Rails fails to load the helpers.
46
+ #### Release 1.0.1
41
47
 
48
+ - FIXED: Since the removal of rails/init.rb in 7278376ab77651e540e39552384ad9677e32ff7e, Rails fails to load the helpers.
42
49
 
43
- ## Release 1.0.0
44
50
 
45
- * CHANGED: Removed empty install/uninstall hooks and tasks folder.
51
+ #### Release 1.0.0
46
52
 
47
- * CHANGED: Removed rails/init hook because deprecated in Rails 3.
53
+ - CHANGED: Removed empty install/uninstall hooks and tasks folder.
54
+ - CHANGED: Removed rails/init hook because deprecated in Rails 3.
48
55
 
49
56
 
50
- ## Release 0.2.0
57
+ #### Release 0.2.0
51
58
 
52
- * Releasing the library as open source project.
59
+ - Releasing the library as open source project.
53
60
 
54
- ## Release 0.1.1
55
61
 
62
+ #### Release 0.1.1
56
63
 
57
- * ADDED: documentation file.
58
64
 
59
- * CHANGED: run test against Rails ~> 2.3.0 but ensure compatibility with Rails 2.2.x.
65
+ - NEW: documentation file.
60
66
 
61
- * CHANGED: Removed BUILD and STATUS constants. Added Version::ALPHA constant to be used when I need to package prereleases (see RubyGem --prerelease flag).
67
+ - CHANGED: run test against Rails ~> 2.3.0 but ensure compatibility with Rails 2.2.x.
68
+ - CHANGED: Removed BUILD and STATUS constants. Added Version::ALPHA constant to be used when I need to package prereleases (see RubyGem --prerelease flag).
62
69
 
63
70
 
64
- ## Release 0.1.0
71
+ #### Release 0.1.0
65
72
 
66
- * Initial version
73
+ - Initial version
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "http://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
1
+ Copyright (c) 2009-2016 Simone Carletti <weppos@weppos.net>
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,119 +1,265 @@
1
1
  # Breadcrumbs On Rails
2
- [![Code Climate](https://codeclimate.com/github/weppos/breadcrumbs_on_rails.png)](https://codeclimate.com/github/weppos/breadcrumbs_on_rails)
3
2
 
4
3
  <tt>BreadcrumbsOnRails</tt> 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.
5
4
 
5
+ [![Build Status](https://travis-ci.org/weppos/breadcrumbs_on_rails.svg?branch=master)](https://travis-ci.org/weppos/breadcrumbs_on_rails)
6
+ [![Code Climate](https://codeclimate.com/github/weppos/breadcrumbs_on_rails.png)](https://codeclimate.com/github/weppos/breadcrumbs_on_rails)
7
+
6
8
 
7
9
  ## Requirements
8
10
 
9
- - Rails 3 or Rails 4
10
-
11
- Please note
11
+ - Rails 4 or Rails 5
12
12
 
13
- - <tt>BreadcrumbsOnRails</tt> 2.x requires Rails 3. Use <tt>BreadcrumbsOnRails</tt> 1.x with Rails 2.
14
- - <tt>BreadcrumbsOnRails</tt> doesn't work with Rails 2.1 or lower.
13
+ For older versions of Ruby or Ruby on Rails, see the [CHANGELOG](CHANGELOG.md).
15
14
 
16
15
 
17
16
  ## Installation
18
17
 
19
- [RubyGems](http://rubygems.org) is the preferred way to install <tt>BreadcrumbsOnRails</tt> and the best way if you want install a stable version.
18
+ Add this line to your application's `Gemfile`:
20
19
 
21
- $ gem install breadcrumbs_on_rails
20
+ gem "breadcrumbs_on_rails"
22
21
 
23
- Specify the Gem dependency in the [Bundler](http://bundler.io/) `Gemfile`.
22
+ And then execute `bundle` to install the dependencies:
24
23
 
25
- gem "breadcrumbs_on_rails"
24
+ $ bundle
26
25
 
27
26
  Use [Bundler](http://bundler.io/) and the `:git` option if you want to grab the latest version from the Git repository.
28
27
 
29
28
 
30
- ## Basic Usage
29
+ ## Usage
31
30
 
32
31
  Creating a breadcrumb navigation menu in your Rails app using <tt>BreadcrumbsOnRails</tt> is really straightforward.
33
32
 
34
33
  In your controller, call `add_breadcrumb` to push a new element on the breadcrumb stack. `add_breadcrumb` requires two arguments: the name of the breadcrumb and the target path.
35
34
 
36
- class MyController
37
-
38
- add_breadcrumb "home", :root_path
39
- add_breadcrumb "my", :my_path
40
-
41
- def index
42
- # ...
43
-
44
- add_breadcrumb "index", index_path
45
- end
46
-
47
- end
35
+ ```ruby
36
+ class MyController
48
37
 
49
- The third, optional argument is a Hash of options to customize the breadcrumb link.
38
+ add_breadcrumb "home", :root_path
39
+ add_breadcrumb "my", :my_path
50
40
 
51
- class MyController
52
- add_breadcrumb "home", :root_path, :options => { :title => "Home" }
41
+ def index
42
+ # ...
53
43
 
54
- def index
55
- add_breadcrumb "index", index_path, :title => "Back to the Index"
56
- end
57
- end
44
+ add_breadcrumb "index", index_path
45
+ end
46
+
47
+ end
48
+ ```
49
+
50
+ See the section "Breadcrumb Element" for more details about name and target class types.
51
+
52
+ The third, optional argument is a Hash of options to customize the breadcrumb link.
53
+
54
+ ```ruby
55
+ class MyController
56
+ def index
57
+ add_breadcrumb "index", index_path, :title => "Back to the Index"
58
+ end
59
+ end
60
+ ```
58
61
 
59
62
  In your view, you can render the breadcrumb menu with the `render_breadcrumbs` helper.
60
63
 
61
- <!DOCTYPE html>
62
- <html>
63
- <head>
64
- <title>untitled</title>
65
- </head>
66
-
67
- <body>
68
- <%= render_breadcrumbs %>
69
- </body>
70
- </html>
64
+ ```html
65
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
66
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
67
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
68
+ <head>
69
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
70
+ <title>untitled</title>
71
+ </head>
72
+
73
+ <body>
74
+ <%= render_breadcrumbs %>
75
+ </body>
76
+ </html>
77
+ ```
71
78
 
72
79
  `render_breadcrumbs` understands a limited set of options. For example, you can pass change the default separator with the `:separator` option.
73
80
 
74
- <body>
75
- <%= render_breadcrumbs :separator => ' / ' %>
76
- </body>
81
+ ```html
82
+ <body>
83
+ <%= render_breadcrumbs :separator => ' / ' %>
84
+ </body>
85
+ ```
77
86
 
78
87
  Current possible options are:
88
+
79
89
  - `:separator`
80
90
  - `:tag`
81
91
 
82
92
  To use with Bootstrap you might use the following:
83
93
 
84
- <body>
85
- <ol class="breadcrumb">
86
- <%= render_breadcrumbs :tag => :li, :separator => "" %>
87
- </ol>
88
- </body>
94
+ ```html
95
+ <body>
96
+ <ol class="breadcrumb">
97
+ <%= render_breadcrumbs :tag => :li, :separator => "" %>
98
+ </ol>
99
+ </body>
100
+ ```
101
+
102
+ More complex customizations require a custom `Builder`.
103
+
104
+ ### HTML Escaping
105
+
106
+ The text of the breadcrumb is html-escaped by default unless it is a SafeBuffer, to prevent XSS attacks.
107
+
108
+ ```ruby
109
+ class MyController
110
+ add_breadcrumb "This is the <b>Main</b> page".html_safe
111
+
112
+ def profile
113
+ add_breadcrumb "#{@user_name} Profile", users_profile
114
+ end
115
+ end
116
+ ```
117
+
118
+ In this case, if `@user_name` is "<script>", it will output:
119
+
120
+ This is the <b>Main</b> page > &lt;script&gt; Profile
121
+
122
+
123
+ ### Breadcrumb Element
124
+
125
+ A breadcrumbs menu is composed by a number of `Element` objects. Each object contains two attributes: the name of the breadcrumb and the target path.
126
+
127
+ When you call `add_breadcrumb`, the method automatically creates a new `Element` object for you and append it to the breadcrumbs stack. `Element` name and path can be one of the following Ruby types:
128
+
129
+ - `Symbol`
130
+ - `Proc`
131
+ - `String`
132
+
133
+ #### Symbol
134
+
135
+ If the value is a `Symbol`, the library calls the corresponding method defined in the same context the and sets the `Element` attribute to the returned value.
136
+
137
+ ```ruby
138
+ class MyController
139
+
140
+ # The Name is set to the value returned by
141
+ # the :root_name method.
142
+ add_breadcrumb :root_name, "/"
143
+
144
+ protected
145
+
146
+ def root_name
147
+ "the name"
148
+ end
149
+
150
+ end
151
+ ```
152
+
153
+ #### Proc
154
+
155
+ If the value is a `Proc`, the library calls the proc passing the current view context as argument and sets the `Element` attribute to the returned value. This is useful if you want to postpone the execution to get access to some special methods/variables created in your controller action.
156
+
157
+ ```ruby
158
+ class MyController
159
+
160
+ # The Name is set to the value returned by
161
+ # the :root_name method.
162
+ add_breadcrumb Proc.new { |c| c.my_helper_method },
163
+ "/"
164
+
165
+ end
166
+ ```
167
+
168
+ #### String
169
+
170
+ If the value is a `String`, the library sets the `Element` attribute to the string value.
171
+
172
+ ```ruby
173
+ class MyController
174
+
175
+ # The Name is set to the value returned by
176
+ # the :root_name method.
177
+ add_breadcrumb "homepage", "/"
178
+
179
+ end
180
+ ```
181
+
182
+ ### Restricting breadcrumb scope
183
+
184
+ The `add_breadcrumb` method understands all options you are used to pass to a Rails controller filter. In fact, behind the scenes this method uses a `before_filter` to store the tab in the `@breadcrumbs` variable.
185
+
186
+ Taking advantage of Rails filter options, you can restrict a tab to a selected group of actions in the same controller.
187
+
188
+ ```ruby
189
+ class PostsController < ApplicationController
190
+ add_breadcrumb "admin", :admin_path
191
+ add_breadcrumb "posts", :posts_path, :only => %w(index show)
192
+ end
193
+
194
+ class ApplicationController < ActionController::Base
195
+ add_breadcrumb "admin", :admin_path, :if => :admin_controller?
196
+
197
+ def admin_controller?
198
+ self.class.name =~ /^Admin(::|Controller)/
199
+ end
200
+ end
201
+ ```
202
+
203
+ ### Internationalization and Localization
204
+
205
+ <tt>BreadcrumbsOnRails</tt> is compatible with the standard Rails internationalization framework.
206
+
207
+ For example, if you want to localize your menu, define a new breadcrumbs node in your `.yml` file with all the keys for your elements.
208
+
209
+ ```yaml
210
+ # config/locales/en.yml
211
+ en:
212
+ breadcrumbs:
213
+ homepage: Homepage
214
+ first: First
215
+ second: Second
216
+ third: Third
217
+
218
+ # config/locales/it.yml
219
+ it:
220
+ breadcrumbs:
221
+ homepage: Homepage
222
+ first: Primo
223
+ second: Secondo
224
+ third: Terzo
225
+ ```
226
+
227
+ In your controller, use the `I18n.t` method.
89
228
 
90
- More complex customizations require a custom Builder.
229
+ ```ruby
230
+ class PostsController < ApplicationController
231
+ add_breadcrumb I18n.t("breadcrumbs.first"), :first_path
232
+ add_breadcrumb I18n.t("breadcrumbs.second"), :second_path, :only => %w(second)
233
+ add_breadcrumb I18n.t("breadcrumbs.third"), :third_path, :only => %w(third)
234
+ end
91
235
 
92
- Read the [documentation](http://simonecarletti.com/code/breadcrumbs_on_rails/docs/) to learn more about advanced usage and builders.
236
+ class ApplicationController < ActionController::Base
237
+ add_breadcrumb I18n.t("breadcrumbs.homepage"), :root_path
238
+ end
239
+ ```
93
240
 
94
241
 
95
242
  ## Credits
96
243
 
97
- <tt>BreadcrumbsOnRails</tt> was created and is maintained by [Simone Carletti](http://simonecarletti.com/). Many improvements and bugfixes were contributed by the [open source community](https://github.com/weppos/whois/graphs/contributors).
244
+ <tt>BreadcrumbsOnRails</tt> was created and is maintained by [Simone Carletti](http://simonecarletti.com/). Many improvements and bugfixes were contributed by the [open source community](https://github.com/weppos/breadcrumbs_on_rails/graphs/contributors).
98
245
 
99
246
 
100
247
  ## Contributing
101
248
 
102
249
  Direct questions and discussions to [Stack Overflow](http://stackoverflow.com/questions/tagged/breadcrumbs-on-rails).
103
250
 
104
- [Pull requests](https://github.com/weppos/whois/breadcrumbs_on_rails) are very welcome! Please include tests for every patch, and create a topic branch for every separate change you make.
251
+ [Pull requests](https://github.com/weppos/breadcrumbs_on_rails) are very welcome! Please include tests for every patch, and create a topic branch for every separate change you make.
105
252
 
106
253
  Report issues or feature requests to [GitHub Issues](https://github.com/weppos/breadcrumbs_on_rails/issues).
107
254
 
108
255
 
109
256
  ## More Information
110
257
 
111
- - [Homepage](http://simonecarletti.com/code/breadcrumbs_on_rails)
112
- - [RubyGems](http://rubygems.org/gems/breadcrumbs_on_rails)
113
- - [Documentation](http://simonecarletti.com/code/breadcrumbs_on_rails/docs/)
258
+ - [Homepage](http://simonecarletti.com/code/breadcrumbs-on-rails)
259
+ - [RubyGems](https://rubygems.org/gems/breadcrumbs_on_rails)
114
260
  - [Issues](https://github.com/weppos/breadcrumbs_on_rails/issues)
115
261
 
116
262
 
117
263
  ## License
118
264
 
119
- <tt>BreadcrumbsOnRails</tt> is Copyright (c) 2009-2014 Simone Carletti. This is Free Software distributed under the MIT license.
265
+ Copyright (c) 2009-2015 Simone Carletti. This is Free Software distributed under the MIT license.
data/Rakefile CHANGED
@@ -1,62 +1,12 @@
1
- require 'rubygems'
2
- require 'bundler'
1
+ require 'bundler/gem_tasks'
3
2
  require 'appraisal'
4
3
 
5
- $:.unshift(File.dirname(__FILE__) + "/lib")
6
- require 'breadcrumbs_on_rails/version'
7
-
8
-
9
- PKG_NAME = ENV['PKG_NAME'] || "breadcrumbs_on_rails"
10
- PKG_VERSION = ENV['PKG_VERSION'] || BreadcrumbsOnRails::VERSION
11
-
12
-
13
- # Run test by default.
14
- task :default => :test
15
-
16
- spec = Gem::Specification.new do |s|
17
- s.name = PKG_NAME
18
- s.version = PKG_VERSION
19
- s.summary = "A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation."
20
- s.description = "BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project."
21
-
22
- s.author = "Simone Carletti"
23
- s.email = "weppos@weppos.net"
24
- s.homepage = "http://www.simonecarletti.com/code/breadcrumbs_on_rails"
25
-
26
- s.files = `git ls-files`.split("\n")
27
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
28
- s.require_paths = %w( lib )
29
-
30
- s.add_development_dependency "rails", ">= 3.0"
31
- s.add_development_dependency "appraisal"
32
- s.add_development_dependency "mocha", "~> 1.0.0"
33
- s.add_development_dependency "yard"
34
- end
35
-
36
-
37
- require 'rubygems/package_task'
38
-
39
- Gem::PackageTask.new(spec) do |pkg|
40
- pkg.gem_spec = spec
41
- end
42
-
43
- desc "Build the gemspec file #{spec.name}.gemspec"
44
- task :gemspec do
45
- file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
46
- File.open(file, "w") {|f| f << spec.to_ruby }
47
- end
48
-
49
- desc "Remove any temporary products, including gemspec."
50
- task :clean => [:clobber] do
51
- rm "#{spec.name}.gemspec"
4
+ if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
5
+ task :default => :appraisal
6
+ else
7
+ task :default => :test
52
8
  end
53
9
 
54
- desc "Remove any generated file"
55
- task :clobber => [:clobber_package]
56
-
57
- desc "Package the library and generates the gemspec"
58
- task :package => [:gemspec]
59
-
60
10
 
61
11
  require 'rake/testtask'
62
12
 
@@ -68,18 +18,10 @@ Rake::TestTask.new do |t|
68
18
  end
69
19
 
70
20
 
71
- require 'yard'
72
21
  require 'yard/rake/yardoc_task'
73
22
 
74
23
  YARD::Rake::YardocTask.new(:yardoc) do |y|
75
24
  y.options = ["--output-dir", "yardoc"]
76
25
  end
77
26
 
78
- namespace :yardoc do
79
- desc "Remove YARD products"
80
- task :clobber do
81
- rm_r "yardoc" rescue nil
82
- end
83
- end
84
-
85
- task :clobber => "yardoc:clobber"
27
+ CLOBBER.include "yardoc"
@@ -1,39 +1,28 @@
1
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'breadcrumbs_on_rails/version'
2
5
 
3
- Gem::Specification.new do |s|
4
- s.name = "breadcrumbs_on_rails"
5
- s.version = "2.3.0"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "breadcrumbs_on_rails"
8
+ spec.version = BreadcrumbsOnRails::VERSION
9
+ spec.authors = ["Simone Carletti"]
10
+ spec.email = ["weppos@weppos.net"]
6
11
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Simone Carletti"]
9
- s.date = "2014-01-25"
10
- s.description = "BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project."
11
- s.email = "weppos@weppos.net"
12
- s.files = [".gitignore", ".ruby-gemset", ".ruby-version", ".travis.yml", "Appraisals", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "breadcrumbs_on_rails.gemspec", "gemfiles/3.0.gemfile", "gemfiles/3.1.gemfile", "gemfiles/3.2.gemfile", "gemfiles/4.0.gemfile", "init.rb", "lib/breadcrumbs_on_rails.rb", "lib/breadcrumbs_on_rails/action_controller.rb", "lib/breadcrumbs_on_rails/breadcrumbs.rb", "lib/breadcrumbs_on_rails/railtie.rb", "lib/breadcrumbs_on_rails/version.rb", "test/dummy.rb", "test/test_helper.rb", "test/unit/action_controller_test.rb", "test/unit/builder_test.rb", "test/unit/element_test.rb", "test/unit/simple_builder_test.rb", "test/views/example/default.html.erb"]
13
- s.homepage = "http://www.simonecarletti.com/code/breadcrumbs_on_rails"
14
- s.require_paths = ["lib"]
15
- s.rubygems_version = "2.0.14"
16
- s.summary = "A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation."
17
- s.test_files = ["test/dummy.rb", "test/test_helper.rb", "test/unit/action_controller_test.rb", "test/unit/builder_test.rb", "test/unit/element_test.rb", "test/unit/simple_builder_test.rb", "test/views/example/default.html.erb"]
12
+ spec.summary = %q{A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation}
13
+ spec.description = %q{BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.}
14
+ spec.homepage = "https://simonecarletti.com/code/breadcrumbs_on_rails"
15
+ spec.license = "MIT"
18
16
 
19
- if s.respond_to? :specification_version then
20
- s.specification_version = 4
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ spec.require_paths = ["lib"]
21
20
 
22
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
23
- s.add_development_dependency(%q<rails>, [">= 3.0"])
24
- s.add_development_dependency(%q<appraisal>, [">= 0"])
25
- s.add_development_dependency(%q<mocha>, ["~> 1.0.0"])
26
- s.add_development_dependency(%q<yard>, [">= 0"])
27
- else
28
- s.add_dependency(%q<rails>, [">= 3.0"])
29
- s.add_dependency(%q<appraisal>, [">= 0"])
30
- s.add_dependency(%q<mocha>, ["~> 1.0.0"])
31
- s.add_dependency(%q<yard>, [">= 0"])
32
- end
33
- else
34
- s.add_dependency(%q<rails>, [">= 3.0"])
35
- s.add_dependency(%q<appraisal>, [">= 0"])
36
- s.add_dependency(%q<mocha>, ["~> 1.0.0"])
37
- s.add_dependency(%q<yard>, [">= 0"])
38
- end
21
+ spec.required_ruby_version = ">= 2.0"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "appraisal"
25
+ spec.add_development_dependency "rails", ">= 4.0"
26
+ spec.add_development_dependency "mocha", ">= 1.0"
27
+ spec.add_development_dependency "yard"
39
28
  end
@@ -1,7 +1,7 @@
1
1
  # This file was generated by Appraisal
2
2
 
3
- source "http://rubygems.org"
3
+ source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "~> 4.0.0"
5
+ gem "rails", "~> 4.0.0"
6
6
 
7
- gemspec :path=>"../"
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4.1.0"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4.2.0"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.0.0"
6
+
7
+ gemspec :path => "../"
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
5
5
  #
6
- # Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2016 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
  require 'breadcrumbs_on_rails/breadcrumbs'
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
5
5
  #
6
- # Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2016 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
  module BreadcrumbsOnRails
@@ -11,10 +11,14 @@ module BreadcrumbsOnRails
11
11
  module ActionController
12
12
  extend ActiveSupport::Concern
13
13
 
14
- included do
14
+ included do |base|
15
15
  extend ClassMethods
16
16
  helper HelperMethods
17
17
  helper_method :add_breadcrumb, :breadcrumbs
18
+
19
+ unless base.respond_to?(:before_action)
20
+ base.alias_method :before_action, :before_filter
21
+ end
18
22
  end
19
23
 
20
24
  protected
@@ -69,7 +73,7 @@ module BreadcrumbsOnRails
69
73
 
70
74
  element_options = filter_options.delete(:options) || {}
71
75
 
72
- before_filter(filter_options) do |controller|
76
+ before_action(filter_options) do |controller|
73
77
  controller.send(:add_breadcrumb, name, path, element_options)
74
78
  end
75
79
  end
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
5
5
  #
6
- # Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2016 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
  module BreadcrumbsOnRails
@@ -93,7 +93,7 @@ module BreadcrumbsOnRails
93
93
  if @options[:tag]
94
94
  @context.content_tag(@options[:tag], content)
95
95
  else
96
- content
96
+ ERB::Util.h(content)
97
97
  end
98
98
  end
99
99
 
@@ -3,16 +3,14 @@
3
3
  #
4
4
  # A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
5
5
  #
6
- # Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2016 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
  module BreadcrumbsOnRails
10
10
 
11
11
  class Railtie < Rails::Railtie
12
- initializer "breadcrumbs_on_rails.initialize" do
13
- ActiveSupport.on_load(:action_controller) do
14
- include BreadcrumbsOnRails::ActionController
15
- end
12
+ ActiveSupport.on_load(:action_controller) do
13
+ include BreadcrumbsOnRails::ActionController
16
14
  end
17
15
  end
18
16
 
@@ -3,20 +3,9 @@
3
3
  #
4
4
  # A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
5
5
  #
6
- # Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2016 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
  module BreadcrumbsOnRails
10
-
11
- module Version
12
- MAJOR = 2
13
- MINOR = 3
14
- PATCH = 1
15
- BUILD = nil
16
-
17
- STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
18
- end
19
-
20
- VERSION = Version::STRING
21
-
10
+ VERSION = "3.0.0"
22
11
  end
@@ -4,3 +4,6 @@ require 'dummy'
4
4
 
5
5
  $:.unshift File.expand_path('../../lib', __FILE__)
6
6
  require 'breadcrumbs_on_rails'
7
+
8
+ Encoding.default_external = Encoding::UTF_8
9
+ Encoding.default_internal = Encoding::UTF_8
@@ -48,7 +48,7 @@ class ExampleControllerTest < ActionController::TestCase
48
48
  def test_render_compute_paths
49
49
  get :action_compute_paths
50
50
  assert_dom_equal %(<a href="/">String</a> &raquo; <a href="/?proc">Proc</a> &raquo; <a href="/?polymorphic">Polymorphic</a>),
51
- @response.body
51
+ @response.body.to_s
52
52
  end
53
53
 
54
54
  end
@@ -78,14 +78,15 @@ class ClassLevelExampleControllerTest < ActionController::TestCase
78
78
 
79
79
  def test_render_default
80
80
  expected = [].tap { |links|
81
- links << "<a href=\"/\">String</a>"
82
- links << "<a href=\"/?proc\">Proc</a>"
83
- links << "<a href=\"/?polymorphic\">Polymorphic</a>"
84
- links << "<a href=\"/\" title=\"Awesome\">With options</a>"
81
+ links << '<a href="/">String</a>'
82
+ links << '<a href="/?proc">Proc</a>'
83
+ links << '<a href="/?polymorphic">Polymorphic</a>'
84
+ links << '<a title="Awesome" href="/">With options</a>'
85
85
  }
86
86
 
87
87
  get :action_default
88
- assert_dom_equal %(#{expected.join(" &raquo; ")}), @response.body
88
+ assert_dom_equal expected.join(" &raquo; "),
89
+ @response.body.to_s
89
90
  end
90
91
 
91
92
  end
@@ -60,6 +60,29 @@ class SimpleBuilderTest < ActionView::TestCase
60
60
  simplebuilder(@template, elements).render)
61
61
  end
62
62
 
63
+ def test_render_with_embedded_html
64
+ elements = [BreadcrumbsOnRails::Breadcrumbs::Element.new("Element <b>One</b>", nil)]
65
+ assert_dom_equal("Element &lt;b&gt;One&lt;/b&gt;",
66
+ simplebuilder(@template, elements).render)
67
+ end
68
+
69
+ def test_render_with_embedded_html_and_tags
70
+ elements = [BreadcrumbsOnRails::Breadcrumbs::Element.new("Element <b>One</b>", nil)]
71
+ assert_dom_equal("<li>Element &lt;b&gt;One&lt;/b&gt;</li>",
72
+ simplebuilder(@template, elements, {tag: :li} ).render)
73
+ end
74
+
75
+ def test_render_with_safe_embedded_html
76
+ elements = [BreadcrumbsOnRails::Breadcrumbs::Element.new("Element <b>One</b>".html_safe, nil)]
77
+ assert_dom_equal("Element <b>One</b>",
78
+ simplebuilder(@template, elements).render)
79
+ end
80
+
81
+ def test_render_with_embedded_html_and_tags
82
+ elements = [BreadcrumbsOnRails::Breadcrumbs::Element.new("Element <b>One</b>".html_safe, nil)]
83
+ assert_dom_equal("<li>Element <b>One</b></li>",
84
+ simplebuilder(@template, elements, {tag: :li} ).render)
85
+ end
63
86
 
64
87
  protected
65
88
 
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breadcrumbs_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Carletti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-06 00:00:00.000000000 Z
11
+ date: 2016-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: '3.0'
33
+ version: '0'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: '3.0'
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: appraisal
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -38,20 +52,34 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: mocha
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
- - - "~>"
73
+ - - ">="
46
74
  - !ruby/object:Gem::Version
47
- version: 1.0.0
75
+ version: '1.0'
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
- - - "~>"
80
+ - - ">="
53
81
  - !ruby/object:Gem::Version
54
- version: 1.0.0
82
+ version: '1.0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: yard
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +96,8 @@ dependencies:
68
96
  version: '0'
69
97
  description: BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and
70
98
  managing a breadcrumb navigation for a Rails project.
71
- email: weppos@weppos.net
99
+ email:
100
+ - weppos@weppos.net
72
101
  executables: []
73
102
  extensions: []
74
103
  extra_rdoc_files: []
@@ -84,10 +113,10 @@ files:
84
113
  - README.md
85
114
  - Rakefile
86
115
  - breadcrumbs_on_rails.gemspec
87
- - gemfiles/3.0.gemfile
88
- - gemfiles/3.1.gemfile
89
- - gemfiles/3.2.gemfile
90
116
  - gemfiles/4.0.gemfile
117
+ - gemfiles/4.1.gemfile
118
+ - gemfiles/4.2.gemfile
119
+ - gemfiles/5.0.gemfile
91
120
  - init.rb
92
121
  - lib/breadcrumbs_on_rails.rb
93
122
  - lib/breadcrumbs_on_rails/action_controller.rb
@@ -101,8 +130,9 @@ files:
101
130
  - test/unit/element_test.rb
102
131
  - test/unit/simple_builder_test.rb
103
132
  - test/views/example/default.html.erb
104
- homepage: http://www.simonecarletti.com/code/breadcrumbs_on_rails
105
- licenses: []
133
+ homepage: https://simonecarletti.com/code/breadcrumbs_on_rails
134
+ licenses:
135
+ - MIT
106
136
  metadata: {}
107
137
  post_install_message:
108
138
  rdoc_options: []
@@ -112,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
142
  requirements:
113
143
  - - ">="
114
144
  - !ruby/object:Gem::Version
115
- version: '0'
145
+ version: '2.0'
116
146
  required_rubygems_version: !ruby/object:Gem::Requirement
117
147
  requirements:
118
148
  - - ">="
@@ -120,10 +150,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
150
  version: '0'
121
151
  requirements: []
122
152
  rubyforge_project:
123
- rubygems_version: 2.4.7
153
+ rubygems_version: 2.5.1
124
154
  signing_key:
125
155
  specification_version: 4
126
- summary: A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation.
156
+ summary: A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation
127
157
  test_files:
128
158
  - test/dummy.rb
129
159
  - test/test_helper.rb
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "activerecord", "~> 3.0.0"
6
-
7
- gemspec :path=>"../"
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "activerecord", "~> 3.1.0"
6
-
7
- gemspec :path=>"../"
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "activerecord", "~> 3.2.0"
6
-
7
- gemspec :path=>"../"