class Sidenav

Attributes

code_language[R]
locale[R]
navigation[R]
product[R]
request_path[R]

Public Class Methods

new(request_path:, navigation:, product:, locale: nil, code_language: nil, namespace: nil) click to toggle source

rubocop:disable Metrics/ParameterLists

# File lib/nexmo_developer/app/presenters/sidenav.rb, line 5
def initialize(request_path:, navigation:, product:, locale: nil, code_language: nil, namespace: nil)
  @request_path  = request_path
  @navigation    = navigation
  @product       = product
  @locale        = locale
  @code_language = code_language
  @namespace     = namespace

  after_initialize!
end

Public Instance Methods

documentation?() click to toggle source
# File lib/nexmo_developer/app/presenters/sidenav.rb, line 27
def documentation?
  namespace == 'documentation'
end
namespace() click to toggle source
# File lib/nexmo_developer/app/presenters/sidenav.rb, line 23
def namespace
  @namespace.presence || 'documentation'
end
nav_items() click to toggle source

rubocop:enable Metrics/ParameterLists

Private Instance Methods

after_initialize!() click to toggle source
# File lib/nexmo_developer/app/presenters/sidenav.rb, line 33
def after_initialize!
  if @namespace.present?
    @path = "app/views/#{@namespace}"
  else
    @path = "#{Rails.configuration.docs_base_path}/_documentation"
  end
end
children() click to toggle source
# File lib/nexmo_developer/app/presenters/sidenav.rb, line 41
def children
  @children ||= resolver.items
end
items() click to toggle source
# File lib/nexmo_developer/app/presenters/sidenav.rb, line 45
def items
  if @namespace.present?
    [{
      title: @namespace,
      path: @path.gsub('app/views', ''),
      children: children,
    }]
  else
    children
  end
end
resolver() click to toggle source
# File lib/nexmo_developer/app/presenters/sidenav.rb, line 57
def resolver
  @resolver ||= SidenavResolver.new(
    path: @path,
    namespace: @namespace,
    language: I18n.locale
  )
end