キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - DOSISH 対応 (12)
- GNU (12)
- Mac OS X (12)
- Marshal フォーマット (12)
- MinGW (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 1 . 0 (12) -
NEWS for Ruby 2
. 2 . 0 (11) -
NEWS for Ruby 2
. 3 . 0 (10) -
NEWS for Ruby 2
. 4 . 0 (9) -
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 2
. 6 . 0 (7) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (5) -
NEWS for Ruby 3
. 1 . 0 (4) - ReFe (12)
- Ruby が動作するプラットフォーム (12)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
- Rubyの起動 (12)
- Ruby用語集 (12)
- Win32 (12)
- Win32ネイティブ版 (12)
- Win32ネイティブ版Rubyの互換性問題 (12)
- manual page (12)
- mswin32 (12)
- pack テンプレート文字列 (12)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 1 feature (12) -
ruby 1
. 8 . 2 feature (12) -
ruby 1
. 8 . 3 feature (12) -
ruby 1
. 8 . 4 feature (12) -
ruby 1
. 8 . 5 feature (12) -
ruby 1
. 9 feature (12) - sprintf フォーマット (12)
- はじめに (12)
- オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (12)
- クラス/メソッドの定義 (12)
- スレッド (12)
- セキュリティモデル (12)
- パターンマッチ (12)
- メソッド呼び出し(super・ブロック付き・yield) (12)
- リテラル (12)
- 制御構造 (12)
- 変数と定数 (12)
- 多言語化 (12)
- 手続きオブジェクトの挙動の詳細 (12)
- 正規表現 (12)
- 演算子式 (12)
- 環境変数 (12)
検索結果
-
Marshal フォーマット (187.0)
-
Marshal フォーマット フォーマットバージョン 4.8 を元に記述しています。
...て
//emlist{
n == 0: 0
0 < n < 123: n + 5
-124 < n < 0: n - 5
//}
という数値(1 byte)を格納します。5 を足したり引いたりするのは下記の
形式 2 との区別のためです。
//emlist[例][ruby]{
p Marshal.dump(-1).unpack1("x2 a*") # => "i\xFA"
p Marshal.dump(0).......|
<-1-> <- len ->
byte bytes
//}
len の値は -4 〜 -1, 1 〜 4 で。符号と後続のデータが n1 〜 n_len
まであることを示します。
//emlist[][ruby]{
def foo(len, n1, n2 = 0, n3 = 0, n4 = 0)
case len
when -3; n4 = 255
when -2;......en -1; n2 = n3 = n4 = 255
end
n = (0xffffff00 | n1) &
(0xffff00ff | n2 * 0x100) &
(0xff00ffff | n3 * 0x10000) &
(0x00ffffff | n4 * 0x1000000)
# p "%x" % n
n = -((n ^ 0xffff_ffff) + 1) if len < 0
n
end
p Marshal.dump(-125).unpack("x2 acC*") # => ["i", -1,... -
NEWS for Ruby 2
. 3 . 0 (151.0) -
NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...s.ruby-lang.org の issue を参照してください。
== 2.2.0 以降の変更
=== 言語仕様の変更
* frozen-string-literal プラグマ:
* 実験的な機能として fronzen-string-literal というプラグマが導入されました。
8976
* さらに --enable/--disab......le=frozen-string-literal というコマンドラインオプションも導入されました
8976
* コマンドラインオプションに --debug または --debug=frozen-string-literal を付けて実行すると、
freeze された文字列を操作しようとして RuntimeErr......11643
* Comparable
* Comparable#==はもはや例外を rescue しません
7688
* Encoding
* Encoding::IBM037 (alias ebcdic-cp-us; dummy) を追加
* Enumerable
* Enumerable#grep_v を追加
11049
* Enumerable#chunk_while
10769
* Enumerator::Lazy... -
リテラル (151.0)
-
リテラル * num * string * backslash * exp * char * command * here * regexp * array * hash * range * symbol * percent
...a:num] 数値リテラル
: 123
: 0d123
整数
: -123
符号つき整数
: 123.45
浮動小数点数。
.1 など "." で始まる浮動小数点数は許されなくなりました。0.1 と書く必
要があります。
: 1.2e-3
浮動小数点数
: 0xffff
16進整数
: 0b1......うに記述するのに便利です。
リテラルの最初と、最後には _ を書くことはできません。(リテラルの
前(符号(+,-)の直後を含む)に _を置くとローカル変数やメソッド呼び
出しと解釈されます)
_ は、0x などの prefix の直後に書......<<EOS,
3055 * 2 / 5) # <- この行はヒアドキュメントに含まれてしまう
This line is a here document.
EOS
開始ラベルを `<<-識別子' または `<<~識別子` のように
`-' または `~' を付けて書くことで、終端行... -
Ruby用語集 (127.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...l#percent
: 0 オリジン
: zero-based
番号が 0 から始まること。
例えば、
Array や Vector、Matrix などの要素の番号、
String における文字の位置、
といったものは 0 オリジンである。
: 1 オリジン
: one-based
番号が 1 から始ま......ログラミング言語。
型推論を持った静的型付け言語であり、処理系はコンパイラーである。
https://ja.crystal-lang.org/
: CSI 方式
CSI は Code Set Independent の頭字語。
プログラミング言語の処理系が文字列を扱う際のエンコー......し、切り替えて使うための
ツールの一つ。Linux、macOS などで動作する。
https://github.com/rbenv/rbenv
: RD(Ruby Document format)
Ruby スクリプト中に記述することを念頭に作られたドキュメントフォーマット。
: RDoc
Ruby スクリ... -
sprintf フォーマット (121.0)
-
sprintf フォーマット === sprintf フォーマット
...するには `%%' とします。
以下それぞれの要素に関して説明します。
=== フラグ
フラグには #, +, ' '(スペース), -, 0 の5種類があります。
: #
2進、8進、16進の指示子(b, B, o, x, X) ではそれぞれプレフィック
スとして "0b", "0B",......ては、負数に対して "-"
を付加することを示します。
//emlist[][ruby]{
p sprintf("%d", 1) #=> "1"
p sprintf("%+d", 1) #=> "+1"
p sprintf("%x", -1) #=> "..f" # ".." は無限に f が続くことを表している
p sprintf("%+x", -1) #=> "-1"
//}
: ' '(スペース)
`+'......]{
p sprintf("%d", 1) #=> "1"
p sprintf("%+d", 1) #=> "+1"
p sprintf("% d", 1) #=> " 1"
p sprintf("%x", -1) #=> "..f"
p sprintf("% x", 1) #=> " 1"
p sprintf("% x", -1) #=> "-1"
//}
: -
出力を左詰めにします。幅の指定がなければ
意味がありません。
: 0
出力... -
NEWS for Ruby 2
. 5 . 0 (115.0) -
NEWS for Ruby 2.5.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...は参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.4.0 以降の変更
=== 言語仕様の変更
* トップレベルの定数参照を削除......go through.
7688
* Regexp
* Onigmo 6.1.3-669ac9997619954c298da971fcfacccf36909d05 に更新
* 非包含オペレータ(absence operator)をサポート https://github.com/k-takata/Onigmo/issues/82
* Support new 5 emoji-related Unicode character properties
* RubyVM::Inst......his much improves the speed of generating documents.
* It also facilitates supporting new syntax in the future.
* Support many new syntaxes of Ruby from the past few years.
* Use "frozen_string_literal: true".
This reduces document generation time by 5%.
* Support d... -
NEWS for Ruby 2
. 0 . 0 (103.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...は参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 1.9.3 以降の変更
=== 言語仕様の変更
* キーワード引数を追加しました......ルの配列作成のために追加しました。(%w, %W に似ています)
* デフォルトのソースエンコーディングを US-ASCII から UTF-8 に変更しました
* '_' で始まる使用されていない変数は警告しなくなりました
=== 組み込みクラスの更......olv
* 追加: Resolv::DNS#timeouts=
* 追加: Resolv::DNS::Config#timeouts=
* rexml
* REXML::Document#write はハッシュ引数をサポートしました
* REXML::Document#write は :encoding オプションをサポートしました。
XMLドキュメントのエンコ... -
ReFe (103.0)
-
ReFe ReFeについては http://i.loveruby.net/ja/prog/refe.html をご覧ください。
...します。
tar xvzf refe-x.x.x.tar.gz
cd refe-x.x.x
ruby setup.rb config
ruby setup.rb setup
(必要に応じて root になってください)
ruby setup.rb install
(2) http://www.ruby-lang.org/ja/man/man-rd-ja.tar.gz
にあるのが最新の......man-rd-ja.tar.gz を展開し、ReFeデータベースを構築します。
/usr/local/share/refe は適宜環境に応じて変更してください(変更した場合は
refe を実行するのに環境変数 REFE_DATA_DIR を設定する必要があります)
gzip -dc man-rd-ja.......z | tar xvf -
cd man-rd-ja
(必要に応じて root になってください)
mkrefe_rubyrefm -d /usr/local/share/refe *.rd
/usr/local/share/refe 下に以下のディレクトリとファイルができます。
class_document/ method_document/
c... -
セキュリティモデル (97.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...= 1
}
th.join
p $SAFE # => 0
//}
* $SAFE の値を現在の値より小さく変更する事はできない
//emlist{
$ ruby -e '$SAFE = 1; $SAFE = 0'
-e:1: tried to downgrade safe level from 1 to 0 (SecurityError)
//}
原則として、各セキュリティレベルにはそれ以下......す。
===== 汚染されるオブジェクト
* IOや環境変数、コマンドライン引数(ARGV)から得られた文字列
$ ruby -e 'p ARGV[0].tainted?' hoge
true
環境変数PATHだけは例外で、値に危険なパスを含む場合のみ汚染されます。
ここ......* Dir, IO, File, FileTest のメソッド呼び出し
//emlist{
$ ruby -e '$SAFE = 1; open(ARGV[0])' hoge
-e:1:in `initialize': Insecure operation - initialize (SecurityError)
from -e:1
//}
* ファイルテスト演算子の使用、ファイルの更新... -
クラス/メソッドの定義 (91.0)
-
クラス/メソッドの定義 * クラス/メソッドの定義: * class * singleton_class * module * method * operator * nest_method * eval_method * singleton_method * class_method * limit * 定義に関する操作: * alias * undef * defined
...い場合は nil を返します。
===[a:method] メソッド定義
//emlist[例][ruby]{
def fact(n)
if n == 1 then
1
else
n * fact(n-1)
end
end
//}
文法:
def メソッド名 ['(' [arg0 ['=' default0]] ... [',' '*' rest_args [, post ...]] [',' key1: [val1]] ... [',' '*......を省いてdef foo a, bとも
a + 3 * b
end
//}
メソッド名としては通常の識別子の他に、再定義可能な演算子(例: ==, +, -
など spec/operator を参照)も指定できます(operator参照)。
//emlist[例][ruby]{
class Vector2D
attr_accessor :x, :y # インスタ......# rest: ["foo", "bar", "baz"]
# x: "x"
# y: "y"
# z: "z"
# k: 42
# kwrest: {:u=>"unknown"}
# blk: #<Proc:0x007f7e7d8dd6c0@-:16>
//}
//emlist[例: イテレータの定義][ruby]{
# yield を使う
def foo
# block_given? は、メソッドがブロックを渡されて...