Class: SidenavItem

Inherits:
Object
  • Object
show all
Defined in:
lib/nexmo_developer/app/presenters/sidenav_item.rb

Direct Known Subclasses

SidenavSubitem

Instance Method Summary collapse

Constructor Details

#initialize(folder:, sidenav:) ⇒ SidenavItem

Returns a new instance of SidenavItem.



7
8
9
10
11
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 7

def initialize(folder:, sidenav:)
  @folder  = folder
  @sidenav = sidenav
  @options = Navigation.new(folder).options
end

Instance Method Details

#childrenObject



33
34
35
36
37
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 33

def children
  @children ||= (@folder[:children] || []).map do |child|
    SidenavSubitem.new(folder: child, sidenav: @sidenav)
  end
end

#css_classesObject



39
40
41
42
43
44
45
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 39

def css_classes
  classes = ['Nxd-sidenav-badge Vlt-badge Vlt-badge--margin-left Vlt-badge--small']
  classes << 'Vlt-badge--transparent Vlt-badge--green' if label.casecmp('beta').zero?
  classes << 'Vlt-badge--transparent Vlt-badge--blue' if label.casecmp('dev preview').zero?

  classes.join(' ')
end

#labelObject



29
30
31
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 29

def label
  @options['label']
end

#label?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 25

def label?
  label.present?
end


47
48
49
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 47

def link_url
  "/product-lifecycle/#{label.downcase.tr(' ', '-')}"
end

#normalized_titleObject



51
52
53
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 51

def normalized_title
  @normalized_title ||= TitleNormalizer.call(@folder)
end

#svgObject



17
18
19
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 17

def svg
  @options['svg'] && "/symbol/volta-icons.svg#Vlt-icon-#{@options['svg']}"
end

#svg?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 13

def svg?
  svg && svg_color
end

#svg_colorObject



21
22
23
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 21

def svg_color
  'Vlt-gray-darker'
end

#titleObject



55
56
57
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 55

def title
  @folder[:title]
end