Class: StrongJSON::Type::ErrorPath

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type:, parent:) ⇒ ErrorPath

Returns a new instance of ErrorPath.



405
406
407
408
# File 'lib/strong_json/type.rb', line 405

def initialize(type:, parent:)
  @type = type
  @parent = parent
end

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



403
404
405
# File 'lib/strong_json/type.rb', line 403

def parent
  @parent
end

#typeObject (readonly)

Returns the value of attribute type.



403
404
405
# File 'lib/strong_json/type.rb', line 403

def type
  @type
end

Class Method Details

.root(type) ⇒ Object



422
423
424
# File 'lib/strong_json/type.rb', line 422

def self.root(type)
  self.new(type: type, parent: nil)
end

Instance Method Details

#dig(key:, type:) ⇒ Object



410
411
412
413
414
# File 'lib/strong_json/type.rb', line 410

def dig(key:, type:)
  # @type var parent: [Integer | Symbol | nil, ErrorPath]
  parent = [key, self]
  self.class.new(type: type, parent: parent)
end

#expand(type:) ⇒ Object



416
417
418
419
420
# File 'lib/strong_json/type.rb', line 416

def expand(type:)
  # @type var parent: [Integer | Symbol | nil, ErrorPath]
  parent = [nil, self]
  self.class.new(type: type, parent: parent)
end

#root?Boolean

Returns:

  • (Boolean)


426
427
428
# File 'lib/strong_json/type.rb', line 426

def root?
  !parent
end

#to_sObject



430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
# File 'lib/strong_json/type.rb', line 430

def to_s
  if pa = parent
    if key = pa[0]
      pa[1].to_s + case key
                   when Integer
                     "[#{key}]"
                   when Symbol
                     ".#{key}"
                   end
    else
      pa[1].to_s
    end
  else
    "$"
  end
end