Class: Navgate

Inherits:
Object
  • Object
show all
Defined in:
lib/navgate.rb

Defined Under Namespace

Classes: Builder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Navgate

Returns a new instance of Navgate.

Yields:

  • (_self)

Yield Parameters:

  • _self (Navgate)

    the object that the method was called on

Raises:

  • (TypeError)


77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/navgate.rb', line 77

def initialize
  self.controllers = Rails.application.routes.routes.map do |route|
    route.defaults[:controller]
  end.uniq.compact
  yield(self)
  raise TypeError, "Expected Navgate:Builder or string" unless not_bad_type?(self.navs)
  if self.navs.is_a?(String)
    setup = YAML.load_file(self.navs)
    temp = []
    setup.each do |menu|
      temp.push(Navgate::Builder.new do |options|
                  options[:selection] = menu[1]['selection'].split(" ")
                  options[:default] = menu[1]['default'] || nill
                  options[:namespace] = menu[1]['namespace'] || nil
                  options[:prefix] = menu[1]['prefix'] || nil
                  options[:controller] = menu[1]['controller'] || nil
                end
              )
    end
    self.navs = temp
  end
end

Instance Attribute Details

#controllersObject

Returns the value of attribute controllers.



75
76
77
# File 'lib/navgate.rb', line 75

def controllers
  @controllers
end

Returns the value of attribute navs.



75
76
77
# File 'lib/navgate.rb', line 75

def navs
  @navs
end

Instance Method Details

#render_nav(params, options) ⇒ Object



102
103
104
# File 'lib/navgate.rb', line 102

def render_nav params, options
  select_nav(params[:controller]).render_it_with(options).html_safe
end

#select(params) ⇒ Object



106
107
108
109
# File 'lib/navgate.rb', line 106

def select params
  nav = select_nav(params[:controller])
  return params[:selection] ? params[:selection] : nav.default
end