ブックマーク / docs.ruby-lang.org (8)

  • ruby 1.9 feature (Ruby 1.8.7)

    ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。 記号について(特に重要なものは大文字(主観)) * カテゴリ [ruby]: ruby インタプリタの変更 [api]: 拡張ライブラリ API [lib]: ライブラリ [parser]: 文法の変更 [regexp]: 正規表現の機能拡張 [marshal]: Marshal ファイルのフォーマット変更 * レベル [bug]: バグ修正 [new]: 追加されたクラス/メソッドなど [compat]: 変更されたクラス/メソッドなど(互換性のある変更) (only backward-compatibility) (影響の範囲が小さいと思われる変更もこちら) [change]: 変更されたク

    fenrir-naru
    fenrir-naru 2022/09/13
    blockをprocに渡せるようになったのは1.8.7から 2004-05-25 ruby-dev:23533
  • module Enumerable (Ruby 1.8.7)

    クラスの継承リスト: Enumerable 要約 繰り返しを行なうクラスのための Mix-in。このモジュールの メソッドは全て each を用いて定義されているので、インクルード するクラスには each が定義されていなければなりません。 目次 インスタンスメソッド all? any? collect map count cycle detect find drop drop_while each_cons enum_cons each_slice enum_slice each_with_index enum_with_index entries to_a find_all select find_index first grep group_by include? member? inject reduce max max_by min min_by minmax minmax_b

    fenrir-naru
    fenrir-naru 2018/08/21
    each_slice(n)でn個ずつに分けられる。友達にeach_slice
  • extension.ja - Documentation for Ruby 2.4.0

    Rubyの拡張ライブラリの作り方¶ ↑ Rubyの拡張ライブラリの作り方を説明します. 基礎知識¶ ↑ Cの変数には型があり,データには型がありません.ですから,た とえばポインタをintの変数に代入すると,その値は整数として取 り扱われます.逆にRubyの変数には型がなく,データに型がありま す.この違いのため,CとRubyは相互に変換しなければ,お互いの データをアクセスできません. RubyのデータはVALUEというCの型で表現されます.VALUE型のデー タはそのデータタイプを自分で知っています.このデータタイプと いうのはデータ(オブジェクト)の実際の構造を意味していて,Ruby のクラスとはまた違ったものです. VALUEからCにとって意味のあるデータを取り出すためには VALUEのデータタイプを知る VALUEをCのデータに変換する の両方が必要です.(1)を忘れると間違った

    fenrir-naru
    fenrir-naru 2018/01/18
    swigでRubyを書くときに使うやつ
  • 関数一覧 (Ruby 3.3 リファレンスマニュアル)

    type 型のメモリを n 個スタックフレームに割り当てる。このメモリは関数が終わると自動的に解放される。

  • module Shellwords (Ruby 2.0.0)

    クラスの継承リスト: Shellwords 要約 UNIX Bourne シェルの単語分割規則に従った文字列分割と文字列エスケープ を行うモジュールです。 Shellwords モジュールは、空白区切りの単語分割を行う shellsplit、文字列を エスケープする shellescape、文字列エスケープを文字列リストに対して適用 する shelljoin の3つのモジュール関数を提供します。 これらのメソッドの別名として、Shellwords.split, Shellwords.escape, Shellwords.join も使用可能です。 ただし、これらの短縮形式のメソッドはクラスメソッドとしてのみ定義される ため、関数形式の呼び出しはできません。 目次 特異メソッド escape join split モジュール関数 shellescape shelljoin shellspli

    fenrir-naru
    fenrir-naru 2016/08/13
    かゆいところに手が届く Shellwords::escape便利
  • singleton method Socket.tcp_server_loop (Ruby 2.0.0)

    tcp_server_loop(port) {|sock,addr| ...} -> ()[permalink][rdoc] tcp_server_loop(host, port) {|sock,addr| ...} -> () TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。 ブロックには新しい接続を表すソケットオブジェクトと、 クライアントアドレスを表す Addrinfo オブジェクトが渡されます。 ブロックの実行が終わってもソケットは close されません。 アプリケーション側が明示的に close する必要があります。 このメソッドはブロックを逐次的に呼び出します。 つまりブロックからリターンするまで次のコネクションを受け入れません。 そのため、同時に複数のクライアントと通信したい場合は スレッド

    fenrir-naru
    fenrir-naru 2016/03/17
    TCPサーバの書き方
  • Symbol#to_proc (Ruby 3.3 リファレンスマニュアル)

    to_proc -> Proc[permalink][rdoc][edit] self に対応する Proc オブジェクトを返します。 生成される Proc オブジェクトを呼びだす(Proc#call)と、 Proc#callの第一引数をレシーバとして、 self という名前のメソッドを残りの引数を渡して呼びだします。 生成される Proc オブジェクトは lambda です。 :object_id.to_proc.lambda? # => true 明示的に呼ぶ例 :to_i.to_proc["ff", 16] # => 255 ← "ff".to_i(16)と同じ 暗黙に呼ばれる例 # メソッドに & とともにシンボルを渡すと # to_proc が呼ばれて Proc 化され、 # それがブロックとして渡される。 (1..3).collect(&:to_s) # => ["1", "2

    fenrir-naru
    fenrir-naru 2015/02/19
    to_procとかsend便利 evalをわざわざ使う必要なし
  • module ObjectSpace (Ruby 1.8.7)

    クラスの継承リスト: ObjectSpace 要約 全てのオブジェクトを操作するためのモジュールです。 目次 モジュール関数 _id2ref add_finalizer call_finalizer define_finalizer each_object finalizers garbage_collect remove_finalizer undefine_finalizer モジュール関数 _id2ref(id) -> object[permalink][rdoc] オブジェクト ID(Object#__id__)からオブジェクトを得ます。 [PARAM] id: 取得したいオブジェクトの ID を整数で指定します。 [EXCEPTION] RangeError: 対応するオブジェクトが存在しなければ発生します。 a = "hoge" p ObjectSpace._id2ref(a.

    fenrir-naru
    fenrir-naru 2014/07/24
    @io.closeをGCされる際にする方法 tempfileが参考になる
  • 1