method
inspect

Ruby latest stable (v2_5_5)
-
0 notes -
Class: Option
- 1_8_6_287
- 1_8_7_72
- 1_8_7_330
- 1_9_1_378
- 1_9_2_180 (0)
- 1_9_3_125
- 1_9_3_392
- 2_1_10
- 2_2_9
- 2_4_6
- 2_5_5
- 2_6_3
- What's this?
Related methods
- Class methods (4)
-
bool (<= v1_9_2_180)
-
int (<= v1_9_2_180)
-
linger (<= v1_9_2_180)
-
new (<= v1_9_2_180)
- Instance methods (10)
-
bool (<= v1_9_2_180)
-
data (<= v1_9_2_180)
-
family (<= v1_9_2_180)
-
inspect (<= v1_9_2_180)
-
int (<= v1_9_2_180)
-
level (<= v1_9_2_180)
-
linger (<= v1_9_2_180)
-
optname (<= v1_9_2_180)
-
to_s (<= v1_9_2_180)
-
unpack (<= v1_9_2_180)
= private
= protected
Method deprecated or moved
This method is deprecated or moved on the latest stable version. The last existing version (v1_9_2_180) is shown here.
These similar methods exist in v2_5_5:
- Array#inspect
- File::Stat#inspect
- Exception#inspect
- Thread#inspect
- Method#inspect
- Object#inspect
- UnboundMethod#inspect
- IO#inspect
- Hash#inspect
- Symbol#inspect
- NilClass#inspect
- String#inspect
- Range#inspect
- Regexp#inspect
- MatchData#inspect
- Struct#inspect
- Time#inspect
- Complex#inspect
- Date#inspect
- IPAddr#inspect
- Rational#inspect
- Vector#inspect
- Matrix#inspect
- OpenStruct#inspect
- Pathname#inspect
- Resolv::IPv4#inspect
- Resolv::IPv6#inspect
- Resolv::DNS::Name#inspect
- Resolv::DNS::Label::Str#inspect
- Set#inspect
- Shell::Filter#inspect
- Shell#inspect
- StringScanner#inspect
- Process::Status#inspect
- FileUtils::Entry_#inspect
- IRB::Irb#inspect
- IRB::Context#inspect
- IRB::JobManager#inspect
- IRB::History#inspect
- Net::SMTP#inspect
- Net::HTTPGenericRequest#inspect
- Net::POP3Command#inspect
- Net::WriteAdapter#inspect
- Net::BufferedIO#inspect
- Net::POP3#inspect
- Net::ReadAdapter#inspect
- Net::POPMail#inspect
- Net::HTTP#inspect
- Net::HTTPResponse#inspect
- URI::Generic#inspect
- REXML::XMLDecl#inspect
- REXML::Text#inspect
- REXML::Instruction#inspect
- REXML::Attribute#inspect
- REXML::Element#inspect
- REXML::Parsers::PullEvent#inspect
- REXML::Validation::Choice#inspect
- REXML::Validation::State#inspect
- REXML::Validation::Event#inspect
- REXML::Validation::Ref#inspect
- REXML::Validation::Interleave#inspect
- Dir#inspect
- BigDecimal#inspect
- CSV#inspect
- CSV::Row#inspect
- CSV::Table#inspect
- Encoding#inspect
- Encoding::Converter#inspect
- OpenSSL::Config#inspect
- OpenSSL::Engine#inspect
- OpenSSL::HMAC#inspect
- OpenSSL::X509::Certificate#inspect
- OptionParser::ParseError#inspect
- RDoc::Alias#inspect
- RDoc::Attr#inspect
- RDoc::NormalClass#inspect
- RDoc::NormalModule#inspect
- RDoc::Require#inspect
- RDoc::TopLevel#inspect
- RubyVM::InstructionSequence#inspect
- WIN32OLE_METHOD#inspect
- WIN32OLE_PARAM#inspect
- WIN32OLE_TYPE#inspect
- WIN32OLE_TYPELIB#inspect
- WIN32OLE_VARIABLE#inspect
- Digest::Instance#inspect
- Addrinfo#inspect
- Enumerator#inspect
- RDoc::Constant#inspect
- Resolv::DNS::Message::MessageDecoder#inspect
- Socket::UDPSource#inspect
- Gem::Dependency#inspect
- Gem::DependencyList#inspect
- Gem::Platform#inspect
- Gem::Version#inspect
- RDoc::MethodAttr#inspect
- Zlib::GzipFile::Error#inspect
- Syslog#inspect
- CGI::Cookie#inspect
- ARGF#inspect
- FalseClass#inspect
- Fiddle::Pointer#inspect
- Float#inspect
- Gem::NameTuple#inspect
- Gem::Resolver::ActivationRequest#inspect
- Gem::Resolver::IndexSpecification#inspect
- Gem::Resolver::InstallerSet#inspect
- Gem::Security::Policy#inspect
- Gem::Source::Local#inspect
- Gem::Specification#inspect
- Module#inspect
- ObjectSpace::InternalObjectWrapper#inspect
- ObjectSpace::WeakMap#inspect
- Proc#inspect
- Profiler__::Wrapper#inspect
- RDoc::Comment#inspect
- RDoc::Mixin#inspect
- RDoc::Store#inspect
- Resolv::LOC::Alt#inspect
- Resolv::LOC::Coord#inspect
- Resolv::LOC::Size#inspect
- Thread::Backtrace::Location#inspect
- TracePoint#inspect
- TrueClass#inspect
- URI::RFC2396_Parser#inspect
- URI::RFC3986_Parser#inspect
- WIN32OLE_RECORD#inspect
- Gem::Resolver::Molinillo::DependencyGraph#inspect
- Gem::Resolver::Molinillo::DependencyGraph::Vertex#inspect
- Integer#inspect
- Fiber#inspect
- IPSocket#inspect
- OpenSSL::X509::Name#inspect
inspect()
public
Returns a string which shows sockopt in human-readable form.
p Socket::Option.new(:INET, :SOCKET, :KEEPALIVE, [1].pack("i")).inspect #=> "#<Socket::Option: INET SOCKET KEEPALIVE 1>"
Show source
static VALUE sockopt_inspect(VALUE self) { int family = NUM2INT(sockopt_family_m(self)); int level = NUM2INT(sockopt_level_m(self)); int optname = NUM2INT(sockopt_optname_m(self)); VALUE data = sockopt_data(self); VALUE v, ret; ID family_id, level_id, optname_id; int inspected; StringValue(data); ret = rb_sprintf("#<%s:", rb_obj_classname(self)); family_id = rsock_intern_family_noprefix(family); if (family_id) rb_str_catf(ret, " %s", rb_id2name(family_id)); else rb_str_catf(ret, " family:%d", family); if (level == SOL_SOCKET) { rb_str_cat2(ret, " SOCKET"); optname_id = rsock_intern_so_optname(optname); if (optname_id) rb_str_catf(ret, " %s", rb_id2name(optname_id)); else rb_str_catf(ret, " optname:%d", optname); } #ifdef HAVE_SYS_UN_H else if (family == AF_UNIX) { rb_str_catf(ret, " level:%d", level); optname_id = rsock_intern_local_optname(optname); if (optname_id) rb_str_catf(ret, " %s", rb_id2name(optname_id)); else rb_str_catf(ret, " optname:%d", optname); } #endif else if (IS_IP_FAMILY(family)) { level_id = rsock_intern_iplevel(level); if (level_id) rb_str_catf(ret, " %s", rb_id2name(level_id)); else rb_str_catf(ret, " level:%d", level); v = optname_to_sym(level, optname); if (SYMBOL_P(v)) rb_str_catf(ret, " %s", rb_id2name(SYM2ID(v))); else rb_str_catf(ret, " optname:%d", optname); } else { rb_str_catf(ret, " level:%d", level); rb_str_catf(ret, " optname:%d", optname); } inspected = 0; if (level == SOL_SOCKET) family = AF_UNSPEC; switch (family) { case AF_UNSPEC: switch (level) { case SOL_SOCKET: switch (optname) { # if defined(SO_DEBUG) /* POSIX */ case SO_DEBUG: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_ERROR) /* POSIX */ case SO_ERROR: inspected = inspect_errno(level, optname, data, ret); break; # endif # if defined(SO_TYPE) /* POSIX */ case SO_TYPE: inspected = inspect_socktype(level, optname, data, ret); break; # endif # if defined(SO_ACCEPTCONN) /* POSIX */ case SO_ACCEPTCONN: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_BROADCAST) /* POSIX */ case SO_BROADCAST: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_REUSEADDR) /* POSIX */ case SO_REUSEADDR: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_KEEPALIVE) /* POSIX */ case SO_KEEPALIVE: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_OOBINLINE) /* POSIX */ case SO_OOBINLINE: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_SNDBUF) /* POSIX */ case SO_SNDBUF: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_RCVBUF) /* POSIX */ case SO_RCVBUF: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_DONTROUTE) /* POSIX */ case SO_DONTROUTE: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_RCVLOWAT) /* POSIX */ case SO_RCVLOWAT: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_SNDLOWAT) /* POSIX */ case SO_SNDLOWAT: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(SO_LINGER) /* POSIX */ case SO_LINGER: inspected = inspect_linger(level, optname, data, ret); break; # endif # if defined(SO_RCVTIMEO) /* POSIX */ case SO_RCVTIMEO: inspected = inspect_timeval_as_interval(level, optname, data, ret); break; # endif # if defined(SO_SNDTIMEO) /* POSIX */ case SO_SNDTIMEO: inspected = inspect_timeval_as_interval(level, optname, data, ret); break; # endif # if defined(SO_PEERCRED) /* GNU/Linux */ case SO_PEERCRED: inspected = inspect_peercred(level, optname, data, ret); break; # endif } break; } break; case AF_INET: #ifdef INET6 case AF_INET6: #endif switch (level) { # if defined(IPPROTO_IPV6) case IPPROTO_IPV6: switch (optname) { /* IPV6_JOIN_GROUP ipv6_mreq, IPV6_LEAVE_GROUP ipv6_mreq */ # if defined(IPV6_MULTICAST_HOPS) /* POSIX */ case IPV6_MULTICAST_HOPS: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(IPV6_MULTICAST_IF) /* POSIX */ case IPV6_MULTICAST_IF: inspected = inspect_uint(level, optname, data, ret); break; # endif # if defined(IPV6_MULTICAST_LOOP) /* POSIX */ case IPV6_MULTICAST_LOOP: inspected = inspect_uint(level, optname, data, ret); break; # endif # if defined(IPV6_UNICAST_HOPS) /* POSIX */ case IPV6_UNICAST_HOPS: inspected = inspect_int(level, optname, data, ret); break; # endif # if defined(IPV6_V6ONLY) /* POSIX */ case IPV6_V6ONLY: inspected = inspect_int(level, optname, data, ret); break; # endif } break; # endif # if defined(IPPROTO_TCP) case IPPROTO_TCP: switch (optname) { # if defined(TCP_NODELAY) /* POSIX */ case TCP_NODELAY: inspected = inspect_int(level, optname, data, ret); break; # endif } break; # endif } break; #ifdef HAVE_SYS_UN_H case AF_UNIX: switch (level) { case 0: switch (optname) { # if defined(LOCAL_PEERCRED) case LOCAL_PEERCRED: inspected = inspect_local_peercred(level, optname, data, ret); break; # endif } break; } break; #endif } if (!inspected) { rb_str_cat2(ret, " "); rb_str_append(ret, rb_str_dump(data)); } rb_str_cat2(ret, ">"); return ret; }