class PG::Coder
This is the base class for all type cast encoder and decoder classes.
It can be used for implicit type casts by a PG::TypeMap
or to convert single values to/from their string representation by encode and decode.
Ruby nil
values are not handled by encoders, but are always transmitted as SQL NULL
value. Vice versa SQL NULL
values are not handled by decoders, but are always returned as a nil
value.
Constants
- FORMAT_ERROR_MASK
- FORMAT_ERROR_TO_PARTIAL
- FORMAT_ERROR_TO_RAISE
- FORMAT_ERROR_TO_STRING
- TIMESTAMP_APP_LOCAL
- TIMESTAMP_APP_UTC
- TIMESTAMP_DB_LOCAL
- TIMESTAMP_DB_UTC
-
define flags to be used with
PG::Coder#flags=
Attributes
Name of the coder or the corresponding data type.
This accessor is only used in PG::Coder#inspect
.
Public Class Methods
Source
# File lib/pg/coder.rb, line 16 def initialize(params={}) params.each do |key, val| send("#{key}=", val) end end
Create a new coder object based on the attribute Hash.
Public Instance Methods
Source
static VALUE pg_coder_flags_get(VALUE self) { t_pg_coder *this = RTYPEDDATA_DATA(self); return INT2NUM(this->flags); }
Get current bitwise OR-ed coder flags.
Source
static VALUE pg_coder_flags_set(VALUE self, VALUE flags) { t_pg_coder *this = RTYPEDDATA_DATA(self); this->flags = NUM2INT(flags); return flags; }
Set coder specific bitwise OR-ed flags. See the particular en- or decoder description for available flags.
The default is 0
.
Source
static VALUE pg_coder_format_get(VALUE self) { t_pg_coder *this = RTYPEDDATA_DATA(self); return INT2NUM(this->format); }
The format code that is sent alongside with an encoded query parameter value.
Source
static VALUE pg_coder_format_set(VALUE self, VALUE format) { t_pg_coder *this = RTYPEDDATA_DATA(self); this->format = NUM2INT(format); return format; }
Specifies the format code that is sent alongside with an encoded query parameter value.
The default is 0
.
Source
# File lib/pg/coder.rb, line 48 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
Source
# File lib/pg/coder.rb, line 57 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
Source
# File lib/pg/coder.rb, line 44 def marshal_load(str) initialize Marshal.load(str) end
Source
static VALUE pg_coder_oid_get(VALUE self) { t_pg_coder *this = RTYPEDDATA_DATA(self); return UINT2NUM(this->oid); }
The type OID that is sent alongside with an encoded query parameter value.
Source
static VALUE pg_coder_oid_set(VALUE self, VALUE oid) { t_pg_coder *this = RTYPEDDATA_DATA(self); this->oid = NUM2UINT(oid); return oid; }
Specifies the type OID that is sent alongside with an encoded query parameter value.
The default is 0
.
Source
# File lib/pg/coder.rb, line 27 def to_h { oid: oid, format: format, flags: flags, name: name, } end
Returns coder attributes as Hash.