ライブラリ
クラス
- BasicObject (11)
- BasicSocket (11)
- Delegator (11)
- Float (11)
- GDBM (11)
-
Gem
:: Requirement (11) - Integer (7)
- SDBM (11)
モジュール
- Enumerable (44)
キーワード
- EPSILON (11)
- OCSP (11)
- OPS (11)
- Observable (11)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (11)
- SSLSocket (11)
- anybits? (7)
- chunk (11)
- find (11)
- getpeereid (11)
-
rb
_ ary _ push (11) -
rb
_ protect (11) -
rexml
/ parsers / sax2parser (11) -
ruby 1
. 8 . 4 feature (11) -
ruby 1
. 9 feature (11) - select (22)
-
slice
_ before (22) -
slice
_ when (11) - tsort (11)
- 演算子式 (11)
検索結果
-
BasicObject
# !=(other) -> bool (18118.0) -
オブジェクトが other と等しくないことを判定します。
...否定して返します。
このため、サブクラスで BasicObject#== を再定義しても != とは自動的に整合性が
とれるようになっています。
ただし、 BasicObject#!= 自身や BasicObject#! を再定義した際には、ユーザーの責任で
整合性を保た......sicObject#!
//emlist[例][ruby]{
class NonequalityRecorder < BasicObject
def initialize
@count = 0
end
attr_reader :count
def !=(other)
@count += 1
super
end
end
recorder = NonequalityRecorder.new
recorder != 1
puts 'hoge' if recorder != "str"
p recorder.count #=> 2
//}... -
Delegator
# !=(obj) -> bool (18100.0) -
自身が与えられたオブジェクトと等しくない場合は、真を返します。 そうでない場合は、偽を返します。
自身が与えられたオブジェクトと等しくない場合は、真を返します。
そうでない場合は、偽を返します。
@param obj 比較対象のオブジェクトを指定します。 -
tsort (18.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
...@dep[f] = [triple]}
@dep[triple] = inputs
end
def build(target)
each_strongly_connected_component_from(target) {|ns|
if ns.length != 1
fs = ns.delete_if {|n| Array === n}
raise TSort::Cyclic.new("cyclic dependencies: #{fs.join ', '}")
end
n = ns.first......Errno::ENOENT
outputs_time = nil
end
if outputs_time == nil ||
inputs_time != nil && outputs_time <= inputs_time
sleep 1 if inputs_time != nil && inputs_time.to_i == Time.now.to_i
block.call
end
end
}
end
def tsort_eac... -
演算子式 (18.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
.../ %
+ -
<< >>
&
| ^
> >= < <=
<=> == === != =~ !~
&&
||
.. ...
?:(条件演算子)
=(+=, -= ... )......の記法を利用します。
//emlist{
| ^ & <=> == === =~ > >= < <= << >>
+ - * / % ** ~ +@ -@ [] []= ` ! != !~
//}
これらの演算子式の定義方法についてはd:spec/def#operatorを参照してください。
:再定義できない演算子(......or true)) #=> true
//}
===[a:not] not
//emlist[例][ruby]{
! me
not me
i != you
//}
文法:
`!' 式
not 式
式の値が真である時偽を、偽である時真を返します。
式 `!=' 式
!(式 == 式)と同じ。
式 `!~' 式
!(式 =~ 式)と... -
Float
:: EPSILON -> Float (16.0) -
1.0 + Float::EPSILON != 1.0 となる最小の正の値です。
...1.0 + Float::EPSILON != 1.0 となる最小の正の値です。
通常はデフォルトで 2.2204460492503131e-16 です。... -
Enumerable
# chunk {|elt| . . . } -> Enumerator (12.0) -
要素を前から順にブロックで評価し、その結果によって 要素をチャンクに分けた(グループ化した)要素を持つ Enumerator を返します。
...を考えます。
//emlist[例][ruby]{
sep = "-"*72 + "\n" # ハイフンが72個の行
IO.popen("svn log README") {|f|
f.chunk {|line|
line != sep || nil
}.each {|_, lines|
pp lines
}
}
#=> ["r20018 | knu | 2008-10-29 13:20:42 +0900 (Wed, 29 Oct 2008) | 2 lines\n",
# "\n",
# "......//emlist[例][ruby]{
pat = /\A[A-Z][A-Za-z0-9_]+\#/
open(filename) {|f|
f.chunk {|line| pat =~ line ? $& : :_alone }.each {|key, lines|
if key != :_alone
print lines.sort.join('')
else
print lines.join('')
end
}
}
//}
@raise RuntimeError 予約されている値を用... -
Enumerable
# slice _ when {|elt _ before , elt _ after| bool } -> Enumerator (12.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
...。
//emlist[例][ruby]{
# 1ずつ増加する部分配列ごとに分ける。
a = [1,2,4,9,10,11,12,15,16,19,20,21]
b = a.slice_when {|i, j| i+1 != j }
p b.to_a # => [[1, 2], [4], [9, 10, 11, 12], [15, 16], [19, 20, 21]]
c = b.map {|a| a.length < 3 ? a : "#{a.first}-#{a.last}" }
p c # => [[1, 2],......列ごとに分ける。
# (Enumerable#chunk を使って実現する事も可能)
a = [7, 5, 9, 2, 0, 7, 9, 4, 2, 0]
p a.slice_when {|i, j| i.even? != j.even? }.to_a
# => [[7, 5, 9], [2, 0], [7, 9], [4, 2, 0]]
# 段落(空行が後ろに続く非空行の文字列)ごとに分ける。
# (Enumerab... -
BasicSocket
# getpeereid -> [Integer , Integer] (6.0) -
Unix ドメインソケットにおいて接続相手の euid と egid を 返します。
...です。
require 'socket'
Socket.unix_server_loop("/tmp/sock") {|s|
begin
euid, egid = s.getpeereid
# Check the connected client is myself or not.
next if euid != Process.uid
# do something about my resource.
ensure
s.close
end
}... -
Enumerable
# slice _ before {|elt| bool } -> Enumerator (6.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
...while のより簡単な例も参照)。
//emlist[][ruby]{
a = [0,2,3,4,6,7,9]
prev = a[0]
p a.slice_before {|e|
prev, prev2 = e, prev
prev2 + 1 != e
}.map {|es|
es.length <= 2 ? es.join(",") : "#{es.first}-#{es.last}"
}.join(",")
#=> "0,2-4,6,7,9"
//}
@see Enumerable#chunk, Enumerable#slic... -
Enumerable
# slice _ before(pattern) -> Enumerator (6.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
...while のより簡単な例も参照)。
//emlist[][ruby]{
a = [0,2,3,4,6,7,9]
prev = a[0]
p a.slice_before {|e|
prev, prev2 = e, prev
prev2 + 1 != e
}.map {|es|
es.length <= 2 ? es.join(",") : "#{es.first}-#{es.last}"
}.join(",")
#=> "0,2-4,6,7,9"
//}
@see Enumerable#chunk, Enumerable#slic...