class Krikri::JsonParser::Value
Attributes
node[RW]
Public Class Methods
new(node)
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 25 def initialize(node) @node = node end
Public Instance Methods
attributes()
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 29 def attributes raise NotImplementedError, 'Attributes are not supported for JSON' end
children()
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 33 def children @node.is_a?(Hash) ? @node.keys : [] end
value()
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 37 def value @node.is_a?(Hash) ? @node.to_s : @node end
values?()
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 41 def values? !select_values.empty? end
Private Instance Methods
attribute(name)
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 66 def attribute(name) msg = "Attributes are not supported for JSON; got attribute `#{name}`" raise NotImplementedError, msg end
get_child_nodes(name, node: @node)
click to toggle source
@see Krikri::Parser#get_child_nodes
@param name_exp [String] Object property name @return [Krikri::Parser::ValueArray]
# File lib/krikri/parsers/json_parser.rb, line 52 def get_child_nodes(name, node: @node) return get_child_nodes(name, node: node.flatten.first) if node.is_a?(Array) if node[name].is_a?(Array) vals = node[name].map { |node| self.class.new(node) } else vals = Array(self.class.new(node[name])) end vals.reject! { |n| n.node.nil? } Krikri::Parser::ValueArray.new(vals) end
select_values()
click to toggle source
# File lib/krikri/parsers/json_parser.rb, line 71 def select_values @node.is_a?(Hash) ? [] : @node end