Class: Jsapi::JSON::Array

Inherits:
Value
  • Object
show all
Defined in:
lib/jsapi/json/array.rb

Overview

Represents a JSON array.

Instance Attribute Summary

Attributes inherited from Value

#schema

Instance Method Summary collapse

Methods inherited from Value

#null?

Constructor Details

#initialize(elements, schema, definitions) ⇒ Array

Returns a new instance of Array.



7
8
9
10
11
12
# File 'lib/jsapi/json/array.rb', line 7

def initialize(elements, schema, definitions)
  super(schema)
  @elements = Array(elements).map do |element|
    JSON.wrap(element, schema.items, definitions)
  end
end

Instance Method Details

#empty?Boolean

Returns true if it contains no elements, false otherwise.

Returns:



15
16
17
# File 'lib/jsapi/json/array.rb', line 15

def empty?
  @elements.empty?
end

#inspectObject

:nodoc:



19
20
21
# File 'lib/jsapi/json/array.rb', line 19

def inspect # :nodoc:
  "#<#{self.class.name} [#{@elements.map(&:inspect).join(', ')}]>"
end

#validate(errors) ⇒ Object

See Value#validate.



24
25
26
27
28
# File 'lib/jsapi/json/array.rb', line 24

def validate(errors)
  return false unless super

  @elements.map { |element| element.validate(errors) }.all?
end

#valueObject



30
31
32
# File 'lib/jsapi/json/array.rb', line 30

def value
  @value ||= @elements.map(&:value)
end