Hatena::Groupkeysnail

basyura snail

 | 

2010-03-25

Ruby API 検索

| 22:27 |  Ruby API 検索 - basyura snail を含むブックマーク はてなブックマーク -  Ruby API 検索 - basyura snail

存在するクラスの場合は直接リファレンスページを開き、無い場合はグーグルでサイト検索する。

こうですか (> <)

f:id:basyura:20100325222151p:image

let ruby_completes = [
"ARGF","Array","Bignum","Binding","Class","Comparable","Continuation","Data","Dir",
"ENV","Enumerable","Enumerator","Errno","FalseClass",
"File","File::Constants","File::Stat","FileTest","Fixnum","Float","GC","Hash","IO","Integer",
"Kernel","Marshal","MatchData","Math","Method","Module","NilClass","Numeric","Object",
"ObjectSpace","Precision","Proc","Process","Process::GID","Process::Status",
"Process::Sys","Process::UID","Range","Regexp","Signal",
"String","Struct","Struct::Tms","Symbol","Thread","ThreadGroup","Time","TrueClass",
"UnboundMethod","ArgumentError","EOFError","Errno::E2BIG","Errno::EACCES","Errno::EADDRINUSE",
"Errno::EADDRNOTAVAIL","Errno::EADV","Errno::EAFNOSUPPORT","Errno::EAGAIN","Errno::EALREADY",
"Errno::EBADE","Errno::EBADF","Errno::EBADFD","Errno::EBADMSG","Errno::EBADR","Errno::EBADRQC",
"Errno::EBADSLT","Errno::EBFONT","Errno::EBUSY","Errno::ECHILD","Errno::ECHRNG","Errno::ECOMM",
"Errno::ECONNABORTED","Errno::ECONNREFUSED","Errno::ECONNRESET","Errno::EDEADLK","Errno::EDEADLOCK",
"Errno::EDESTADDRREQ","Errno::EDOM","Errno::EDOTDOT","Errno::EDQUOT","Errno::EEXIST","Errno::EFAULT",
"Errno::EFBIG","Errno::EHOSTDOWN","Errno::EHOSTUNREACH","Errno::EIDRM","Errno::EILSEQ",
"Errno::EINPROGRESS","Errno::EINTR","Errno::EINVAL","Errno::EIO","Errno::EISCONN","Errno::EISDIR",
"Errno::EISNAM","Errno::EL2HLT","Errno::EL2NSYNC","Errno::EL3HLT","Errno::EL3RST","Errno::ELIBACC",
"Errno::ELIBBAD","Errno::ELIBEXEC","Errno::ELIBMAX","Errno::ELIBSCN","Errno::ELNRNG","Errno::ELOOP",
"Errno::EMFILE","Errno::EMLINK","Errno::EMSGSIZE","Errno::EMULTIHOP","Errno::ENAMETOOLONG",
"Errno::ENAVAIL","Errno::ENETDOWN","Errno::ENETRESET","Errno::ENETUNREACH","Errno::ENFILE",
"Errno::ENOANO","Errno::ENOBUFS","Errno::ENOCSI","Errno::ENODATA","Errno::ENODEV","Errno::ENOENT",
"Errno::ENOEXEC","Errno::ENOLCK","Errno::ENOLINK","Errno::ENOMEM","Errno::ENOMSG","Errno::ENONET",
"Errno::ENOPKG","Errno::ENOPROTOOPT","Errno::ENOSPC","Errno::ENOSR","Errno::ENOSTR","Errno::ENOSYS",
"Errno::ENOTBLK","Errno::ENOTCONN","Errno::ENOTDIR","Errno::ENOTEMPTY","Errno::ENOTNAM","Errno::ENOTSOCK",
"Errno::ENOTTY","Errno::ENOTUNIQ","Errno::ENXIO","Errno::EOPNOTSUPP","Errno::EOVERFLOW","Errno::EPERM",
"Errno::EPFNOSUPPORT","Errno::EPIPE","Errno::EPROTO","Errno::EPROTONOSUPPORT","Errno::EPROTOTYPE",
"Errno::ERANGE","Errno::EREMCHG","Errno::EREMOTE","Errno::EREMOTEIO","Errno::ERESTART","Errno::EROFS",
"Errno::ERROR","Errno::ESHUTDOWN","Errno::ESOCKTNOSUPPORT","Errno::ESPIPE","Errno::ESRCH","Errno::ESRMNT",
"Errno::ESTALE","Errno::ESTRPIPE","Errno::ETIME","Errno::ETIMEDOUT","Errno::ETOOMANYREFS",
"Errno::ETXTBSY","Errno::EUCLEAN","Errno::EUNATCH","Errno::EUSERS","Errno::EWOULDBLOCK","Errno::EXDEV",
"Errno::EXFULL","Errno::EXXX","Exception","FloatDomainError","IOError","IndexError","Interrupt",
"LoadError","LocalJumpError","NameError","NoMemoryError","NoMethodError","NotImplementedError",
"RangeError","RegexpError","RuntimeError","ScriptError","SecurityError","SignalException",
"StandardError","StopIteration","SyntaxError","SystemCallError","SystemExit","SystemStackError",
"ThreadError","TypeError","ZeroDivisionError","fatal"];

shell.add("rubyapi" , M({ja: "Ruby API 検索", en: "ruby api search"}) ,
    function (args, extra) {
      let site = "http://doc.okkez.net/188";
      for(let i = 0 ; i < ruby_completes.length ; i++) {
        if(ruby_completes[i] == extra.left) {
          let url = site + "/view/class/" + extra.left;
          gBrowser.loadOneTab(url, null, null, null, extra.bang);
          return;
        }
      }
      let words = encodeURIComponent(extra.left + " site:" + site);
      let url = "http://www.google.co.jp/search?q=" + words + "&ie=utf-8&oe=utf-8";
      gBrowser.loadOneTab(url, null, null, null, extra.bang);
    },
    {
      bang      : true,
      literal   : 0,
      completer : function (args, extra) {
        return completer.matcher.substring(ruby_completes)(extra.left || "");
      }
    },
  true
);
トラックバック - http://keysnail.g.hatena.ne.jp/basyura/20100325
 |