Class: SqliteValidationHook

Inherits:
Mumukit::Hook
  • Object
show all
Includes:
Sqlite::TestHelper
Defined in:
lib/validation_hook.rb

Instance Method Summary collapse

Methods included from Sqlite::TestHelper

#collect_tests, #fail!, #parsers

Instance Method Details

#fields_of_test_types(tests) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/validation_hook.rb', line 25

def fields_of_test_types(tests)
  # Assumes pass types_tests
  collect_tests(tests).each do |test|
    parser = parsers[test.type.to_sym].new
    fail! "message.failure.tests.fields.#{test.type}" unless parser.test_has_valid_fields? test
  end
end

#lint_tests(tests) ⇒ Object



11
12
13
14
15
# File 'lib/validation_hook.rb', line 11

def lint_tests(tests)
  YAML.load tests
rescue
  fail! 'message.failure.tests.lint'
end

#types_tests(tests) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/validation_hook.rb', line 17

def types_tests(tests)
  # Assumes pass lint_tests
  collect_tests(tests).each do |test|
    fail! 'message.failure.tests.type' if test.type.blank?
    fail!('message.failure.tests.types', type: test.type) unless parsers.has_key? test.type.to_sym
  end
end

#validate!(request) ⇒ Object



5
6
7
8
9
# File 'lib/validation_hook.rb', line 5

def validate!(request)
  lint_tests request.test
  types_tests request.test
  fields_of_test_types request.test
end