Class: StrongJSON::Type::Array

Inherits:
Object
  • Object
show all
Includes:
Match
Defined in:
lib/strong_json/type.rb

Instance Method Summary collapse

Methods included from Match

#===, #=~

Constructor Details

#initialize(type) ⇒ Array

Returns a new instance of Array.



109
110
111
# File 'lib/strong_json/type.rb', line 109

def initialize(type)
  @type = type
end

Instance Method Details

#coerce(value, path: []) ⇒ Object



113
114
115
116
117
118
119
120
121
# File 'lib/strong_json/type.rb', line 113

def coerce(value, path: [])
  if value.is_a?(::Array)
    value.map.with_index do |v, i|
      @type.coerce(v, path: path+[i])
    end
  else
    raise Error.new(path: path, type: self, value: value)
  end
end

#to_sObject



123
124
125
# File 'lib/strong_json/type.rb', line 123

def to_s
  "array(#{@type})"
end