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)


101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/navgate.rb', line 101

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[:prefix] = menu[1]['prefix'] || nil
                  options[:controller] = menu[1]['controller'] || nil
                  options[:by_id] = menu[1]['by_id'] || nil
                  options[:css_class] = menu[1]['css_class'] || nil
                end
              )
    end
    self.navs = temp
  end
end

Instance Attribute Details

#controllersObject

Returns the value of attribute controllers.



99
100
101
# File 'lib/navgate.rb', line 99

def controllers
  @controllers
end

Returns the value of attribute navs.



99
100
101
# File 'lib/navgate.rb', line 99

def navs
  @navs
end

Instance Method Details

#render_nav(selection, controller, options) ⇒ Object



127
128
129
130
# File 'lib/navgate.rb', line 127

def render_nav selection, controller, options
  nav = nav_cache(controller.split('/').last).render_it_with(options,selection).html_safe
  nav
end

#select(selection, controller) ⇒ Object



132
133
134
135
136
137
138
# File 'lib/navgate.rb', line 132

def select selection, controller
  if selection
    return selection
  else
    return nav_cache(controller.split('/').last).default.to_s
  end
end