module Gretel::Crumbs

Public Class Methods

breadcrumb_files() click to toggle source

List of breadcrumb configuration files.

crumb(key, &block) click to toggle source

Stores the supplied block for later use.

# File lib/gretel/crumbs.rb, line 7
def crumb(key, &block)
  crumbs[key] = block
end
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 17
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 12
def crumbs
  @crumbs ||= {}
end
load_breadcrumbs() click to toggle source

Loads the breadcrumb configuration files.

# File lib/gretel/crumbs.rb, line 22
def load_breadcrumbs
  @crumbs = {}

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

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

Returns true if the breadcrumb configuration files have been loaded.

# File lib/gretel/crumbs.rb, line 48
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 40
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 35
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 59
def loaded_file_mtimes
  @loaded_file_mtimes ||= []
end