Class: SidenavItem
- Inherits:
-
Object
- Object
- SidenavItem
- Defined in:
- lib/nexmo_developer/app/presenters/sidenav_item.rb
Direct Known Subclasses
Instance Method Summary collapse
- #children ⇒ Object
- #css_classes ⇒ Object
-
#initialize(folder:, sidenav:) ⇒ SidenavItem
constructor
A new instance of SidenavItem.
- #label ⇒ Object
- #label? ⇒ Boolean
- #link_url ⇒ Object
- #normalized_title ⇒ Object
- #svg ⇒ Object
- #svg? ⇒ Boolean
- #svg_color ⇒ Object
- #title ⇒ Object
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). end |
Instance Method Details
#children ⇒ Object
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_classes ⇒ Object
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 |
#label ⇒ Object
29 30 31 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 29 def label @options['label'] end |
#label? ⇒ Boolean
25 26 27 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 25 def label? label.present? end |
#link_url ⇒ Object
47 48 49 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 47 def link_url "/product-lifecycle/#{label.downcase.tr(' ', '-')}" end |
#normalized_title ⇒ Object
51 52 53 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 51 def normalized_title @normalized_title ||= TitleNormalizer.call(@folder) end |
#svg ⇒ Object
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
13 14 15 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 13 def svg? svg && svg_color end |
#svg_color ⇒ Object
21 22 23 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 21 def svg_color 'Vlt-gray-darker' end |
#title ⇒ Object
55 56 57 |
# File 'lib/nexmo_developer/app/presenters/sidenav_item.rb', line 55 def title @folder[:title] end |