Parent

Included Modules

Files

SimpleNavigation::Configuration

Responsible for evaluating and handling the config/navigation.rb file.

Attributes

active_leaf_class[RW]
auto_highlight[RW]
autogenerate_item_ids[RW]
id_generator[RW]
name_generator[RW]
primary_navigation[R]
renderer[RW]
selected_class[RW]

Public Class Methods

eval_config(navigation_context = :default) click to toggle source

Evals the config_file for the given navigation_context

# File lib/simple_navigation/core/configuration.rb, line 15
def eval_config(navigation_context = :default)
  SimpleNavigation.context_for_eval.instance_eval(SimpleNavigation.config_files[navigation_context])
end
new() click to toggle source

Sets the config's default-settings

# File lib/simple_navigation/core/configuration.rb, line 27
def initialize
  @renderer = SimpleNavigation.default_renderer || SimpleNavigation::Renderer::List
  @selected_class = 'selected'
  @active_leaf_class = 'simple-navigation-active-leaf'
  @autogenerate_item_ids = true
  @id_generator = Proc.new {|id| id.to_s }
  @name_generator = Proc.new {|name| name}
  @auto_highlight = true
end
run(&block) click to toggle source

Starts processing the configuration

# File lib/simple_navigation/core/configuration.rb, line 20
def run(&block)
  block.call Configuration.instance
end

Public Instance Methods

items(items_provider=nil, &block) click to toggle source

This is the main method for specifying the navigation items. It can be used in two ways:

  1. Declaratively specify your items in the config/navigation.rb file using a block. It then yields an SimpleNavigation::ItemContainer for adding navigation items.

  2. Directly provide your items to the method (e.g. when loading your items from the database).

Example for block style (configuration file)

config.items do |primary|
  primary.item :my_item, 'My item', my_item_path
  ...
end

To consider when directly providing items

items_provider should be:

  • a methodname (as symbol) that returns your items. The method needs to be available in the view (i.e. a helper method)

  • an object that responds to :items

  • an enumerable containing your items

The items you specify have to fullfill certain requirements. See SimpleNavigation::ItemAdapter for more details.

# File lib/simple_navigation/core/configuration.rb, line 55
def items(items_provider=nil, &block)
  raise 'please specify either items_provider or block, but not both' if (items_provider && block) || (items_provider.nil? && block.nil?)
  @primary_navigation = ItemContainer.new
  if block
    block.call @primary_navigation
  else
    @primary_navigation.items = SimpleNavigation::ItemsProvider.new(items_provider).items
  end
end
loaded?() click to toggle source

Returns true if the config_file has already been evaluated.

# File lib/simple_navigation/core/configuration.rb, line 66
def loaded?
  !@primary_navigation.nil?
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.