# module PG::BasicTypeRegistry

This module defines the mapping between OID and encoder/decoder classes for `PG::BasicTypeMapForResults`, `PG::BasicTypeMapForQueries` and `PG::BasicTypeMapBasedOnResult`.

Additional types can be added like so:

    require 'pg'
    require 'ipaddr'

    class InetDecoder < PG::SimpleDecoder
      def decode(string, tuple=nil, field=nil)
        IPAddr.new(string)
      end
    end
    class InetEncoder < PG::SimpleEncoder
      def encode(ip_addr)
        ip_addr.to_s
      end
    end

    # 0 if for text format, can also be 1 for binary
    PG::BasicTypeRegistry.register_type(0, 'inet', InetEncoder, InetDecoder)

### Constants

CODERS_BY_NAME

  The key of this hash maps to the `typname` column from the table. encoder_map is then dynamically built with oids as the key and Type objects as values.

ValidDirections
ValidFormats

### Protected Instance Methods

check_format_and_direction(format, direction) click to toggle source

    # File lib/pg/basic_type_mapping.rb, line 145
    def check_format_and_direction(format, direction)
            raise(ArgumentError, "Invalid format value %p" % format) unless ValidFormats[format]
            raise(ArgumentError, "Invalid direction %p" % direction) unless ValidDirections[direction]
    end