class Dandelionapi::Analysis::Request
Public Instance Methods
analyze(options)
click to toggle source
# File lib/dandelionapi/analysis.rb, line 12 def analyze(options) params = filter_permitted_params options if required_params_missing? params raise MissingParameter.new "Please provide one of the following parameters: #{self.class::MANDATORY_FIELDS.join(", ")} as input" end if too_many_mandatory_parameters? params, 1 raise TooManyParameters.new "Please provide only one of the following parameters: #{self.class::MANDATORY_FIELDS.join(", ")} as input" end verify_format params do |wrong_param| raise WrongParameterFormat.new "Wrong format: #{self.class::FIELDS_FORMAT[wrong_param][:error_message]}" end call(self.class::ENDPOINT, params) end
Protected Instance Methods
filter_permitted_params(options)
click to toggle source
# File lib/dandelionapi/analysis.rb, line 32 def filter_permitted_params options params = {} options.each { |key, value| params[key.to_s] = value } params.select { |key,value| (self.class::MANDATORY_FIELDS + self.class::OPTIONAL_FIELDS).include? key } end
mandatory_fields_count(params)
click to toggle source
# File lib/dandelionapi/analysis.rb, line 46 def mandatory_fields_count params (self.class::MANDATORY_FIELDS & params.keys).size end
required_params_missing?(params)
click to toggle source
# File lib/dandelionapi/analysis.rb, line 38 def required_params_missing? params mandatory_fields_count(params) == 0 end
too_many_mandatory_parameters?(params, max)
click to toggle source
# File lib/dandelionapi/analysis.rb, line 42 def too_many_mandatory_parameters? params, max mandatory_fields_count(params) > max end
verify_format(params) { |key| ... }
click to toggle source
# File lib/dandelionapi/analysis.rb, line 50 def verify_format params, &block params.each do |key, value| if self.class::FIELDS_FORMAT[key] and self.class::FIELDS_FORMAT[key][:valid] yield key unless self.class::FIELDS_FORMAT[key][:valid].call value end end end