Class: JSONP3::SymbolNameSelector

Inherits:
NameSelector show all
Defined in:
lib/json_p3/selector.rb

Overview

This non-standard name selector selects values from hashes given a string or symbol key.

Instance Attribute Summary

Attributes inherited from NameSelector

#name

Attributes inherited from Selector

#token

Instance Method Summary collapse

Methods inherited from NameSelector

#==, #hash, #singular?, #to_s

Methods inherited from Selector

#resolve_enum, #singular?

Constructor Details

#initialize(env, token, name) ⇒ SymbolNameSelector

Returns a new instance of SymbolNameSelector.



74
75
76
77
# File 'lib/json_p3/selector.rb', line 74

def initialize(env, token, name)
  super
  @sym = @name.to_sym
end

Instance Method Details

#resolve(node) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/json_p3/selector.rb', line 79

def resolve(node)
  if node.value.is_a?(Hash)
    if node.value.key?(@name)
      [node.new_child(node.value[@name], @name)]
    elsif node.value.key?(@sym)
      [node.new_child(node.value[@sym], @name)]
    else
      []
    end
  else
    []
  end
end