class Schemacop::Result

Attributes

current_path[R]
errors[R]

Public Class Methods

new(root = nil, original_data = nil) click to toggle source
# File lib/schemacop/v3/result.rb, line 6
def initialize(root = nil, original_data = nil)
  @current_path = []
  @errors = {}
  @root = root
  @original_data = original_data
end

Public Instance Methods

data() click to toggle source
# File lib/schemacop/v3/result.rb, line 17
def data
  if errors.any?
    return nil
  else
    return @data ||= @root.cast(@original_data)
  end
end
error(message) click to toggle source
# File lib/schemacop/v3/result.rb, line 25
def error(message)
  @errors[current_path] ||= []
  @errors[current_path] << message
end
exception_message() click to toggle source
# File lib/schemacop/v3/result.rb, line 34
def exception_message
  messages.join("\n")
end
in_path(segment) { || ... } click to toggle source
# File lib/schemacop/v3/result.rb, line 50
def in_path(segment)
  prev_path = @current_path
  @current_path += [segment]
  yield
ensure
  @current_path = prev_path
end
messages() click to toggle source
# File lib/schemacop/v3/result.rb, line 38
def messages
  messages = []

  @errors.each do |path, path_messages|
    messages += path_messages.map do |path_message|
      "/#{path.join('/')}: #{path_message}"
    end
  end

  return messages
end
messages_by_path() click to toggle source
# File lib/schemacop/v3/result.rb, line 30
def messages_by_path
  @errors.transform_keys { |k| "/#{k.join('/')}" }
end
valid?() click to toggle source
# File lib/schemacop/v3/result.rb, line 13
def valid?
  errors.empty?
end