module Gretel::Crumbs

Public Class Methods

breadcrumb_files() click to toggle source

List of breadcrumb configuration files.

crumb_defined?(key) click to toggle source

Returns true if a crumb with the given key has been set.

# File lib/gretel/crumbs.rb, line 12
def crumb_defined?(key)
  crumbs.has_key?(key)
end
crumbs() click to toggle source

Returns a hash of all stored crumb blocks.

# File lib/gretel/crumbs.rb, line 7
def crumbs
  @crumbs ||= {}
end
load_breadcrumbs() click to toggle source

Loads the breadcrumb configuration files.

# File lib/gretel/crumbs.rb, line 17
def load_breadcrumbs
  builder = Builder.new

  loaded_file_mtimes.clear
  breadcrumb_files.each do |file|
    builder.instance_eval open(file).read, file
    loaded_file_mtimes << File.mtime(file)
  end

  @crumbs = builder.crumbs
  @loaded = true
end
loaded?() click to toggle source

Returns true if the breadcrumb configuration files have been loaded.

# File lib/gretel/crumbs.rb, line 44
def loaded?
  !!@loaded
end
reload?() click to toggle source

Returns true if a breadcrumbs reload is needed based on configuration file changes.

# File lib/gretel/crumbs.rb, line 36
def reload?
  return true unless loaded?
  return false unless Gretel.reload_environments.include?(Rails.env)

  loaded_file_mtimes != breadcrumb_files.map { |file| File.mtime(file) }
end
reload_if_needed() click to toggle source

Reloads the breadcrumb configuration files if they have changed.

# File lib/gretel/crumbs.rb, line 31
def reload_if_needed
  load_breadcrumbs if reload?
end

Private Class Methods

loaded_file_mtimes() click to toggle source
# File lib/gretel/crumbs.rb, line 55
def loaded_file_mtimes
  @loaded_file_mtimes ||= []
end