breadcrumbs_on_rails 2.3.0 → 4.1.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 +7 -0
- data/.github/FUNDING.yml +12 -0
- data/.gitignore +8 -5
- data/.travis.yml +29 -10
- data/Appraisals +10 -9
- data/CHANGELOG.md +58 -20
- data/Gemfile +9 -1
- data/LICENSE.txt +1 -1
- data/README.md +242 -56
- data/Rakefile +9 -67
- data/SECURITY.md +104 -0
- data/breadcrumbs_on_rails.gemspec +17 -33
- data/gemfiles/5.0.gemfile +12 -0
- data/gemfiles/5.1.gemfile +12 -0
- data/gemfiles/5.2.gemfile +12 -0
- data/gemfiles/6.0.gemfile +12 -0
- data/lib/breadcrumbs_on_rails.rb +1 -1
- data/lib/breadcrumbs_on_rails/action_controller.rb +29 -46
- data/lib/breadcrumbs_on_rails/breadcrumbs.rb +4 -4
- data/lib/breadcrumbs_on_rails/railtie.rb +3 -5
- data/lib/breadcrumbs_on_rails/version.rb +2 -13
- data/test/dummy.rb +6 -1
- data/test/test_helper.rb +6 -3
- data/test/unit/action_controller_test.rb +44 -6
- data/test/unit/simple_builder_test.rb +23 -0
- metadata +33 -85
- data/.rvmrc +0 -1
- data/gemfiles/3.0.gemfile +0 -7
- data/gemfiles/3.0.gemfile.lock +0 -100
- data/gemfiles/3.1.gemfile +0 -7
- data/gemfiles/3.1.gemfile.lock +0 -100
- data/gemfiles/3.2.gemfile +0 -7
- data/gemfiles/3.2.gemfile.lock +0 -100
- data/init.rb +0 -1
data/Rakefile
CHANGED
@@ -1,64 +1,14 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require 'appraisal'
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "appraisal"
|
4
3
|
|
5
|
-
|
6
|
-
|
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", "~> 0.9.10"
|
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
|
-
require
|
11
|
+
require "rake/testtask"
|
62
12
|
|
63
13
|
Rake::TestTask.new do |t|
|
64
14
|
t.libs << "test"
|
@@ -68,18 +18,10 @@ Rake::TestTask.new do |t|
|
|
68
18
|
end
|
69
19
|
|
70
20
|
|
71
|
-
require
|
72
|
-
require 'yard/rake/yardoc_task'
|
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
|
-
|
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"
|
data/SECURITY.md
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
# Security Policy
|
2
|
+
|
3
|
+
## Supported Versions
|
4
|
+
|
5
|
+
Security updates are provided only for the current minor version.
|
6
|
+
|
7
|
+
If you are using a previous minor version, we recommend to upgrade to the current minor version.
|
8
|
+
This project uses [semantic versioning](https://semver.org/), therefore you can upgrade to a more recent minor version without incurring into breaking changes.
|
9
|
+
|
10
|
+
Exceptionally, we may support previous minor versions upon request if there are significant reasons preventing to immediately switch the latest minor version.
|
11
|
+
|
12
|
+
Older major versions are no longer supported.
|
13
|
+
|
14
|
+
|
15
|
+
## Reporting a Vulnerability
|
16
|
+
|
17
|
+
To make a report, please email weppos@weppos.net.
|
18
|
+
|
19
|
+
Please consider encrypting your report with GPG using the key [0x420da82a989398df](https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df).
|
20
|
+
|
21
|
+
```
|
22
|
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
23
|
+
|
24
|
+
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
|
97
|
+
=j6Xr
|
98
|
+
-----END PGP PUBLIC KEY BLOCK-----
|
99
|
+
```
|
100
|
+
|
101
|
+
|
102
|
+
## Tracking Security Updates
|
103
|
+
|
104
|
+
Information about security vulnerabilities are published in the [Security Advisories](https://github.com/weppos/breadcrumbs_on_rails/security/advisories) page.
|
@@ -1,39 +1,23 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "breadcrumbs_on_rails/version"
|
2
4
|
|
3
|
-
Gem::Specification.new do |
|
4
|
-
|
5
|
-
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "breadcrumbs_on_rails"
|
7
|
+
spec.version = BreadcrumbsOnRails::VERSION
|
8
|
+
spec.authors = ["Simone Carletti"]
|
9
|
+
spec.email = ["weppos@weppos.net"]
|
10
|
+
spec.homepage = "https://simonecarletti.com/code/breadcrumbs_on_rails"
|
11
|
+
spec.summary = "A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation"
|
12
|
+
spec.description = "BreadcrumbsOnRails is a simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project."
|
13
|
+
spec.licenses = ["MIT"]
|
6
14
|
|
7
|
-
|
8
|
-
s.authors = ["Simone Carletti"]
|
9
|
-
s.date = "2012-12-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", ".rvmrc", ".travis.yml", "Appraisals", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "breadcrumbs_on_rails.gemspec", "gemfiles/3.0.gemfile", "gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile", "gemfiles/3.1.gemfile.lock", "gemfiles/3.2.gemfile", "gemfiles/3.2.gemfile.lock", "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 = "1.8.24"
|
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"]
|
15
|
+
spec.required_ruby_version = ">= 2.4"
|
18
16
|
|
19
|
-
|
20
|
-
|
17
|
+
spec.require_paths = ["lib"]
|
18
|
+
spec.files = `git ls-files`.split("\n")
|
19
|
+
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
spec.extra_rdoc_files = %w( LICENSE.txt )
|
21
21
|
|
22
|
-
|
23
|
-
s.add_development_dependency(%q<rails>, [">= 3.0"])
|
24
|
-
s.add_development_dependency(%q<appraisal>, [">= 0"])
|
25
|
-
s.add_development_dependency(%q<mocha>, ["~> 0.9.10"])
|
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>, ["~> 0.9.10"])
|
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>, ["~> 0.9.10"])
|
37
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
38
|
-
end
|
22
|
+
spec.add_dependency "railties", ">= 5.0"
|
39
23
|
end
|
data/lib/breadcrumbs_on_rails.rb
CHANGED
@@ -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-
|
6
|
+
# Copyright (c) 2009-2020 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-
|
6
|
+
# Copyright (c) 2009-2020 Simone Carletti <weppos@weppos.net>
|
7
7
|
#++
|
8
8
|
|
9
9
|
module BreadcrumbsOnRails
|
@@ -11,73 +11,56 @@ 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
|
-
helper_method :
|
17
|
+
helper_method :add_breadcrumb_on_rails, :add_breadcrumb,
|
18
|
+
:breadcrumbs_on_rails, :breadcrumbs
|
19
|
+
|
20
|
+
unless base.respond_to?(:before_action)
|
21
|
+
base.alias_method :before_action, :before_filter
|
22
|
+
end
|
18
23
|
end
|
19
24
|
|
20
25
|
protected
|
21
26
|
|
22
|
-
|
23
|
-
|
27
|
+
# Pushes a new breadcrumb element into the collection.
|
28
|
+
#
|
29
|
+
# @param name [String]
|
30
|
+
# @param path [String, nil]
|
31
|
+
# @param options [Hash]
|
32
|
+
# @return [void]
|
33
|
+
def add_breadcrumb_on_rails(name, path = nil, options = {})
|
34
|
+
breadcrumbs_on_rails << Breadcrumbs::Element.new(name, path, options)
|
24
35
|
end
|
36
|
+
alias add_breadcrumb add_breadcrumb_on_rails
|
25
37
|
|
26
|
-
|
27
|
-
|
38
|
+
# Gets the list of all breadcrumb element in the collection.
|
39
|
+
#
|
40
|
+
# @return [Array<Breadcrumbs::Element>]
|
41
|
+
def breadcrumbs_on_rails
|
42
|
+
@breadcrumbs_on_rails ||= []
|
28
43
|
end
|
44
|
+
alias breadcrumbs breadcrumbs_on_rails
|
29
45
|
|
30
|
-
module Utils
|
31
|
-
|
32
|
-
def self.instance_proc(string)
|
33
|
-
if string.kind_of?(String)
|
34
|
-
proc { |controller| controller.instance_eval(string) }
|
35
|
-
else
|
36
|
-
string
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# This is an horrible method with an horrible name.
|
41
|
-
#
|
42
|
-
# convert_to_set_of_strings(nil, [:foo, :bar])
|
43
|
-
# # => nil
|
44
|
-
# convert_to_set_of_strings(true, [:foo, :bar])
|
45
|
-
# # => ["foo", "bar"]
|
46
|
-
# convert_to_set_of_strings(:foo, [:foo, :bar])
|
47
|
-
# # => ["foo"]
|
48
|
-
# convert_to_set_of_strings([:foo, :bar, :baz], [:foo, :bar])
|
49
|
-
# # => ["foo", "bar", "baz"]
|
50
|
-
#
|
51
|
-
def self.convert_to_set_of_strings(value, keys)
|
52
|
-
if value == true
|
53
|
-
keys.map(&:to_s).to_set
|
54
|
-
elsif value
|
55
|
-
Array(value).map(&:to_s).to_set
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
46
|
|
61
47
|
module ClassMethods
|
62
48
|
|
63
|
-
def
|
64
|
-
|
65
|
-
if eval = Utils.convert_to_set_of_strings(filter_options.delete(:eval), %w(name path))
|
66
|
-
name = Utils.instance_proc(name) if eval.include?("name")
|
67
|
-
path = Utils.instance_proc(path) if eval.include?("path")
|
68
|
-
end
|
49
|
+
def add_breadcrumb_on_rails(name, path = nil, filter_options = {})
|
50
|
+
element_options = filter_options.delete(:options) || {}
|
69
51
|
|
70
|
-
|
71
|
-
controller.send(:add_breadcrumb, name, path)
|
52
|
+
before_action(filter_options) do |controller|
|
53
|
+
controller.send(:add_breadcrumb, name, path, element_options)
|
72
54
|
end
|
73
55
|
end
|
56
|
+
alias add_breadcrumb add_breadcrumb_on_rails
|
74
57
|
|
75
58
|
end
|
76
59
|
|
77
60
|
module HelperMethods
|
78
61
|
|
79
62
|
def render_breadcrumbs(options = {}, &block)
|
80
|
-
builder = (options.delete(:builder) || Breadcrumbs::SimpleBuilder).new(self,
|
63
|
+
builder = (options.delete(:builder) || Breadcrumbs::SimpleBuilder).new(self, breadcrumbs_on_rails, options)
|
81
64
|
content = builder.render.html_safe
|
82
65
|
if block_given?
|
83
66
|
capture(content, &block)
|
@@ -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-
|
6
|
+
# Copyright (c) 2009-2020 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
|
|
@@ -108,14 +108,14 @@ module BreadcrumbsOnRails
|
|
108
108
|
attr_accessor :name
|
109
109
|
# @return [String] The element/link URL.
|
110
110
|
attr_accessor :path
|
111
|
-
# @return [Hash] The element/link
|
111
|
+
# @return [Hash] The element/link options.
|
112
112
|
attr_accessor :options
|
113
113
|
|
114
114
|
# Initializes the Element with given parameters.
|
115
115
|
#
|
116
116
|
# @param [String] name The element/link name.
|
117
117
|
# @param [String] path The element/link URL.
|
118
|
-
# @param [Hash] options The element/link
|
118
|
+
# @param [Hash] options The element/link options.
|
119
119
|
# @return [Element]
|
120
120
|
#
|
121
121
|
def initialize(name, path = nil, options = {})
|