Sha256: 48236765a07e0ab613291ff6e303184e5298c8ba97ff5b4dbd7effa211b3aa57

Contents?: true

Size: 754 Bytes

Versions: 1

Compression:

Stored size: 754 Bytes

Contents

require 'json'

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)
        options[:as_hash] ? results : results.to_json
      end

      private

      def hash_render(item_container)
        return nil unless item_container

        item_container.items.map do |item|
          {
            items: hash_render(item.sub_navigation),
            name: item.name,
            selected: item.selected?,
            url: item.url,
            options: item.options
          }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple-navigation-4.4.0 lib/simple_navigation/renderer/json.rb