Class: YugabyteYSQL::TextEncoder::Inet

Inherits:
SimpleEncoder
  • Object
show all
Defined in:
lib/pg/text_encoder/inet.rb

Instance Method Summary collapse

Instance Method Details

#encode(value) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/pg/text_encoder/inet.rb', line 9

def encode(value)
	case value
	when IPAddr
		default_prefix = (value.family == Socket::AF_INET ? 32 : 128)
		s = value.to_s
		if value.respond_to?(:prefix)
			prefix = value.prefix
		else
			range = value.to_range
			prefix  = default_prefix - Math.log(((range.end.to_i - range.begin.to_i) + 1), 2).to_i
		end
		s << "/" << prefix.to_s if prefix != default_prefix
		s
	else
		value
	end
end