module Tree::Utils::JSONConverter
Provides utility methods to convert a {Tree::TreeNode} to and from JSON.
Public Class Methods
# File lib/tree/utils/json_converter.rb, line 45 def self.included(base) base.extend(ClassMethods) end
Public Instance Methods
Creates a JSON ready Hash for the to_json
method.
@author Eric Cline (github.com/escline) @since 0.8.3
@return A hash based representation of the JSON
Rails uses JSON in ActiveSupport, and all Rails JSON encoding goes through as_json
.
@param [Object] options
@see to_json
@see stackoverflow.com/a/6880638/273808 noinspection RubyUnusedLocalVariable
# File lib/tree/utils/json_converter.rb, line 66 def as_json(options = {}) json_hash = { name: name, content: content, JSON.create_id => self.class.name } if has_children? json_hash['children'] = children end json_hash end
Creates a JSON representation of this node including all it's children. This requires the JSON gem to be available, or else the operation fails with a warning message. Uses the Hash output of as_json
method.
@author Dirk Breuer (github.com/railsbros-dirk) @since 0.7.0
@return The JSON representation of this subtree.
@see ClassMethods#json_create
@see as_json
@see flori.github.com/json
# File lib/tree/utils/json_converter.rb, line 94 def to_json(*a) as_json.to_json(*a) end