Class: Mtl::Rails::NavbarPresenter

Inherits:
Object
  • Object
show all
Defined in:
lib/mtl/rails/navbar_presenter.rb

Overview

Private Specialised renderer for the navbar element

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(view) ⇒ NavbarPresenter

Returns a new instance of NavbarPresenter.



8
9
10
11
12
# File 'lib/mtl/rails/navbar_presenter.rb', line 8

def initialize(view)
  @view = view
  @extended_options = {}
  @extended_block = nil
end

Instance Attribute Details

#viewObject (readonly)

Returns the value of attribute view.



6
7
8
# File 'lib/mtl/rails/navbar_presenter.rb', line 6

def view
  @view
end

Instance Method Details

#extended(options = {}, &block) ⇒ Object



23
24
25
26
27
# File 'lib/mtl/rails/navbar_presenter.rb', line 23

def extended(options = {}, &block)
  @extended_options = options
  @extended_block = view.capture(&block)
  nil
end

#render(options = {}, &block) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/mtl/rails/navbar_presenter.rb', line 14

def render(options = {}, &block)
  nav = view. :nav, view.safe_join([render_main(options, &block),
                                               render_extended(@extended_block, @extended_options)].compact),
                         class: @extended_block ? 'nav-extended' : nil

  return nav unless options[:fixed]
  view. :div, nav, class: ['navbar-fixed', @extended_block ? 'navbar-fixed-extended' : nil]
end