タグ

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

  • class RubyVM::InstructionSequence (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 Ruby の Virtual Machine のコンパイル済みの命令シーケンスを表すクラスです。 Method、Proc オブジェクトや Ruby のソースコードを表す文字列から VM の命令シーケンスを得る事ができます。また、 RubyVM::InstructionSequence オブジェクトを元に命令シーケンスを読みやすい文字列に変換する事もできます。Ruby の命令シーケンスコンパイラの設定を扱う必要がありますが、Ruby の VM がどのように働くかを知るのに有用です。 VM の命令シーケンスの一覧はRuby のソースコード中の insns.def から参照できます。 https://github.com/ruby/ruby/blob/master/insns.def 目次 特異メソッド compile compile_file compile_option

    fuyu77
    fuyu77 2024/02/15
  • 変数と定数 (Ruby 3.3 リファレンスマニュアル)

    [edit] ローカル変数 インスタンス変数 クラス変数 クラス変数のスコープ グローバル変数 擬似変数 定数 定数参照の優先順位 Ruby の変数と定数の種別は変数名の最初の一文字によって、ローカル変数、インスタンス変数、クラス変数、グローバル変数、定数のいずれかに区別されます。通常の変数の二文字目以降は英数字または _ですが、組み込み変数の一部には「`$'+1文字の記号」という変数があります(組み込み変数を参照)。変数名の長さにはメモリのサイズ以外の制限はありません。 ローカル変数 例 foobar 小文字または`_'で始まる識別子はローカル変数またはメソッド呼び出しです。ローカル変数スコープ(クラス、モジュール、メソッド定義の体)における小文字で始まる識別子への最初の代入はそのスコープに属するローカル変数の宣言になります。宣言されていない識別子の参照は引数の無いメソッド呼び出しとみ

    fuyu77
    fuyu77 2023/04/08
  • Hash#merge (Ruby 3.3 リファレンスマニュアル)

    merge(*others) -> Hash[permalink][rdoc][edit] merge(*others) {|key, self_val, other_val| ... } -> Hash selfとothersのハッシュの内容を順番にマージ(統合)した結果を返します。デフォルト値はselfの設定のままです。 self と others に同じキーがあった場合はブロック付きか否かで判定方法が違います。ブロック付きのときはブロックを呼び出してその返す値を重複キーに対応する値にします。ブロック付きでない場合は常に others の値を使います。 othersがハッシュではない場合、othersのメソッドto_hashを使って暗黙の変換を試みます。 [PARAM] others: マージ用のハッシュまたはメソッド to_hash でハッシュに変換できるオブジェクトです。 [RET

    fuyu77
    fuyu77 2023/02/02
  • CSV.open (Ruby 3.3 リファレンスマニュアル)

    open(filename, mode = "rb", options = Hash.new) {|csv| ... } -> nil[permalink][rdoc][edit] open(filename, mode = "rb", options = Hash.new) -> CSV open(filename, options = Hash.new) {|csv| ... } -> nil open(filename, options = Hash.new) -> CSV このメソッドは IO オブジェクトをオープンして CSV でラップします。これは CSV ファイルを書くための主要なインターフェイスとして使うことを意図しています。 このメソッドは IO.open と同じように動きます。ブロックが与えられた場合はブロックに CSV オブジェクトを渡し、ブロック終了時にそれをクロー

    fuyu77
    fuyu77 2023/01/24
  • クラス/メソッドの定義 (Ruby 3.3 リファレンスマニュアル)

    [edit] クラス/メソッドの定義: クラス定義 特異クラス定義 モジュール定義 メソッド定義 演算子式の定義 メソッド定義のネスト メソッドの評価 特異メソッド定義 クラスメソッドの定義 呼び出し制限 定義に関する操作: alias undef defined? クラス定義 例 class Foo < Super def test # ... end # ... end 文法: class 識別子 [`<' superclass ] 式.. end 文法: class 識別子 [`<' superclass ] 式.. [rescue [error_type,..] [=> evar] [then] 式..].. [else 式..] [ensure 式..] end クラスを定義します。クラス名はアルファベットの大文字で始まる識別子です。 rescue/ensure 節を指定し、例外

    fuyu77
    fuyu77 2022/10/22
  • String#match (Ruby 3.3 リファレンスマニュアル)

    match(regexp, pos = 0) -> MatchData | nil[permalink][rdoc][edit] match(regexp, pos = 0) {|m| ... } -> object regexp.match(self, pos) と同じです。 regexp が文字列の場合は、正規表現にコンパイルします。詳しくは Regexp#match を参照してください。 例: regexp のみの場合 'hello'.match('(.)\1') # => #<MatchData "ll" 1:"l"> 'hello'.match('(.)\1')[0] # => "ll" 'hello'.match(/(.)\1/)[0] # => "ll" 'hello'.match('xx') # => nil 例: regexp, pos を指定した場合 'hoge hig

    fuyu77
    fuyu77 2021/02/15
  • Module#attr_accessor (Ruby 3.3 リファレンスマニュアル)

    attr_accessor(*name) -> [Symbol][permalink][rdoc][edit] インスタンス変数 name に対する読み取りメソッドと書き込みメソッドの両方を定義します。 例 class User attr_accessor :name # => [:name, :name=] # 複数の名前を渡すこともできる attr_accessor :id, :age # => [:id, :id=, :age, :age=] end このメソッドで定義されるメソッドの定義は以下の通りです。 例 def name @name end def name=(val) @name = val end [PARAM] name: String または Symbol を 1 つ以上指定します。 [RETURN] 定義されたメソッド名を Symbol の配列で返します。

    fuyu77
    fuyu77 2020/07/28
  • Module#private (Ruby 3.3 リファレンスマニュアル)

    private() -> nil[permalink][rdoc][edit] private(name) -> String | Symbol private(*name) -> Array private(names) -> Array メソッドを private に設定します。 引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドを関数形式でだけ呼び出せるように(private)設定します。 引数が与えられた時には引数によって指定されたメソッドを private に設定します。 可視性については クラス/メソッドの定義/呼び出し制限 を参照して下さい。 [PARAM] name: 0 個以上の String または Symbol を指定します。 [PARAM] names: 0 個以上の String または Symbol を Array で指定します。 [

    fuyu77
    fuyu77 2020/07/28
  • 制御構造 (Ruby 2.2.0)

    [edit] 条件分岐: if unless case 繰り返し: while until for break next redo retry 例外処理: raise begin その他: return BEGIN END Rubyでは(Cなどとは異なり)制御構造は式であって、何らかの値を返すものがあります(返さないものもあります。値を返さない式を代入式の右辺に置くと syntax error になります)。 RubyはC言語やPerlから引き継いだ制御構造を持ちますが、その他にメソッド呼び出し(super・ブロック付き・yield)/ブロック付きメソッド呼び出しという制御構造の抽象化を援助する機能があります。ブロック付きメソッド呼び出しは繰り返しを始めとする制御構造をクラス設計者が定義する事が出来るものです. 条件分岐 if 例 if age >= 12 then print "adul

    fuyu77
    fuyu77 2020/01/20
  • Enumerable#collect (Ruby 3.3 リファレンスマニュアル)

    collect -> Enumerator[permalink][rdoc][edit] map -> Enumerator collect {|item| ... } -> [object] map {|item| ... } -> [object] 各要素に対してブロックを評価した結果を全て含む配列を返します。 ブロックを省略した場合は Enumerator を返します。 例 # すべて 3 倍にした配列を返す p (1..3).map {|n| n * 3 } # => [3, 6, 9] p (1..3).collect { "cat" } # => ["cat", "cat", "cat"] [SEE_ALSO] Hash#to_h, Array#collect, Array#map

    fuyu77
    fuyu77 2020/01/18
  • library net/http (Ruby 2.7.0 リファレンスマニュアル)

    [edit] 要約 汎用データ転送プロトコル HTTP を扱うライブラリです。実装は [RFC2616] に基きます。 使用例 ウェブサーバからドキュメントを得る (GET) 例1: GET して 表示するだけ require 'net/http' print Net::HTTP.get('www.example.com', '/index.html') 例2: URI を使う require 'net/http' require 'uri' print Net::HTTP.get(URI.parse('http://www.example.com/index.html')) 例3: より汎用的な例 require 'net/http' require 'uri' url = URI.parse('http://www.example.com/index.html') res = Net:

  • OpenSSL::PKey::RSA.new (Ruby 3.3 リファレンスマニュアル)

    new -> OpenSSL::PKey::RSA[permalink][rdoc][edit] new(size, exponent = 65537) -> OpenSSL::PKey::RSA new(size, exponent = 65537) {|u,n| ... } -> OpenSSL::PKey::RSA new(obj, pass = nil) -> OpenSSL::PKey::RSA new(obj, pass = nil) {|flag| ... } -> OpenSSL::PKey::RSA RSA 暗号鍵オブジェクトを生成します。 引数なしの場合は空の RSA オブジェクトを返します。 第一引数に整数を指定した場合には、OpenSSL::PKey::RSA.generate により公開鍵と秘密鍵のペアを生成し、それを返します。 それ以外の場合には、以下のようにし

    fuyu77
    fuyu77 2020/01/16
  • class OpenSSL::PKey::RSA (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 RSA 暗号鍵のクラスです。 通常このクラスで利用するのは、 OpenSSL::PKey::RSA.generate, OpenSSL::PKey::RSA.new, OpenSSL::PKey::RSA#public?, OpenSSL::PKey::RSA#private?, OpenSSL::PKey::RSA#public_key, OpenSSL::PKey::RSA#to_text, OpenSSL::PKey::RSA#to_pem, OpenSSL::PKey::RSA#to_der のいずれかでしょう。これ以外のメソッドを利用するときは RSA についてよく理解し、必要な場合のみにすべきです。 例: require 'openssl' # initialize random seed OpenSSL::Random.seed(File.read("/d

    fuyu77
    fuyu77 2020/01/09
  • Time#strftime (Ruby 3.3 リファレンスマニュアル)

    strftime(format) -> String[permalink][rdoc][edit] 時刻を format 文字列に従って文字列に変換した結果を返します。 [PARAM] format: フォーマット文字列を指定します。使用できるものは 以下の通りです。 %A: 曜日の名称(Sunday, Monday ... ) %a: 曜日の省略名(Sun, Mon ... ) %B: 月の名称(January, February ... ) %b: 月の省略名(Jan, Feb ... ) %C: 世紀 (2009年であれば 20) %c: 日付と時刻 (%a %b %e %T %Y) %D: 日付 (%m/%d/%y) %d: 日(01-31) %e: 日。一桁の場合、半角空白で埋める ( 1..31) %F: %Y-%m-%d と同等 (ISO 8601の日付フォーマット) %G:

    fuyu77
    fuyu77 2019/10/23
  • Enumerable#max (Ruby 3.3 リファレンスマニュアル)

    max -> object | nil[permalink][rdoc][edit] max(n) -> Array 最大の要素、もしくは最大の n 要素が入った降順の配列を返します。全要素が互いに <=> メソッドで比較できることを仮定しています。 引数を指定しない形式では要素が存在しなければ nil を返します。引数を指定する形式では、空の配列を返します。該当する要素が複数存在する場合、どの要素を返すかは不定です。 [PARAM] n: 取得する要素数。 例 a = %w(albatross dog horse) a.max # => "horse" a.max(2) # => ["horse", "dog"] max {|a, b| ... } -> object | nil[permalink][rdoc][edit] max(n) {|a, b| ... } -> Array ブ

    fuyu77
    fuyu77 2019/04/08
  • class Time (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 時刻を表すクラスです。 Time.now は現在の時刻を返します。 File.mtime などが返すファイルのタイムスタンプは Time オブジェクトです。 Time オブジェクトは時刻を起算時からの経過秒数で保持しています。起算時は協定世界時(UTC、もしくはその旧称から GMT とも表記されます) の 1970年1月1日午前0時です。なお、うるう秒を勘定するかどうかはシステムによります。 Time オブジェクトが格納可能な時刻の範囲は環境によって異なっていましたが、 Ruby 1.9.2 からは OS の制限の影響を受けません。 また、Time オブジェクトは協定世界時と地方時のどちらのタイムゾーンを使用するかのフラグを内部に保持しています。タイムゾーンのフラグは Marshal データに保持されます。 p Marshal.load(Marshal.dump(Tim

    fuyu77
    fuyu77 2019/03/11
  • class Hash (Ruby 3.3 リファレンスマニュアル)

    [edit] dynamic include: JSON::Generator::GeneratorMethods::Hash (by json) 要約 ハッシュテーブル(連想配列とも呼ぶ)のクラスです。ハッシュは任意の種類のオブジェクト(キー)から任意の種類のオブジェクト(値)への関連づけを行うことができます。 ハッシュ生成は多くの場合以下のようなリテラル (リテラル/ハッシュ式) で行われます。 {a => b, ... } # aはキー、bは値となる {s: b , ... } # { :s => b, ... } と同じ。キーがシンボルの場合の省略した書き方 {"a+": b , ... } # { :"a+" => b, ... } と同じ。上の表現に空白や記号を含めたい場合 キーには任意の種類のオブジェクトを用いることができますが、以下の2つのメソッドが適切に定義してある必要が

    fuyu77
    fuyu77 2019/03/01
  • Kernel.#open (Ruby 3.3 リファレンスマニュアル)

    open(file, mode_enc = "r", perm = 0666) -> IO[permalink][rdoc][edit] open(file, mode_enc = "r", perm = 0666) {|io| ... } -> object file をオープンして、IO(Fileを含む)クラスのインスタンスを返します。 ブロックが与えられた場合、指定されたファイルをオープンし、生成した IO オブジェクトを引数としてブロックを実行します。ブロックの終了時や例外によりブロックを脱出するとき、ファイルをクローズします。ブロックを評価した結果を返します。 ファイル名 file が `|' で始まる時には続く文字列をコマンドとして起動し、コマンドの標準入出力に対してパイプラインを生成します ファイル名が "|-" である時、open は Ruby の子プロセスを生成し、その子

    fuyu77
    fuyu77 2019/01/13
  • Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (Ruby 3.3 リファレンスマニュアル)

    [edit] ! ? # % & | + - * / ^ ' . , < > = ~ $ @ _ {} [] () " : ` \ ; ! !true not 演算子。演算子式/notを参照。 3 != 5 「等しくない」比較演算子。演算子式/notを参照。 def xxx! 「!」はメソッド名の一部です。慣用的に、同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。 /xxx/ !~ yyy 正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。 ? ?a リテラル/文字列リテラル。長さ 1 の文字列。 def xx? この場合の「?」はメソッド名の一部分です。慣用的に、真偽値を返すタイプのメソッドを示すために使われます。 xx ? yy : zz 演算子式/条件演算子。三項演算子とも呼ばれます。if xx then

    fuyu77
    fuyu77 2018/05/31
  • class ERB (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 eRuby スクリプトを処理するクラス。 従来 ERbLight と呼ばれていたもので、標準出力への印字が文字列の挿入とならない点が eruby と異なります。 https://magazine.rubyist.net/articles/0017/0017-BundledLibraries.html 使い方 ERB クラスを使うためには require 'erb' する必要があります。 例: require 'erb' ERB.new($<.read).run trim_mode trim_mode は整形の挙動を変更するオプションです。次の振舞いを指定できます。 改行の扱い %ではじまる行の扱い (ERB 2.0 から追加されました) trim_mode に指定できる値は次の通りです。 ERb-1.4.x 互換の指定方法 nil, 0: そのまま変換 1: 行末が%>

    fuyu77
    fuyu77 2018/02/10