Module: Sinatra::SwaggerExposer::Configuration::SwaggerConfigurationUtilities
- Includes:
- SwaggerParameterHelper
- Included in:
- SwaggerEndpoint, SwaggerEndpointParameter, SwaggerEndpointResponse, SwaggerHashLike, SwaggerInfo, SwaggerResponseHeader, SwaggerType, SwaggerTypeProperty
- Defined in:
- lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb
Constant Summary
Constants included from SwaggerParameterHelper
SwaggerParameterHelper::HOW_TO_PASS, SwaggerParameterHelper::HOW_TO_PASS_BODY, SwaggerParameterHelper::HOW_TO_PASS_HEADER, SwaggerParameterHelper::HOW_TO_PASS_PATH, SwaggerParameterHelper::HOW_TO_PASS_QUERY, SwaggerParameterHelper::PARAMS_DEFAULT, SwaggerParameterHelper::PARAMS_EXAMPLE, SwaggerParameterHelper::PARAMS_EXCLUSIVE_MAXIMUM, SwaggerParameterHelper::PARAMS_EXCLUSIVE_MINIMUM, SwaggerParameterHelper::PARAMS_FORMAT, SwaggerParameterHelper::PARAMS_LIST, SwaggerParameterHelper::PARAMS_MAXIMUM, SwaggerParameterHelper::PARAMS_MAX_LENGTH, SwaggerParameterHelper::PARAMS_MINIMUM, SwaggerParameterHelper::PARAMS_MIN_LENGTH, SwaggerParameterHelper::PRIMITIVE_TYPES, SwaggerParameterHelper::PRIMITIVE_TYPES_FOR_NON_BODY, SwaggerParameterHelper::TYPE_ARRAY, SwaggerParameterHelper::TYPE_BOOLEAN, SwaggerParameterHelper::TYPE_BYTE, SwaggerParameterHelper::TYPE_DATE, SwaggerParameterHelper::TYPE_DATE_TIME, SwaggerParameterHelper::TYPE_DOUBLE, SwaggerParameterHelper::TYPE_FILE, SwaggerParameterHelper::TYPE_FLOAT, SwaggerParameterHelper::TYPE_INTEGER, SwaggerParameterHelper::TYPE_LONG, SwaggerParameterHelper::TYPE_NUMBER, SwaggerParameterHelper::TYPE_PASSWORD, SwaggerParameterHelper::TYPE_STRING
Instance Method Summary collapse
-
#check_name(name) ⇒ NilClass
Validate if a value is suitable for a name.
- #get_type(type, possible_values) ⇒ Object
- #hash_to_swagger(hash) ⇒ Object
- #list_or_none(list, name) ⇒ Object
- #ref_to_type(type) ⇒ Object
-
#type_to_s(value) ⇒ String
Transform a type into a String.
-
#white_list_params(params, allowed_values, ignored_values = []) ⇒ Hash
Validate if a parameter is in a list of available values.
Instance Method Details
#check_name(name) ⇒ NilClass
Validate if a value is suitable for a name
84 85 86 87 88 89 90 91 92 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 84 def check_name(name) unless name.is_a?(String) || name.is_a?(Symbol) raise SwaggerInvalidException.new("Name [#{name}] should be a string or a symbol") end name = name.to_s if name.empty? raise SwaggerInvalidException.new('Name should not be empty') end end |
#get_type(type, possible_values) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 40 def get_type(type, possible_values) @type = type if type.nil? raise SwaggerInvalidException.new('Type is nil') elsif type.is_a?(String) || @type.is_a?(Class) @type = type_to_s(@type) check_type(@type, possible_values) elsif @type.is_a? Array @items = type_to_s(get_array_type(@type)) check_type(@items, possible_values) @type = TYPE_ARRAY else raise SwaggerInvalidException.new("Type [#{@type}] of has an unknown type, should be a class, a string or an array") end end |
#hash_to_swagger(hash) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 18 def hash_to_swagger(hash) result = {} hash.each_pair do |key, value| result[key] = value.to_swagger end result end |
#list_or_none(list, name) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 73 def list_or_none(list, name) if list.empty? ", no available #{name}" else ", possible #{name} are #{list.join(', ')}" end end |
#ref_to_type(type) ⇒ Object
14 15 16 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 14 def ref_to_type(type) {'$ref' => "#/definitions/#{type}"} end |
#type_to_s(value) ⇒ String
Transform a type into a String
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 28 def type_to_s(value) if [TrueClass, FalseClass].include? value TYPE_BOOLEAN elsif value == DateTime TYPE_DATE_TIME elsif value.is_a? Class value.to_s.downcase else value end end |
#white_list_params(params, allowed_values, ignored_values = []) ⇒ Hash
Validate if a parameter is in a list of available values
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/sinatra/swagger-exposer/configuration/swagger-configuration-utilities.rb', line 61 def white_list_params(params, allowed_values, ignored_values = []) result = {} params.each_pair do |key, value| if allowed_values.include? key result[key] = value elsif !ignored_values.include?(key) raise SwaggerInvalidException.new("Unknown property [#{key}] with value [#{value}]#{list_or_none(allowed_values, 'properties')}") end end result end |