Sha256: 1b2f419ed650be9e9bfdc7df05d2ae3aa3d53b2422bf91ffacff37dc3aa6ccf3

Contents?: true

Size: 592 Bytes

Versions: 31

Compression:

Stored size: 592 Bytes

Contents

# -*- ruby -*-
# frozen_string_literal: true

require 'ipaddr'

module PG
	module TextEncoder
		class Inet < SimpleEncoder
			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
		end
	end
end # module PG

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
pg-1.5.7-x86-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.7-x64-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.7-x64-mingw-ucrt lib/pg/text_encoder/inet.rb
pg-1.5.7 lib/pg/text_encoder/inet.rb
pg-1.5.6-x64-mingw-ucrt lib/pg/text_encoder/inet.rb
pg-1.5.6-x64-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.6-x86-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.6 lib/pg/text_encoder/inet.rb
pg-1.5.5-x86-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.5-x64-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.5-x64-mingw-ucrt lib/pg/text_encoder/inet.rb
pg-1.5.5 lib/pg/text_encoder/inet.rb
pg-1.5.4-x86-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.4-x64-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.4-x64-mingw-ucrt lib/pg/text_encoder/inet.rb
pg-1.5.4 lib/pg/text_encoder/inet.rb
pg-1.5.3-x64-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.3-x64-mingw-ucrt lib/pg/text_encoder/inet.rb
pg-1.5.3-x86-mingw32 lib/pg/text_encoder/inet.rb
pg-1.5.3 lib/pg/text_encoder/inet.rb