class Api::V1::ExamplesController < ApplicationController include ValidateParams def create params[:type] ||= 1 self.send("_#{params[:type]}") render json: { example: params[:example] } end private def _presence validate_params! :example end def _presence_2 validate_params! :example, :example2 end def _type validate_params! example: Array end def _type_2 validate_params! example: { type: Array } end def _types validate_params! example: Array, example2: String end def _type_and_size validate_params! example: { type: Array, size: 2 } end def _range validate_params! example: { range: 0..10 } end def _regex validate_params! example: { regex: /myregex/ } end def _proc validate_params! example: { custom: Proc.new { |value| value == 'a' } } end def _default validate_params! example: { default: 'abc' } end def _in validate_params! example: { in: %w(test1 test2) } end def _cast validate_params! example: { cast: :Integer } end end