Sha256: b78faa026e3b15302a2ab5d9917f517101cf5dd3e973adfaf50879c5485c62cb

Contents?: true

Size: 1.31 KB

Versions: 88

Compression:

Stored size: 1.31 KB

Contents

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

require 'json'
require 'ipaddr'

module PG
	module TextEncoder
		class Date < SimpleEncoder
			def encode(value)
				value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d") : value
			end
		end

		class TimestampWithoutTimeZone < SimpleEncoder
			def encode(value)
				value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d %H:%M:%S.%N") : value
			end
		end

		class TimestampUtc < SimpleEncoder
			def encode(value)
				value.respond_to?(:utc) ? value.utc.strftime("%Y-%m-%d %H:%M:%S.%N") : value
			end
		end

		class TimestampWithTimeZone < SimpleEncoder
			def encode(value)
				value.respond_to?(:strftime) ? value.strftime("%Y-%m-%d %H:%M:%S.%N %:z") : value
			end
		end

		class JSON < SimpleEncoder
			def encode(value)
				::JSON.generate(value, quirks_mode: true)
			end
		end

		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

88 entries across 88 versions & 4 rubygems

Version Path
rubypitaya-3.12.5 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/pg-1.4.5/lib/pg/text_encoder.rb
cipherstash-pg-1.0.0.beta.1-x86_64-darwin-21 ./lib/pg/text_encoder.rb
cipherstash-pg-1.0.0.beta.1-arm64-darwin-21 ./lib/pg/text_encoder.rb
cipherstash-pg-1.0.0.beta.1-x86_64-linux ./lib/pg/text_encoder.rb
cipherstash-pg-1.0.0.beta.1-x86_64-darwin-22 ./lib/pg/text_encoder.rb
cipherstash-pg-1.0.0.beta.1-arm64-darwin-22 ./lib/pg/text_encoder.rb
cipherstash-pg-1.0.0.beta.1-aarch64-linux ./lib/pg/text_encoder.rb
pg-1.4.6-x86-mingw32 lib/pg/text_encoder.rb
pg-1.4.6-x64-mingw32 lib/pg/text_encoder.rb
pg-1.4.6-x64-mingw-ucrt lib/pg/text_encoder.rb
pg-1.4.6 lib/pg/text_encoder.rb
rubypitaya-3.12.4 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/pg-1.4.5/lib/pg/text_encoder.rb
rubypitaya-3.12.3 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/pg-1.4.5/lib/pg/text_encoder.rb
rubypitaya-3.12.2 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/pg-1.4.5/lib/pg/text_encoder.rb
pg-1.4.5-x86-mingw32 lib/pg/text_encoder.rb
pg-1.4.5-x64-mingw-ucrt lib/pg/text_encoder.rb
pg-1.4.5-x64-mingw32 lib/pg/text_encoder.rb
pg-1.4.5 lib/pg/text_encoder.rb
pg-1.4.4-x86-mingw32 lib/pg/text_encoder.rb
pg-1.4.4-x64-mingw32 lib/pg/text_encoder.rb