Class: Conjoin::Nav::Config

Inherits:
Struct
  • Object
show all
Defined in:
lib/conjoin/nav.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#app ⇒ Object

Returns the value of attribute app

Returns:

  • (Object) —

    the current value of app



24
25
26
# File 'lib/conjoin/nav.rb', line 24

def app
  @app
end

#block ⇒ Object

Returns the value of attribute block

Returns:

  • (Object) —

    the current value of block



24
25
26
# File 'lib/conjoin/nav.rb', line 24

def block
  @block
end

Instance Method Details

#add_menu(name, links) ⇒ Object



29
30
31
32
# File 'lib/conjoin/nav.rb', line 29

def add_menu name, links
  config.navs[name] ||= []
  config.navs[name].concat links
end

#config ⇒ Object



58
59
60
# File 'lib/conjoin/nav.rb', line 58

def config
  Conjoin::Nav.settings
end

#load_nav(name) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/conjoin/nav.rb', line 34

def load_nav name
  if links = config.navs[name]
    loaded_links = []

    links.each do |link|
      link = OpenStruct.new(link)

      if !link.if or app.instance_exec(&link.if)
        link.icon         = config.icon_class + '-' + link.icon if link.icon
        link.active       = app.req.env['REQUEST_PATH'][link.path]
        link.active_class = link.active ? config.active_class : false

        if link.active_class or !link.hidden
          loaded_links << link
        end
      end
    end
  else
    raise "There isn't a nav called: #{name}"
  end

  block.call loaded_links
end

#run ⇒ Object



25
26
27
# File 'lib/conjoin/nav.rb', line 25

def run
  self.instance_eval(&block)
end