class EasyBreadcrumbs::Breadcrumbs
Breadcrumbs
class: Converts a URL path into Bootstrap breadcrumbs.
Constants
- TEMPLATE
Attributes
directories[R]
path[R]
routes[R]
view_variables[R]
Public Class Methods
new(configuration)
click to toggle source
# File lib/easy_breadcrumbs/breadcrumbs.rb, line 14 def initialize(configuration) @view_variables = configuration.view_variables @routes = configuration.route_matchers @path = configuration.request_path @directories = [] @breadcrumbs = [] build_directories! build_breadcrumbs! end
Public Instance Methods
to_html()
click to toggle source
# File lib/easy_breadcrumbs/breadcrumbs.rb, line 26 def to_html path = File.expand_path('../../assets/' + TEMPLATE, __FILE__) template = File.read(path) eruby = Erubis::Eruby.new(template) eruby.result(binding) end
Private Instance Methods
build_directories!()
click to toggle source
# File lib/easy_breadcrumbs/breadcrumbs.rb, line 39 def build_directories! parsed = path.scan(%r{\/[^\/]+}) parsed.map.with_index do |current, index| full_path = parsed[0..index].join name = current.delete('/') resource = fetch_variable_value(name) data = { full_path: full_path, name: name, resource: resource, index: index } @directories << Directory.new(data) end end
defined_route?(path)
click to toggle source
# File lib/easy_breadcrumbs/breadcrumbs.rb, line 61 def defined_route?(path) routes.any? { |route| path =~ route } end
fetch_variable_value(resource_name)
click to toggle source
# File lib/easy_breadcrumbs/breadcrumbs.rb, line 65 def fetch_variable_value(resource_name) symbol = singularize(resource_name).to_sym variable = view_variables.find { |var| var[:name] == symbol } variable[:value] if variable end