class PG::TextEncoder::Inet - pg-1.1.4 Documentation

# class PG::TextEncoder::Inet

### Public Instance Methods

encode(value) click to toggle source

    # File lib/pg/text_encoder.rb, line 48
    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