Class: YugabyteYSQL::Coder

Inherits:
Object
  • Object
show all
Defined in:
lib/pg/coder.rb

Direct Known Subclasses

CompositeCoder, CopyCoder, RecordCoder

Defined Under Namespace

Modules: BinaryFormatting

Instance Method Summary collapse

Constructor Details

#initialize(hash = nil, **kwargs) ⇒ Coder

Create a new coder object based on the attribute Hash.



17
18
19
20
21
22
23
# File 'lib/pg/coder.rb', line 17

def initialize(hash=nil, **kwargs)
  warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) if hash

  (hash || kwargs).each do |key, val|
    send("#{key}=", val)
  end
end

Instance Method Details

#==(v) ⇒ Object



39
40
41
# File 'lib/pg/coder.rb', line 39

def ==(v)
  self.class == v.class && to_h == v.to_h
end

#dupObject



25
26
27
# File 'lib/pg/coder.rb', line 25

def dup
  self.class.new(**to_h)
end

#inspectObject



51
52
53
54
55
56
57
58
# File 'lib/pg/coder.rb', line 51

def inspect
  str = self.to_s
  oid_str = " oid=#{oid}" unless oid==0
  format_str = " format=#{format}" unless format==0
  name_str = " #{name.inspect}" if name
  str[-1,0] = "#{name_str} #{oid_str}#{format_str}"
  str
end

#inspect_shortObject



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/pg/coder.rb', line 60

def inspect_short
  str = case format
    when 0 then "T"
    when 1 then "B"
    else format.to_s
  end
  str += "E" if respond_to?(:encode)
  str += "D" if respond_to?(:decode)

  "#{name || self.class.name}:#{str}"
end

#marshal_dumpObject



43
44
45
# File 'lib/pg/coder.rb', line 43

def marshal_dump
  Marshal.dump(to_h)
end

#marshal_load(str) ⇒ Object



47
48
49
# File 'lib/pg/coder.rb', line 47

def marshal_load(str)
  initialize(**Marshal.load(str))
end

#to_hObject

Returns coder attributes as Hash.



30
31
32
33
34
35
36
37
# File 'lib/pg/coder.rb', line 30

def to_h
  {
    oid: oid,
    format: format,
    flags: flags,
    name: name,
  }
end