summaryrefslogtreecommitdiff
path: root/lib/rubygems/safe_marshal/elements.rb
blob: f8874b1b2fbccdb9a7f0133672be47b9f5fa6a19 (plain)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
# frozen_string_literal: true module Gem module SafeMarshal module Elements class Element end class Symbol < Element def initialize(name) @name = name end attr_reader :name end class UserDefined < Element def initialize(name, binary_string) @name = name @binary_string = binary_string end attr_reader :name, :binary_string end class UserMarshal < Element def initialize(name, data) @name = name @data = data end attr_reader :name, :data end class String < Element def initialize(str) @str = str end attr_reader :str end class Hash < Element def initialize(pairs) @pairs = pairs end attr_reader :pairs end class HashWithDefaultValue < Hash def initialize(pairs, default) super(pairs) @default = default end attr_reader :default end class Array < Element def initialize(elements) @elements = elements end attr_reader :elements end class Integer < Element def initialize(int) @int = int end attr_reader :int end class True < Element def initialize end TRUE = new.freeze end class False < Element def initialize end FALSE = new.freeze end class WithIvars < Element def initialize(object, ivars) @object = object @ivars = ivars end attr_reader :object, :ivars end class Object < Element def initialize(name) @name = name end attr_reader :name end class Nil < Element NIL = new.freeze end class ObjectLink < Element def initialize(offset) @offset = offset end attr_reader :offset end class SymbolLink < Element def initialize(offset) @offset = offset end attr_reader :offset end class Float < Element def initialize(string) @string = string end attr_reader :string end class Bignum < Element # rubocop:disable Lint/UnifiedInteger def initialize(sign, data) @sign = sign @data = data end attr_reader :sign, :data end class UserClass < Element def initialize(name, wrapped_object) @name = name @wrapped_object = wrapped_object end attr_reader :name, :wrapped_object end end end end 
close