Method: JSONSchemer::Result#basic

Defined in:
lib/json_schemer/result.rb

#basicObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/json_schemer/result.rb', line 65

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