Module: Schemacop::MethodValidation::ClassMethods

Defined in:
lib/schemacop/method_validation.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) schema_for(method, schema)



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/schemacop/method_validation.rb', line 6

def schema_for(method, schema)
  alias_method_name = "#{method}_without_schema_validation"
  alias_method alias_method_name, method

  define_method method do |*args|
    begin
      Schemacop.validate!(schema, *args)
    rescue Schemacop::Exceptions::Validation => e
      raise ArgumentError, e
    end

    send alias_method_name, args
  end
end