ライブラリ
- ビルトイン (209)
-
bigdecimal
/ math (12) - erb (12)
- forwardable (12)
-
net
/ telnet (2) - nkf (12)
- openssl (24)
- psych (12)
- thread (2)
- timeout (21)
- win32ole (72)
モジュール
- BigMath (12)
- Kernel (48)
- ObjectSpace (24)
- Timeout (21)
キーワード
- =~ (12)
- ERB (12)
- IO (12)
- Location (12)
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 7 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (5) -
NEWS for Ruby 3
. 1 . 0 (4) - NKF (12)
- OCSP (12)
- Queue (12)
- ReFe (12)
- Request (12)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
- SingleForwardable (12)
- Status (12)
- Telnet (2)
- ThreadGroup (12)
-
WIN32OLE
_ EVENT (12) -
WIN32OLE
_ METHOD (12) -
WIN32OLE
_ PARAM (12) -
WIN32OLE
_ TYPE (12) -
WIN32OLE
_ TYPELIB (12) -
WIN32OLE
_ VARIABLE (12) - YAMLTree (12)
- atan (12)
- bigdecimal (12)
-
define
_ finalizer (24) - drb (12)
-
drb
/ extservm (12) -
drb
/ gw (12) - exec (48)
-
irb
/ xmp (12) - match (24)
-
net
/ http (12) -
net
/ imap (12) -
net
/ pop (12) - optparse (12)
- prettyprint (12)
- rake (12)
-
rinda
/ rinda (12) - rss (12)
-
ruby 1
. 8 . 2 feature (12) -
ruby 1
. 8 . 3 feature (12) - shell (6)
- timeout (21)
- tracer (12)
-
undef
_ method (12) - yaml (12)
- クラス/メソッドの定義 (12)
- 制御構造 (12)
検索結果
先頭5件
-
Range
# ===(obj) -> bool (18148.0) -
始端と終端の中に obj があるとき、true を返します。 そうでないとき、false を返します。
...を返します。
Range#=== は主に case 式での比較に用いられます。
//emlist[例][ruby]{
p (0...50) === 79 #=> false
p (60...80) === 79 #=> true
case 79
when 0...60 then puts "low"
when 60...80 then puts "medium" # => medium
when 80..100 then puts "high"
end
//}
2.5 以......しかし、2.6 以降では、(文字列を除いて) Range#cover? と同様の処理をするように切り替わりました。
ただし、=== は、Range#cover? のように Range オブジェクトを引数にはとる設計はありません。
//emlist[例][ruby]{
require 'date'
p (Date......#=> false
p (Date.today - 100...Date.today + 100).cover?(DateTime.now) #=> true
p (Date.today - 100...Date.today + 100) === DateTime.now #=> true
# 2.5 以前は、=== は、include? と同じく比較できず false を返していました。
//}
@see d:spec/control#case
@see Range#in.......cover?(DateTime.now) #=> true
p (Date.today - 100...Date.today + 100) === DateTime.now #=> true
# 2.5 以前は、=== は、include? と同じく比較できず false を返していました。
//}
2.7 以降の === は、文字列も Range#cover? と同様の処理をするようにな... -
Object
# ===(other) -> bool (18130.0) -
case 式で使用されるメソッドです。d:spec/control#case も参照してください。
...when 節の式をレシーバーとして === を呼び出すことに注意してください。
また Enumerable#grep でも使用されます。
@param other 比較するオブジェクトです。
//emlist[][ruby]{
age = 12
# (0..2).===(12), (3..6).===(12), ... が実行される
result =......"youth"
else
"adult"
end
puts result #=> "child"
def check arg
case arg
when /ruby(?!\s*on\s*rails)/i
"hit! #{arg}"
when String
"Instance of String class. But don't hit."
else
"unknown"
end
end
puts check([]) #=> unknown
puts check("mash-up in Ruby on Rails") #=......> instance of String class. But not hit...
puts check("<Ruby's world>") #=> hit! <Ruby's world>
//}
@see Object#==, Range#===, Module#===, Regexp#===, Enumerable#grep... -
Regexp
# ===(string) -> bool (18130.0) -
文字列 string との正規表現マッチを行います。 マッチした場合は真を返します。
...対象文字列
//emlist[例][ruby]{
a = "HELLO"
case a
when /\A[a-z]*\z/; puts "Lower case"
when /\A[A-Z]*\z/; puts "Upper case"
else; puts "Mixed case"
end
# => Upper case
/\A[a-z]*\z/ === "HELLO" # => false
/\A[A-Z]*\z/ === "HELLO" # => true
//}
@see Enumerable#grep, Object#===... -
ruby 1
. 8 . 2 feature (366.0) -
ruby 1.8.2 feature ruby 1.8.2 での ruby 1.8.1 からの変更点です。
...82>))
を参照して下さい。
* rss, rdoc, yaml の変更点は収録していません。
=== 日時未詳
: CGI#server_port [lib] [bug]
常に 0 を返すバグが修正されました。
=== 2004-12-19
: OpenSSL::X509::Store#time= [lib] [new]
: OpenSSL::X509::StoreContext#ti.......
=== 2004-12-18
: Object#id [ruby] [obsolete]
常に警告がでるようになりました。Object#object_id を使って下さい。
=== 2004-12-17
: CGI::Session#initialize [lib] [compat]
'no_hidden' オプションを指定できるようになりました。((<ruby-talk:123850>))
===......))
$ ruby1.8.1 -e "puts '# #{}'.inspect"
"# #{}"
$ ruby1.8.2 -e "puts '# #{}'.inspect"
"# \#{}"
: String#dump [ruby] [bug]
式展開にならない '#'がエスケープされないようになりました。
((<ruby-core:03922>))
$ ruby1.8.1 -e "puts '# #{}'.dump"
"\#... -
ruby 1
. 8 . 3 feature (366.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
...http://dev.ctor.org/soap4r/wiki/Changes-154>))
* ((<URL:http://dev.ctor.org/soap4r/wiki/Changes-155>))
== 1.8.2 (2004-12-25) -> 1.8.3 (2005-09-21)
=== 2005-09-19
: FileUtils.remove_entry_secure [lib] [new]
: FileUtils.remove_entry [lib] [new]
: FileUtils.chmod_R [lib] [new]
: F......
=== 2005-09-16
: File.join [ruby] [compat]
型チェックを厳密にするようになりました。
$ ruby-1.8.2 -e 'p File.join(1, 2)'
"1/2"
$ ruby-1.8.3 -e 'p File.join(1, 2)'
-e:1:in `join': can't convert Fixnum into String (TypeError)
from -e:1
=== 200......き
禁止されるようになりました。
$ cat mthd_taint.rb
th = Thread.new{
$SAFE = 3
class Hoge
def foo
puts "safe level: #{$SAFE}"
end
end
}
th.join
p $SAFE
Hoge.new.foo
$ ruby-1.8.2 mthd_taint.rb
0
"sa... -
クラス/メソッドの定義 (102.0)
-
クラス/メソッドの定義 * クラス/メソッドの定義: * class * singleton_class * module * method * operator * nest_method * eval_method * singleton_method * class_method * limit * 定義に関する操作: * alias * undef * defined
...t_method
* eval_method
* singleton_method
* class_method
* limit
* 定義に関する操作:
* alias
* undef
* defined
===[a:class] クラス定義
//emlist[例][ruby]{
class Foo < Super
def test
# ...
end
# ...
end
//}
文法:
class 識別子 [`......ス定義式は、最後に評価した式の結果を返します。最後に評価した式
が値を返さない場合は nil を返します。
===[a:singleton_class] 特異クラス定義
//emlist[例][ruby]{
obj = Object.new # obj = nil でも可
class << obj
def test
# ...
end
# .......結果
として他の言語における「関数」のように使えます。
//emlist[例][ruby]{
def hello # 引数のないメソッド。
puts "Hello, world!"
end
def foo(a, b) # 引数のあるメソッド。括弧を省いてdef foo a, bとも
a + 3 * b
end
//}
メソッド名... -
制御構造 (96.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...きメソッド呼び出しは
繰り返しを始めとする制御構造をクラス設計者が定義する事が出来るものです.
=== 条件分岐
====[a:if] if
//emlist[例][ruby]{
if age >= 12 then
print "adult fee\n"
else
print "child fee\n"
end
gender = if foo.gender == "male" then......評価されます。
==== if 修飾子
//emlist[例][ruby]{
print "debug\n" if $DEBUG
//}
文法:
式 if 式
右辺の条件が成立する時に、左辺の式を評価してその結果を返します。
条件が成立しなければ nil を返します。
====[a:unless] unless......クラスの === メソッ
ドの動作についてのドキュメントを参照して下さい。
case の「式」を省略した場合、when の条件式が偽でない最初の
式を評価します。
//emlist[][ruby]{
foo = false
bar = true
quu = false
case
when foo then puts 'foo is true... -
NEWS for Ruby 2
. 7 . 0 (78.0) -
NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.6.0 以降の変更
=== 言語仕様の変更
==== パターンマッチ
* パターンマッチが実験的機能として導入されました。 14912
//emlist[][ruby]{
case [0,......ことに注意してください。
* パターンマッチに対する警告は「-W:no-experimental」オプションで抑制できます。
==== 3.0 に向けてのキーワード引数の仕様変更
* キーワード引数と位置引数の自動変換は自動変換が非推奨とな......of 1
==== ブロックなしの proc/lambda が deprecated
* ブロック付きで呼び出されたメソッドの中で、ブロックなしでProc.newやKernel#procを
呼び出すと警告が表示されるようになりました。
//emlist[][ruby]{
def foo
proc
end
foo { puts "Hel... -
rss (72.0)
-
RSS を扱うためのライブラリです。
...S を扱うためのライブラリです。
=== 参考
* RSS 0.91 http://backend.userland.com/rss091
* RSS 1.0 http://purl.org/rss/1.0/spec
* RSS 2.0 http://www.rssboard.org/rss-specification
* Atom 1.0 https://www.ietf.org/rfc/rfc4287.txt
=== 注意
RSS ParserはRSS 0.9x/1.0/2.0, Ato....../1.0/modules/image/
をサポートしています。
ただし,Content モジュールは content:encoded しかサポートしていません.
=== パース
RSS をパースしたい場合は RSS::Parser クラスを使います。
RSS::Parser.parse は String の RSSを パースします(.......each do |fname|
feed = nil
begin
feed = RSS::Parser.parse(File.read(fname), false)
rescue RSS::Error
end
if feed.nil?
puts "#{fname}はRSS 0.9x/1.0/2.0, Atom 1.0のいずれでもありません。"
else
print_items(feed)
end
end
あとはprint_item... -
bigdecimal (66.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
...BigDecimal("1.0")) == BigDecimal("0.2") # => true
(1.2 - 1.0) == 0.2 # => false
//}
=== 特別な値
正確な計算結果の提供のために、BigDecimal はいくつかの特別な値を持
ちます。
==== 無限大
BigDecimal による演算の際には無限大を表す値を返す場......][ruby]{
require "bigdecimal"
BigDecimal("Infinity") # => Infinity
BigDecimal("+Infinity") # => Infinity
BigDecimal("-Infinity") # => -Infinity
//}
==== 非数(Not a Number)
0 / 0 のような未定義の計算を行った場合、非数(Not a Number)を表す値を返
します。
//emlist[][ru......|
s = BigDecimal("0")
while line = file.gets
s = s + BigDecimal(line)
end
puts s # => 0.3e0
end
File::open("digits.txt", "r") do |file|
s = 0
while line = file.gets
s = s + line.to_f
end
puts s # => 0.30000000000000004
end
//}
2 進数で計算すると誤差が入る可...