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

#appObject

Returns the value of attribute app

Returns:

  • (Object)

    the current value of app



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

def app
  @app
end

#blockObject

Returns the value of attribute block

Returns:

  • (Object)

    the current value of block



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

def block
  @block
end

Instance Method Details

#configObject



72
73
74
# File 'lib/conjoin/nav.rb', line 72

def config
  Conjoin::Nav.settings
end


46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/conjoin/nav.rb', line 46

def load_links links
  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       = URI.decode(app.req.env['REQUEST_URI'])[link.path]
      link.active_class = link.active ? config.active_class : false
      link.id           = "nav-#{link.text.underscore}"
      link.label        = app.instance_exec(&link.label) if link.label

      if link.subs
        link.subs = load_links link.subs
      end

      if link.active_class or !link.hidden
        loaded_links << link
      end
    end
  end

  loaded_links
end

#load_nav(name) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/conjoin/nav.rb', line 36

def load_nav name
  if links = config.navs[name]
    loaded_links = load_links links
  else
    raise "There isn't a nav called: #{name}"
  end

  block.call loaded_links
end


31
32
33
34
# File 'lib/conjoin/nav.rb', line 31

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

#runObject



27
28
29
# File 'lib/conjoin/nav.rb', line 27

def run
  self.instance_eval(&block)
end