class RailsParamValidation::AnnotationManager

def self.instance

def self.instance
  @instance ||= AnnotationManager.new
end

def annotate_class!(klass, type, value)

def annotate_class!(klass, type, value)
  annotate_method! klass, '', type, value
end

def annotate_method!(klass, method_name, type, value)

def annotate_method!(klass, method_name, type, value)
  @annotations[klass.name] ||= {}
  @annotations[klass.name][method_name] ||= {}
  @annotations[klass.name][method_name][type] = value
end

def class_annotation(class_name, type)

def class_annotation(class_name, type)
  method_annotation class_name, '', type
end

def classes

def classes
  @annotations.keys
end

def initialize

def initialize
  @annotations = {}
end

def method_annotation(class_name, method_name, type)

def method_annotation(class_name, method_name, type)
  @annotations.fetch(class_name, {}).fetch(method_name, {}).fetch(type, nil)
end

def methods(klass)

def methods(klass)
  @annotations.fetch(klass, {}).keys
end