class Etwin::Link::VersionedLinks

Versioned Eternal-Twin links

Attributes

hammerfest_es[R]
hammerfest_fr[R]
hfest_net[R]
twinoid[R]

Public Class Methods

deserialize(raw) click to toggle source
# File lib/etwin/link/versioned_links.rb, line 113
def deserialize(raw)
  hammerfest_es = VersionedHammerfestLink.deserialize(raw['hammerfest_es'])
  hammerfest_fr = VersionedHammerfestLink.deserialize(raw['hammerfest_fr'])
  hfest_net = VersionedHammerfestLink.deserialize(raw['hfest_net'])
  twinoid = VersionedTwinoidLink.deserialize(raw['twinoid'])
  new(hammerfest_es, hammerfest_fr, hfest_net, twinoid)
end
from_json(json_str) click to toggle source
# File lib/etwin/link/versioned_links.rb, line 108
def from_json(json_str)
  deserialize JSON.parse(json_str)
end
new(hammerfest_es, hammerfest_fr, hfest_net, twinoid) click to toggle source
# File lib/etwin/link/versioned_links.rb, line 33
def initialize(hammerfest_es, hammerfest_fr, hfest_net, twinoid)
  @hammerfest_es = T.let(hammerfest_es, VersionedHammerfestLink)
  @hammerfest_fr = T.let(hammerfest_fr, VersionedHammerfestLink)
  @hfest_net = T.let(hfest_net, VersionedHammerfestLink)
  @twinoid = T.let(twinoid, VersionedTwinoidLink)
  freeze
end

Public Instance Methods

==(other) click to toggle source
# File lib/etwin/link/versioned_links.rb, line 42
def ==(other)
  case other
  when VersionedLinks
    @hammerfest_es == other.hammerfest_es &&
      @hammerfest_fr == other.hammerfest_fr &&
      @hfest_net == other.hfest_net &&
      @twinoid == other.twinoid
  else
    false
  end
end
as_json() click to toggle source
# File lib/etwin/link/versioned_links.rb, line 66
def as_json
  {
    'hammerfest_es' => @hammerfest_es.as_json,
    'hammerfest_fr' => @hammerfest_fr.as_json,
    'hfest_net' => @hfest_net.as_json,
    'twinoid' => @twinoid.as_json
  }
end
hash() click to toggle source
# File lib/etwin/link/versioned_links.rb, line 55
def hash
  [@hammerfest_es, @hammerfest_fr, @hfest_net, @twinoid].hash
end
inspect() click to toggle source
# File lib/etwin/link/versioned_links.rb, line 76
def inspect
  PP.singleline_pp(self, String.new)
end
pretty_print(pp) click to toggle source
# File lib/etwin/link/versioned_links.rb, line 81
def pretty_print(pp)  # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  pp.group(0, "#{self.class.name}(", ')') do
    pp.nest 1 do
      pp.breakable ''
      pp.text 'hammerfest_es='
      pp.pp @hammerfest_es
      pp.text ','
      pp.breakable ''
      pp.text 'hammerfest_fr='
      pp.pp @hammerfest_fr
      pp.text ','
      pp.breakable ''
      pp.text 'hfest_net='
      pp.pp @hfest_net
      pp.text ','
      pp.breakable ''
      pp.text 'twinoid='
      pp.pp @twinoid
    end
    pp.breakable ''
  end
end
to_json(opts = nil) click to toggle source
# File lib/etwin/link/versioned_links.rb, line 61
def to_json(opts = nil)
  JSON.generate(as_json, opts)
end