Class: LingotekClient::Schema

Inherits:
Object
  • Object
show all
Extended by:
APISchema
Defined in:
lib/lingotek-client/schema.rb

Class Method Summary collapse

Methods included from APISchema

schema

Class Method Details

.valid_methodsObject



14
15
16
# File 'lib/lingotek-client/schema.rb', line 14

def valid_methods
  schema.map{ |k,v| k }
end

.validate!(method, inputs) ⇒ Object



9
10
11
12
# File 'lib/lingotek-client/schema.rb', line 9

def validate!(method, inputs)
  m = method.to_sym
  validate_method!(m) && validate_required_input!(m, inputs) && validate_invalid_input!(m, inputs)
end

.validate_invalid_input!(m, inputs) ⇒ Object



23
24
25
26
27
# File 'lib/lingotek-client/schema.rb', line 23

def validate_invalid_input!(m, inputs)
  invalid_input = inputs - (schema[m][:required] + schema[m][:optional])
  throw Exception.new "'#{invalid_input.join(',')}' invalid input" unless invalid_input.empty?
  true
end

.validate_method!(m) ⇒ Object



18
19
20
21
# File 'lib/lingotek-client/schema.rb', line 18

def validate_method!(m)
  throw Exception.new "'#{m}' invalid method" unless valid_methods.include?(m)
  true
end

.validate_required_input!(m, inputs) ⇒ Object



29
30
31
32
33
# File 'lib/lingotek-client/schema.rb', line 29

def validate_required_input!(m, inputs)
  missing_required = schema[m][:required] - inputs.map{ |i| i.to_sym } 
  throw Exception.new "'#{missing_required.join(',')}' required input" unless missing_required.empty?
  true
end