Class: CafeCar::Navigation::Route

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

Instance Method Summary collapse

Constructor Details

#initialize(route, template:) ⇒ Route

Returns a new instance of Route.



7
8
9
10
# File 'lib/cafe_car/navigation.rb', line 7

def initialize(route, template:)
  @route = route
  @template = template
end

Instance Method Details

#actionObject



13
# File 'lib/cafe_car/navigation.rb', line 13

def action = requirements[:action]

#contentObject



25
26
27
28
29
30
# File 'lib/cafe_car/navigation.rb', line 25

def content
  capture do
    concat icon
    concat text.titleize
  end
end

#controllerObject



12
# File 'lib/cafe_car/navigation.rb', line 12

def controller = requirements[:controller]

#groupObject



16
# File 'lib/cafe_car/navigation.rb', line 16

def group  = controller.split(?/)[..-2]

#iconObject



23
# File 'lib/cafe_car/navigation.rb', line 23

def icon = @template.icon(icon_name, :before)

#icon_nameObject



22
# File 'lib/cafe_car/navigation.rb', line 22

def icon_name = t(text, scope: "navigation.icon", default: nil)&.to_sym

#index?Boolean

Returns:

  • (Boolean)


14
# File 'lib/cafe_car/navigation.rb', line 14

def index? = action == "index"


32
33
34
# File 'lib/cafe_car/navigation.rb', line 32

def link(**opts)
  ui.Navigation().Link(href: @template.href_for([ params ]), **opts) { content }
end

#paramsObject



18
19
20
# File 'lib/cafe_car/navigation.rb', line 18

def params = requirements.clone.tap do |p|
  p[:controller] = "/" + p[:controller]
end

#rails?Boolean

Returns:

  • (Boolean)


15
# File 'lib/cafe_car/navigation.rb', line 15

def rails? = name =~ /rails/

#textObject



17
# File 'lib/cafe_car/navigation.rb', line 17

def text   = controller.split(?/).last