Class: ApipieDSL::Validator::ArrayValidator

Inherits:
BaseValidator show all
Defined in:
lib/apipie_dsl/validator.rb

Instance Attribute Summary

Attributes inherited from BaseValidator

#param_description

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseValidator

#==, #docs, find, inherited, #inspect, #inspected_fields, #merge_with, #sub_params, #to_s, #valid?

Constructor Details

#initialize(param_description, argument, options = {}) ⇒ ArrayValidator

Returns a new instance of ArrayValidator.



186
187
188
189
190
191
# File 'lib/apipie_dsl/validator.rb', line 186

def initialize(param_description, argument, options = {})
  super(param_description)
  @type = argument
  @items_type = options[:of]
  @items_enum = options[:in]
end

Class Method Details

.build(param_description, argument, options, block) ⇒ Object



193
194
195
196
197
# File 'lib/apipie_dsl/validator.rb', line 193

def self.build(param_description, argument, options, block)
  return if argument != Array || block.is_a?(Proc)

  new(param_description, argument, options)
end

Instance Method Details

#descriptionObject



210
211
212
# File 'lib/apipie_dsl/validator.rb', line 210

def description
  "Must be an array of #{items_type}"
end

#expected_typeObject



214
215
216
# File 'lib/apipie_dsl/validator.rb', line 214

def expected_type
  'array'
end

#process_value(values) ⇒ Object



206
207
208
# File 'lib/apipie_dsl/validator.rb', line 206

def process_value(values)
  values || []
end

#validate(values) ⇒ Object



199
200
201
202
203
204
# File 'lib/apipie_dsl/validator.rb', line 199

def validate(values)
  return false unless process_value(values).respond_to?(:each) &&
                      !process_value(values).is_a?(String)

  process_value(values).all? { |v| validate_item(v) }
end