Class: Breadcrumb
Defined Under Namespace
Instance Attribute Summary collapse
-
#crumbs ⇒ Object
Returns the value of attribute crumbs.
-
#delimiter ⇒ Object
Returns the value of attribute delimiter.
-
#trails ⇒ Object
Returns the value of attribute trails.
Class Method Summary collapse
Instance Method Summary collapse
- #context(name) ⇒ Object
- #crumb(name, title, url, *params) ⇒ Object
- #delimit_with(delimiter) ⇒ Object
- #dont_link_last_crumb ⇒ Object
-
#initialize ⇒ Breadcrumb
constructor
A new instance of Breadcrumb.
- #last_crumb_linked? ⇒ Boolean
- #link_last_crumb ⇒ Object
- #trail(controller, actions, trail, options = {}) ⇒ Object
- #validate ⇒ Object
Constructor Details
#initialize ⇒ Breadcrumb
Returns a new instance of Breadcrumb.
29 30 31 |
# File 'lib/breadcrumb.rb', line 29 def initialize @last_crumb_linked = true end |
Instance Attribute Details
#crumbs ⇒ Object
Returns the value of attribute crumbs.
27 28 29 |
# File 'lib/breadcrumb.rb', line 27 def crumbs @crumbs end |
#delimiter ⇒ Object
Returns the value of attribute delimiter.
27 28 29 |
# File 'lib/breadcrumb.rb', line 27 def delimiter @delimiter end |
#trails ⇒ Object
Returns the value of attribute trails.
27 28 29 |
# File 'lib/breadcrumb.rb', line 27 def trails @trails end |
Class Method Details
.configure(&blk) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/breadcrumb.rb', line 33 def self.configure(&blk) instance.crumbs = {} instance.trails = [] instance.instance_eval &blk instance.validate end |
Instance Method Details
#context(name) ⇒ Object
54 55 56 |
# File 'lib/breadcrumb.rb', line 54 def context(name) yield end |
#crumb(name, title, url, *params) ⇒ Object
48 49 50 51 52 |
# File 'lib/breadcrumb.rb', line 48 def crumb(name, title, url, *params) params = params.first if params.any? && params.first.is_a?(Hash) @crumbs ||= {} @crumbs[name] = Crumb.new(name, title, url, params) end |
#delimit_with(delimiter) ⇒ Object
58 59 60 |
# File 'lib/breadcrumb.rb', line 58 def delimit_with(delimiter) @delimiter = delimiter end |
#dont_link_last_crumb ⇒ Object
62 63 64 |
# File 'lib/breadcrumb.rb', line 62 def dont_link_last_crumb @last_crumb_linked = false end |
#last_crumb_linked? ⇒ Boolean
70 71 72 |
# File 'lib/breadcrumb.rb', line 70 def last_crumb_linked? @last_crumb_linked end |
#link_last_crumb ⇒ Object
66 67 68 |
# File 'lib/breadcrumb.rb', line 66 def link_last_crumb @last_crumb_linked = true end |
#trail(controller, actions, trail, options = {}) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/breadcrumb.rb', line 40 def trail(controller, actions, trail, = {}) @trails ||= [] actions = Array(actions) actions.each do |action| @trails << Trail.new(controller, action, trail, , caller[2].split(":")[1]) end end |
#validate ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/breadcrumb.rb', line 74 def validate invalid_trails = [] trails.each do |trail| trail.trail.collect do |t| invalid_trails << [trail, t] if crumbs[t].nil? end end if invalid_trails.any? = [] invalid_trails.each do |trail| << "Trail for #{trail.first.controller}/#{trail.first.action} references non-existing crumb '#{trail.last}' (configuration file line: #{trail.first.line})" end raise .join("\n") end end |