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)


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

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
  self.ignoring ||= [""]
end

Instance Attribute Details

#controllersObject

Returns the value of attribute controllers.



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

def controllers
  @controllers
end

#ignoringObject

Returns the value of attribute ignoring.



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

def ignoring
  @ignoring
end

Returns the value of attribute navs.



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

def navs
  @navs
end

Instance Method Details

#render_nav(selection, controller, options) ⇒ Object



144
145
146
147
148
149
150
151
152
# File 'lib/navgate.rb', line 144

def render_nav selection, controller, options
  split_controller = controller.split('/').last
  if ignoring.include?(split_controller)
    nil
  else
    nav = nav_cache(split_controller).render_it_with(options,selection).html_safe
    nav
  end
end

#select(selection, controller) ⇒ Object



131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/navgate.rb', line 131

def select selection, controller
  split_controller = controller.split('/').last
  if selection
     selection
  else
    if ignoring.include?(split_controller)
      nil
    else
     nav_cache(split_controller).default.to_s
     end
  end
end