class Etwin::Link::VersionedTwinoidLink

Versioned Twinoid link

Attributes

current[R]
old[R]

Public Class Methods

deserialize(raw) click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 85
def deserialize(raw)
  raw_current = raw['current']
  current = raw_current.nil? ? nil : TwinoidLink.deserialize(raw_current)
  new(current, [])
end
from_json(json_str) click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 80
def from_json(json_str)
  deserialize JSON.parse(json_str)
end
new(current, old) click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 20
def initialize(current, old)
  @current = T.let(current, T.nilable(TwinoidLink))
  @old = T.let(old.freeze, T::Array[TwinoidLink])
  freeze
end

Public Instance Methods

==(other) click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 27
def ==(other)
  case other
  when VersionedTwinoidLink
    @current == other.current && @old == other.old
  else
    false
  end
end
as_json() click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 48
def as_json
  {
    'current' => @current.nil? ? nil : @current.as_json,
    'old' => @old.map(&:as_json)
  }
end
hash() click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 37
def hash
  [@current, @old].hash
end
inspect() click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 56
def inspect
  PP.singleline_pp(self, String.new)
end
pretty_print(pp) click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 61
def pretty_print(pp)  # rubocop:disable Metrics/MethodLength
  pp.group(0, "#{self.class.name}(", ')') do
    pp.nest 1 do
      pp.breakable ''
      pp.text 'current='
      pp.pp @current
      pp.text ','
      pp.breakable ''
      pp.text 'old='
      pp.pp @old
    end
    pp.breakable ''
  end
end
to_json(opts = nil) click to toggle source
# File lib/etwin/link/versioned_twinoid_link.rb, line 43
def to_json(opts = nil)
  JSON.generate(as_json, opts)
end