Method: JSONSchemer::Result#basic

Defined in:
lib/json_schemer/result.rb

#basicObject

[View source]

126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/json_schemer/result.rb', line 126

def basic
  out = to_output_unit
  if nested&.any?
    out[nested_key] = Enumerator.new do |yielder|
      results = [self]
      while result = results.pop
        if result.ignore_nested || !result.nested&.any?
          yielder << result.to_output_unit
        else
          previous_results_size = results.size
          result.nested.reverse_each do |nested_result|
            results << nested_result if nested_result.valid == valid
          end
          yielder << result.to_output_unit unless (results.size - previous_results_size) == 1
        end
      end
    end
  end
  out
end