class EasyBreadcrumbs::Breadcrumb

Breadcrumb class properly formats it's data depending on:

> Where within the set of breadcrumbs it falls

> Whether it's a path to a specific resource

> Whether it's a path to a `new` or `edit` view

Attributes

directories[R]
directory[R]
path[R]
text[R]

Public Class Methods

new(directories, directory) click to toggle source
# File lib/easy_breadcrumbs/breadcrumb.rb, line 15
def initialize(directories, directory)
  @directories = directories
  @directory = directory

  @path = directory.full_path
  @text = format_anchor_text
end

Private Instance Methods

format_anchor_text() click to toggle source
# File lib/easy_breadcrumbs/breadcrumb.rb, line 27
def format_anchor_text
  return specific_resource if directory.ends_in_digit?
  return with_view_prefix if directory.new_or_edit_view?

  directory.name.capitalize
end
other_directory(relative_index) click to toggle source
# File lib/easy_breadcrumbs/breadcrumb.rb, line 53
def other_directory(relative_index)
  directories[directory.index + relative_index]
end
specific_resource() click to toggle source
# File lib/easy_breadcrumbs/breadcrumb.rb, line 34
def specific_resource
  previous_directory = other_directory(-1)

  if previous_directory.resource
    detect_name(previous_directory.resource)
  else
    singularize(previous_directory.name).capitalize
  end
end
with_view_prefix() click to toggle source
# File lib/easy_breadcrumbs/breadcrumb.rb, line 44
def with_view_prefix
  relative_index = directory.edit_view? ? -2 : -1
  previous_directory = other_directory(relative_index)
  view_prefix = directory.name.capitalize
  rest_of_anchor = singularize(previous_directory.name).capitalize

  "#{view_prefix} #{rest_of_anchor}"
end