Module: Studio::SidebarSections

Defined in:
lib/studio/sidebar_sections.rb

Class Method Summary collapse

Class Method Details

.resolve(declared, view) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/studio/sidebar_sections.rb', line 22

def resolve(declared, view)
  sections = declared.respond_to?(:call) ? declared.call(view) : declared
  admin = view.respond_to?(:admin?) && view.admin?
  Array(sections).map { |section| symbolize(section) }
                 .reject { |section| section[:admin] && !admin }
                 .map { |section| section.merge(links: Array(section[:links]).map { |link| symbolize(link) }) }
end

.symbolize(hash) ⇒ Object



30
31
32
# File 'lib/studio/sidebar_sections.rb', line 30

def symbolize(hash)
  hash.to_h.each_with_object({}) { |(key, value), out| out[key.to_sym] = value }
end