lib/simple_navigation/rendering/renderer/json.rb in simple-navigation-3.12.0 vs lib/simple_navigation/rendering/renderer/json.rb in simple-navigation-3.12.1
- old
+ new
@@ -1,29 +1,27 @@
module SimpleNavigation
module Renderer
-
- # Renders the navigation items as a object tree serialized as a json string, can also output raw ruby Hashes
+ # 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
+ options[:as_hash] ? results : results.to_json
end
private
def hash_render(item_container)
- return nil if item_container.nil?
+ return nil unless item_container
+
item_container.items.map do |item|
- item_hash = {
- :name => item.name,
- :url => item.url,
- :selected => item.selected?,
- :items => hash_render(item.sub_navigation)
+ {
+ items: hash_render(item.sub_navigation),
+ name: item.name,
+ selected: item.selected?,
+ url: item.url
}
- end
+ end
end
-
end
end
end