class Inspector::Validator

Public Class Methods

new(metadata_map, walker, type_metadata_class) click to toggle source
# File lib/inspector/validator.rb, line 3
def initialize(metadata_map, walker, type_metadata_class)
  @metadata_map = metadata_map
  @walker = walker
  @type_metadata_class = type_metadata_class
end

Public Instance Methods

valid(type) { |metadata| ... } click to toggle source
# File lib/inspector/validator.rb, line 9
def valid(type, &block)
  metadata = @type_metadata_class.new(type)
  if block_given?
    block.arity == 1 ? yield(metadata) : metadata.instance_eval(&block)
  end
  @metadata_map[type] = metadata

  nil
end
validate(object, opts = {}) click to toggle source
# File lib/inspector/validator.rb, line 19
def validate(object, opts = {})
  type       = opts.fetch(:as) { object.class }
  metadata   = @metadata_map[type]

  @walker.walk_object(metadata, object)
end