Class: ValidateParams::Types::Array

Inherits:
Object
  • Object
show all
Defined in:
lib/validate_params/types/array.rb

Class Method Summary collapse

Class Method Details

.cast(raw_value, of: ::String, reject_blank: false) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/validate_params/types/array.rb', line 26

def self.cast(raw_value, of: ::String, reject_blank: false, **)
  value = raw_value
  value.reject!(&:blank?) if reject_blank

  case of.to_s
  when "Integer"
    value.map { |item| Types::Integer.cast(item) }
  when "Float"
    value.map { |item| Types::Float.cast(item) }
  else
    value
  end
end

.valid?(value, of: ::String, reject_blank: false) ⇒ Boolean

Returns:



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/validate_params/types/array.rb', line 6

def self.valid?(value, of: ::String, reject_blank: false, **)
  return false unless value.is_a?(::Array)

  val = value
  val.reject!(&:blank?) if reject_blank

  case of.to_s
  when "Integer"
    val.all? { |item| Types::Integer.valid?(item) }
  when "Float"
    val.all? { |item| Types::Float.valid?(item) }
  when "String"
    val.all? { |item| item.is_a?(::String) }
  when "Hash"
    val.all? { |item| item.is_a?(::Hash) || item.is_a?(ActionController::Parameters) }
  else
    true
  end
end