Sha256: ff9e72425e71fa8639f2ce42b56cda142b94f1ef0c0bc0fc846735b352ee1e4a

Contents?: true

Size: 766 Bytes

Versions: 4

Compression:

Stored size: 766 Bytes

Contents

module SimpleNavigation
  module Renderer
    
    # Renders the navigation items as a object tree serialized as a json string, can also output raw ruby Hashes
    class Json < SimpleNavigation::Renderer::Base
      
      def render(item_container)
        results = hash_render(item_container)
        results = results.to_json unless options[:as_hash]
        results
      end

      private

      def hash_render(item_container)
        return nil if item_container.nil?
        item_container.items.map do |item|
          item_hash = { 
            :name => item.name, 
            :url => item.url, 
            :selected => item.selected?,
            :items => hash_render(item.sub_navigation)
          }
        end        
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
simple-navigation-3.12.0 lib/simple_navigation/rendering/renderer/json.rb
jordanyeo-simple-navigation-3.11.1 lib/simple_navigation/rendering/renderer/json.rb
jordanyeo-simple-navigation-3.11.0 lib/simple_navigation/rendering/renderer/json.rb
simple-navigation-3.11.0 lib/simple_navigation/rendering/renderer/json.rb