class Sunrise::Config::Navigation

Attributes

presenters[RW]

Public Class Methods

method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/sunrise/config/navigation.rb, line 21
def method_missing(method_name, *args, &block)
  if instance.respond_to?(method_name)
    instance.send(method_name, *args, &block)
  else
    super
  end
end
navigation(name, options = {}, &block) click to toggle source

Configure menu items

new() click to toggle source
# File lib/sunrise/config/navigation.rb, line 30
def initialize
  @navigations = nil
  @presenters = {}
  @current_name = :main
end

Public Instance Methods

item(item_name, url = nil, options = {}) click to toggle source
# File lib/sunrise/config/navigation.rb, line 40
def item(item_name, url = nil, options = {})
  url ||= index_path(model_name: item_name)

  @navigations[@current_name] ||= []
  @navigations[@current_name] << NavigationItem.new(item_name, url, @current_name, options)
end
navigations() click to toggle source

Protected Instance Methods

build_navigation() click to toggle source
# File lib/sunrise/config/navigation.rb, line 49
def build_navigation
  @navigations = {}

  presenters.each do |key, presenter|
    @current_name = key.to_sym
    run_registration_block &presenter.block
  end

  @navigations
end
run_registration_block(&block) click to toggle source

Runs the registration block inside this object

# File lib/sunrise/config/navigation.rb, line 61
def run_registration_block(&block)
  instance_exec &block if block_given?
end