ライブラリ
- ビルトイン (48)
- digest (4)
- e2mmap (6)
- forwardable (4)
- ipaddr (2)
- matrix (19)
-
minitest
/ spec (1) - mkmf (1)
-
net
/ imap (150) - psych (10)
- rake (5)
- resolv (1)
-
rexml
/ sax2listener (2) - set (2)
- socket (1)
-
syslog
/ logger (6) - tsort (1)
- win32ole (10)
クラス
- Addrinfo (1)
- Array (8)
-
Digest
:: Base (4) -
Enumerator
:: Lazy (9) - Exception (1)
- IPAddr (2)
- Matrix (9)
- Module (1)
-
Net
:: IMAP (51) -
Net
:: IMAP :: Address (4) -
Net
:: IMAP :: BodyTypeBasic (13) -
Net
:: IMAP :: BodyTypeMessage (16) -
Net
:: IMAP :: BodyTypeMultipart (9) -
Net
:: IMAP :: BodyTypeText (14) -
Net
:: IMAP :: ContentDisposition (2) -
Net
:: IMAP :: ContinuationRequest (2) -
Net
:: IMAP :: Envelope (10) -
Net
:: IMAP :: FetchData (2) -
Net
:: IMAP :: MailboxACLItem (2) -
Net
:: IMAP :: MailboxList (3) -
Net
:: IMAP :: MailboxQuota (3) -
Net
:: IMAP :: MailboxQuotaRoot (2) -
Net
:: IMAP :: ResponseCode (2) -
Net
:: IMAP :: ResponseError (2) -
Net
:: IMAP :: ResponseText (2) -
Net
:: IMAP :: StatusData (2) -
Net
:: IMAP :: TaggedResponse (4) -
Net
:: IMAP :: ThreadMember (2) -
Net
:: IMAP :: UntaggedResponse (3) - Object (5)
-
ObjectSpace
:: WeakMap (2) -
Psych
:: Handler (2) -
Psych
:: Nodes :: Mapping (8) -
Rake
:: FileList (1) -
Resolv
:: DNS :: Resource :: IN :: WKS (1) - Set (2)
- String (4)
-
Syslog
:: Logger (6) -
Thread
:: Backtrace :: Location (4) - Vector (10)
-
WIN32OLE
_ TYPE (5) -
WIN32OLE
_ TYPELIB (2) -
WIN32OLE
_ VARIABLE (3)
モジュール
- Enumerable (19)
- Exception2MessageMapper (6)
- Forwardable (2)
- Kernel (1)
-
REXML
:: SAX2Listener (2) - SingleForwardable (2)
- TSort (1)
キーワード
- == (1)
- Fail (1)
- Raise (1)
- [] (1)
- []= (1)
-
absolute
_ path (1) -
add
_ response _ handler (2) - anchor (1)
- anchor= (1)
- append (1)
- attr (3)
- authenticate (1)
-
base
_ label (1) - bcc (1)
- bind (1)
- bitmap (1)
-
block
_ length (1) - body (1)
- capability (1)
- cc (1)
- check (1)
- children (1)
-
chunk
_ while (1) -
client
_ thread (1) -
client
_ thread= (1) - close (1)
- code (1)
- collect (9)
- collect! (3)
- collect2 (2)
-
collect
_ concat (3) -
content
_ id (3) - copy (1)
- create (1)
- data (4)
- date (1)
- debug (1)
-
def
_ delegators (2) -
def
_ exception (1) -
def
_ instance _ delegators (1) -
def
_ single _ delegators (1) -
default
_ event _ sources (1) -
default
_ ole _ types (1) - delete (1)
- delim (1)
- description (3)
-
digest
_ length (1) - disconnect (1)
- disconnected? (1)
- disposition (4)
-
dsp
_ type (1) - each (2)
-
each
_ strongly _ connected _ component _ from (1) -
elements
_ to _ f (2) -
elements
_ to _ i (2) -
elements
_ to _ r (2) - encoding (3)
-
end
_ mapping (1) -
end
_ prefix _ mapping (1) -
enum
_ for (4) - envelope (1)
- error (1)
- examine (1)
- expunge (1)
- extension (4)
- fail (1)
- fatal (1)
- fetch (1)
-
flat
_ map (3) - from (1)
- getacl (1)
- getquota (1)
- getquotaroot (1)
- greeting (1)
- grep (1)
- host (1)
- idle (1)
-
idle
_ done (1) -
implemented
_ ole _ types (1) - implicit (1)
- implicit= (1)
-
in
_ reply _ to (1) -
infect
_ with _ assertions (1) - info (1)
- inspect (1)
-
install
_ files (1) -
ipv4
_ mapped (1) -
ipv4
_ mapped? (1) -
ipv6
_ v4mapped? (1) - language (4)
- lazy (1)
- length (1)
- lines (2)
- list (1)
- login (1)
- logout (1)
- lsub (1)
- mailbox (4)
- map! (3)
- map2 (1)
- md5 (3)
-
media
_ subtype (4) -
media
_ type (4) - multipart? (4)
- name (5)
- noop (1)
-
ole
_ classes (1) -
ole
_ methods (1) -
ole
_ types (1) - param (5)
- parts (1)
- pathmap (2)
-
pathmap
_ explode (1) -
pathmap
_ partial (1) -
pathmap
_ replace (1) - quota (1)
- quotaroots (1)
-
raw
_ data (3) -
remove
_ response _ handler (1) - rename (1)
-
reply
_ to (1) - response (1)
- response= (1)
-
response
_ handlers (1) - responses (1)
- rights (1)
- route (1)
- search (1)
- select (1)
- sender (1)
- seqno (2)
- setacl (1)
- setquota (1)
- size (4)
-
slice
_ after (2) -
slice
_ before (2) -
slice
_ when (1) - sort (1)
-
sort
_ by (2) -
source
_ ole _ types (1) -
start
_ mapping (1) -
start
_ prefix _ mapping (1) - starttls (2)
- status (1)
- store (1)
- style (1)
- style= (1)
- subject (1)
- subscribe (1)
- subtype (4)
- sum (2)
- tag (2)
- tag= (1)
- tap (1)
- text (1)
- thread (1)
- to (1)
-
to
_ enum (4) -
to
_ s (1) -
uid
_ copy (1) -
uid
_ fetch (1) -
uid
_ search (1) -
uid
_ sort (1) -
uid
_ store (1) -
uid
_ thread (1) - unknown (1)
- unsubscribe (1)
- usage (1)
- user (1)
-
variable
_ kind (1) - varkind (1)
- visible? (1)
- warn (1)
- xlist (1)
検索結果
先頭5件
-
Array
# collect! -> Enumerator (64.0) -
各要素を順番にブロックに渡して評価し、その結果で要素を 置き換えます。
各要素を順番にブロックに渡して評価し、その結果で要素を
置き換えます。
ブロックが与えられなかった場合は、自身と map! から生成した
Enumerator オブジェクトを返します。
//emlist[例][ruby]{
ary = [1, 2, 3]
ary.map! {|i| i * 3 }
p ary #=> [3, 6, 9]
ary = [1, 2, 3]
e = ary.map!
e.each{ 1 }
p ary #=> [1, 1, 1]
//}
@see Array#collect, Enumerator -
Array
# collect! {|item| . . } -> self (64.0) -
各要素を順番にブロックに渡して評価し、その結果で要素を 置き換えます。
各要素を順番にブロックに渡して評価し、その結果で要素を
置き換えます。
ブロックが与えられなかった場合は、自身と map! から生成した
Enumerator オブジェクトを返します。
//emlist[例][ruby]{
ary = [1, 2, 3]
ary.map! {|i| i * 3 }
p ary #=> [3, 6, 9]
ary = [1, 2, 3]
e = ary.map!
e.each{ 1 }
p ary #=> [1, 1, 1]
//}
@see Array#collect, Enumerator -
Enumerator
:: Lazy # collect _ concat {|item| . . . } -> Enumerator :: Lazy (61.0) -
ブロックの実行結果をひとつに繋げたものに対してイテレートするような Enumerator::Lazy のインスタンスを返します。
ブロックの実行結果をひとつに繋げたものに対してイテレートするような
Enumerator::Lazy のインスタンスを返します。
//emlist[][ruby]{
["foo", "bar"].lazy.flat_map {|i| i.each_char.lazy}.force
#=> ["f", "o", "o", "b", "a", "r"]
//}
ブロックの返した値 x は、以下の場合にのみ分解され、連結されます。
* x が配列であるか、to_ary メソッドを持つとき
* x が each および force メソッドを持つ (例:Enumerator::Lazy) ... -
Enumerable
# slice _ after {|elt| bool } -> Enumerator (58.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素 としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し ます。
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素
としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し
ます。
パターンを渡した場合は各要素に対し === が呼び出され、 それが真になった
ところをチャンクの末尾と見なします。 ブロックを渡した場合は、各要素に対
しブロックを適用し 返り値が真であった要素をチャンクの末尾と見なします。
パターンもブロックも最初から最後の要素まで呼び出されます。
各チャンクは配列として表現されます。そのため、以下のような呼び出しを行
う事もできます。
//emlist[例][ruby]{
enum.sl... -
Enumerable
# slice _ after(pattern) -> Enumerator (58.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素 としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し ます。
パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素
としてチャンク化(グループ化)したものを繰り返す Enumerator を 返し
ます。
パターンを渡した場合は各要素に対し === が呼び出され、 それが真になった
ところをチャンクの末尾と見なします。 ブロックを渡した場合は、各要素に対
しブロックを適用し 返り値が真であった要素をチャンクの末尾と見なします。
パターンもブロックも最初から最後の要素まで呼び出されます。
各チャンクは配列として表現されます。そのため、以下のような呼び出しを行
う事もできます。
//emlist[例][ruby]{
enum.sl... -
Enumerator
:: Lazy # grep(pattern) {|item| . . . } -> Enumerator :: Lazy (58.0) -
Enumerable#grep と同じですが、配列ではなくEnumerator::Lazy を返します。
Enumerable#grep と同じですが、配列ではなくEnumerator::Lazy を返します。
//emlist[例][ruby]{
(100..Float::INFINITY).lazy.map(&:to_s).grep(/\A(\d)\1+\z/)
# => #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: 100..Infinity>:map>:grep(/\A(\d)\1+\z/)>
(100..Float::INFINITY).lazy.map(&:to_s).grep(/\A(\d)\1+\z/).... -
Exception
# ==(other) -> bool (58.0) -
自身と指定された other のクラスが同じであり、 message と backtrace が == メソッドで比較して 等しい場合に true を返します。そうでない場合に false を返します。
自身と指定された other のクラスが同じであり、
message と backtrace が == メソッドで比較して
等しい場合に true を返します。そうでない場合に false を返します。
@param other 自身と比較したいオブジェクトを指定します。
自身と異なるクラスのオブジェクトを指定した場合は
Exception#exception を実行して変換を試みます。
//emlist[例][ruby]{
require "date"
def check_long_month(month)
return if D... -
Array
# collect -> Enumerator (46.0) -
各要素に対してブロックを評価した結果を全て含む配列を返します。
各要素に対してブロックを評価した結果を全て含む配列を返します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
# すべて 3 倍にする
p [1, 2, 3].map {|n| n * 3 } # => [3, 6, 9]
//}
@see Enumerable#collect, Enumerable#map -
Array
# collect {|item| . . . } -> [object] (46.0) -
各要素に対してブロックを評価した結果を全て含む配列を返します。
各要素に対してブロックを評価した結果を全て含む配列を返します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
# すべて 3 倍にする
p [1, 2, 3].map {|n| n * 3 } # => [3, 6, 9]
//}
@see Enumerable#collect, Enumerable#map -
Enumerable
# collect -> Enumerator (46.0) -
各要素に対してブロックを評価した結果を全て含む配列を返します。
各要素に対してブロックを評価した結果を全て含む配列を返します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
# すべて 3 倍にした配列を返す
p (1..3).map {|n| n * 3 } # => [3, 6, 9]
p (1..3).collect { "cat" } # => ["cat", "cat", "cat"]
//}
@see Array#collect, Array#map -
Enumerable
# collect {|item| . . . } -> [object] (46.0) -
各要素に対してブロックを評価した結果を全て含む配列を返します。
各要素に対してブロックを評価した結果を全て含む配列を返します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
# すべて 3 倍にした配列を返す
p (1..3).map {|n| n * 3 } # => [3, 6, 9]
p (1..3).collect { "cat" } # => ["cat", "cat", "cat"]
//}
@see Array#collect, Array#map -
Enumerable
# collect _ concat -> Enumerator (46.0) -
各要素をブロックに渡し、その返り値を連結した配列を返します。
各要素をブロックに渡し、その返り値を連結した配列を返します。
ブロックの返り値は基本的に配列を返すべきです。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
[[1,2], [3,4]].flat_map{|i| i.map{|j| j*2}} # => [2,4,6,8]
//} -
Enumerable
# collect _ concat {| obj | block } -> Array (46.0) -
各要素をブロックに渡し、その返り値を連結した配列を返します。
各要素をブロックに渡し、その返り値を連結した配列を返します。
ブロックの返り値は基本的に配列を返すべきです。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
[[1,2], [3,4]].flat_map{|i| i.map{|j| j*2}} # => [2,4,6,8]
//} -
Enumerable
# chunk _ while {|elt _ before , elt _ after| . . . } -> Enumerator (40.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け
た(グループ化した)要素を持つEnumerator を返します。
隣り合う値をブロックパラメータ elt_before、elt_after に渡し、ブロックの
評価値が偽になる所でチャンクを区切ります。
ブロックは self の長さ - 1 回呼び出されます。
@return チャンクごとの配列をブロックパラメータに渡す Enumerator
を返します。eachメソッドは以下のように呼び出します。
//emlist{
enum.chunk_while { |elt_before, elt_af... -
Enumerable
# slice _ before {|elt| bool } -> Enumerator (40.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
パターンがマッチした要素、もしくはブロックが真を返した要素から
次にマッチする手前までを
チャンク化(グループ化)したものを繰り返す Enumerator を
返します。
パターンを渡した場合は各要素に対し === が呼び出され、
それが真になったところをチャンクの先頭と見なします。
ブロックを渡した場合は、各要素に対しブロックを適用し
返り値が真であった要素をチャンクの先頭と見なします。
より厳密にいうと、「先頭要素」の手前で分割していきます。
最初の要素の評価は無視されます。
各チャンクは配列として表現されます。
Enumerable#to_a や Enumerable#map ... -
Enumerable
# slice _ before(pattern) -> Enumerator (40.0) -
パターンがマッチした要素、もしくはブロックが真を返した要素から 次にマッチする手前までを チャンク化(グループ化)したものを繰り返す Enumerator を 返します。
パターンがマッチした要素、もしくはブロックが真を返した要素から
次にマッチする手前までを
チャンク化(グループ化)したものを繰り返す Enumerator を
返します。
パターンを渡した場合は各要素に対し === が呼び出され、
それが真になったところをチャンクの先頭と見なします。
ブロックを渡した場合は、各要素に対しブロックを適用し
返り値が真であった要素をチャンクの先頭と見なします。
より厳密にいうと、「先頭要素」の手前で分割していきます。
最初の要素の評価は無視されます。
各チャンクは配列として表現されます。
Enumerable#to_a や Enumerable#map ... -
Enumerable
# slice _ when {|elt _ before , elt _ after| bool } -> Enumerator (40.0) -
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け た(グループ化した)要素を持つEnumerator を返します。
要素を前から順にブロックで評価し、その結果によって要素をチャンクに分け
た(グループ化した)要素を持つEnumerator を返します。
隣り合う値をブロックパラメータ elt_before、elt_after に渡し、ブロックの
評価値が真になる所でチャンクを区切ります。
ブロックは self の長さ - 1 回呼び出されます。
@return チャンクごとの配列をブロックパラメータに渡す Enumerator
を返します。eachメソッドは以下のように呼び出します。
//emlist{
enum.slice_when { |elt_before, elt_aft... -
Enumerable
# sort _ by -> Enumerator (40.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
ブロックの評価結果を <=> メソッドで比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。
つまり、以下とほぼ同じ動作をします。
//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙... -
Enumerable
# sort _ by {|item| . . . } -> [object] (40.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
ブロックの評価結果を <=> メソッドで比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。
つまり、以下とほぼ同じ動作をします。
//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙... -
Enumerator
:: Lazy # enum _ for(method = :each , *args) -> Enumerator :: Lazy (40.0) -
Object#to_enum と同じですが、Enumerator::Lazy を返します。
Object#to_enum と同じですが、Enumerator::Lazy を返します。
to_enum は「ブロック付きで呼ぶとループを実行し、ブロックを省略した場合は
Enumerator を返す」ようなメソッドを定義するときによく使われます。
このときに lazy 性が正しく引き継がれるように、Lazy#to_enum は
素のEnumerator ではなく Enumerator::Lazy を返すようになっています。
//emlist[例][ruby]{
module Enumerable
# 要素をn回ずつ繰り返すメソッド
# 例:[1,2,3].repeat(2) ... -
Enumerator
:: Lazy # enum _ for(method = :each , *args) {|*args| block} -> Enumerator :: Lazy (40.0) -
Object#to_enum と同じですが、Enumerator::Lazy を返します。
Object#to_enum と同じですが、Enumerator::Lazy を返します。
to_enum は「ブロック付きで呼ぶとループを実行し、ブロックを省略した場合は
Enumerator を返す」ようなメソッドを定義するときによく使われます。
このときに lazy 性が正しく引き継がれるように、Lazy#to_enum は
素のEnumerator ではなく Enumerator::Lazy を返すようになっています。
//emlist[例][ruby]{
module Enumerable
# 要素をn回ずつ繰り返すメソッド
# 例:[1,2,3].repeat(2) ... -
Enumerator
:: Lazy # to _ enum(method = :each , *args) -> Enumerator :: Lazy (40.0) -
Object#to_enum と同じですが、Enumerator::Lazy を返します。
Object#to_enum と同じですが、Enumerator::Lazy を返します。
to_enum は「ブロック付きで呼ぶとループを実行し、ブロックを省略した場合は
Enumerator を返す」ようなメソッドを定義するときによく使われます。
このときに lazy 性が正しく引き継がれるように、Lazy#to_enum は
素のEnumerator ではなく Enumerator::Lazy を返すようになっています。
//emlist[例][ruby]{
module Enumerable
# 要素をn回ずつ繰り返すメソッド
# 例:[1,2,3].repeat(2) ... -
Enumerator
:: Lazy # to _ enum(method = :each , *args) {|*args| block} -> Enumerator :: Lazy (40.0) -
Object#to_enum と同じですが、Enumerator::Lazy を返します。
Object#to_enum と同じですが、Enumerator::Lazy を返します。
to_enum は「ブロック付きで呼ぶとループを実行し、ブロックを省略した場合は
Enumerator を返す」ようなメソッドを定義するときによく使われます。
このときに lazy 性が正しく引き継がれるように、Lazy#to_enum は
素のEnumerator ではなく Enumerator::Lazy を返すようになっています。
//emlist[例][ruby]{
module Enumerable
# 要素をn回ずつ繰り返すメソッド
# 例:[1,2,3].repeat(2) ... -
Forwardable
# def _ delegators(accessor , *methods) -> () (40.0) -
メソッドの委譲先をまとめて設定します。
メソッドの委譲先をまとめて設定します。
@param accessor 委譲先のオブジェクト
@param methods 委譲するメソッドのリスト
委譲元のオブジェクトで methods のそれぞれのメソッドが呼び出された場合に、
委譲先のオブジェクトの同名のメソッドへ処理が委譲されるようになります。
def_delegators は def_instance_delegators の別名になります。
また、以下の 2 つの例は同じ意味です。
def_delegators :@records, :size, :<<, :map
def_delegator :@reco... -
Forwardable
# def _ instance _ delegators(accessor , *methods) -> () (40.0) -
メソッドの委譲先をまとめて設定します。
メソッドの委譲先をまとめて設定します。
@param accessor 委譲先のオブジェクト
@param methods 委譲するメソッドのリスト
委譲元のオブジェクトで methods のそれぞれのメソッドが呼び出された場合に、
委譲先のオブジェクトの同名のメソッドへ処理が委譲されるようになります。
def_delegators は def_instance_delegators の別名になります。
また、以下の 2 つの例は同じ意味です。
def_delegators :@records, :size, :<<, :map
def_delegator :@reco... -
SingleForwardable
# def _ delegators(accessor , *methods) -> () (40.0) -
メソッドの委譲先をまとめて設定します。
メソッドの委譲先をまとめて設定します。
@param accessor 委譲先のオブジェクト
@param methods 委譲するメソッドのリスト
委譲元のオブジェクトで methods のそれぞれのメソッドが呼び出された場合に、
委譲先のオブジェクトの同名のメソッドへ処理が委譲されるようになります。
def_delegators は def_singleton_delegators の別名になります。
また、以下の 2 つの例は同じ意味です。
def_delegators :@records, :size, :<<, :map
def_delegator :@rec... -
SingleForwardable
# def _ single _ delegators(accessor , *methods) -> () (40.0) -
メソッドの委譲先をまとめて設定します。
メソッドの委譲先をまとめて設定します。
@param accessor 委譲先のオブジェクト
@param methods 委譲するメソッドのリスト
委譲元のオブジェクトで methods のそれぞれのメソッドが呼び出された場合に、
委譲先のオブジェクトの同名のメソッドへ処理が委譲されるようになります。
def_delegators は def_singleton_delegators の別名になります。
また、以下の 2 つの例は同じ意味です。
def_delegators :@records, :size, :<<, :map
def_delegator :@rec... -
Matrix
# collect -> Enumerator (28.0) -
行列の各要素に対してブロックの適用を繰り返した結果を、要素として持つ行列を生成します。
行列の各要素に対してブロックの適用を繰り返した結果を、要素として持つ行列を生成します。
ブロックがない場合、 Enumerator を返します。
//emlist[例][ruby]{
require 'matrix'
m = Matrix[[1, 2], [3, 4]]
p m.map { |x| x + 100 } # => Matrix[[101, 102], [103, 104]]
//}
@see Matrix#each -
Matrix
# collect {|x| . . . } -> Matrix (28.0) -
行列の各要素に対してブロックの適用を繰り返した結果を、要素として持つ行列を生成します。
行列の各要素に対してブロックの適用を繰り返した結果を、要素として持つ行列を生成します。
ブロックがない場合、 Enumerator を返します。
//emlist[例][ruby]{
require 'matrix'
m = Matrix[[1, 2], [3, 4]]
p m.map { |x| x + 100 } # => Matrix[[101, 102], [103, 104]]
//}
@see Matrix#each -
Vector
# collect -> Enumerator (28.0) -
ベクトルの各要素に対してブロックを評価した結果を、要素として持つベクトルを生成します。
ベクトルの各要素に対してブロックを評価した結果を、要素として持つベクトルを生成します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
require 'matrix'
a = [1, 2, 3.5, -10]
v1 = Vector.elements(a)
p v1 # => Vector[1, 2, 3.5, -10]
v2 = v1.map{|x|
x * -1
}
p v2 # => Vector[-1, -2, -3.5, 10]
//} -
Vector
# collect {|x| . . . } -> Vector (28.0) -
ベクトルの各要素に対してブロックを評価した結果を、要素として持つベクトルを生成します。
ベクトルの各要素に対してブロックを評価した結果を、要素として持つベクトルを生成します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
require 'matrix'
a = [1, 2, 3.5, -10]
v1 = Vector.elements(a)
p v1 # => Vector[1, 2, 3.5, -10]
v2 = v1.map{|x|
x * -1
}
p v2 # => Vector[-1, -2, -3.5, 10]
//} -
Set
# collect! {|o| . . . } -> self (25.0) -
集合の各要素についてブロックを評価し、その結果で元の集合を置き換えます。
集合の各要素についてブロックを評価し、その結果で元の集合を置き換えます。
//emlist[][ruby]{
require 'set'
set = Set['hello', 'world']
set.map! {|str| str.capitalize}
p set # => #<Set: {"Hello", "World"}>
//}
@see Enumerable#collect -
Digest
:: Base # block _ length -> Integer (22.0) -
ダイジェストのブロック長を取得します。 例えば、Digest::MD5であれば64、Digest::SHA512であれば128です。
ダイジェストのブロック長を取得します。
例えば、Digest::MD5であれば64、Digest::SHA512であれば128です。
本メソッドは、Digest::MD5などのダイジェストのサブクラスにより、
それぞれの実装に適したものにオーバーライドされます。
例: Digest::MD、Digest::SHA1、Digest::SHA512のブロック長を順番に調べる。
require 'digest'
["MD5", "SHA1", "SHA512"].map{|a| Digest(a).new().block_length } # => [64, 128, 128] -
Digest
:: Base # digest _ length -> Integer (22.0) -
ダイジェストのハッシュ値のバイト長を取得します。 例えば、Digest::MD5であれば16、Digest::SHA1であれば20です。
ダイジェストのハッシュ値のバイト長を取得します。
例えば、Digest::MD5であれば16、Digest::SHA1であれば20です。
本メソッドは、Digest::MD5などのダイジェストのサブクラスにより、
それぞれの実装に適したものにオーバーライドされます。
例: Digest::MD、Digest::SHA1、Digest::SHA512のハッシュ値のバイト長を順番に調べる。
require 'digest'
["MD5", "SHA1", "SHA512"].map{|a| Digest(a).new().digest_length } # => [16, 20, ... -
Digest
:: Base # length -> Integer (22.0) -
ダイジェストのハッシュ値のバイト長を取得します。 例えば、Digest::MD5であれば16、Digest::SHA1であれば20です。
ダイジェストのハッシュ値のバイト長を取得します。
例えば、Digest::MD5であれば16、Digest::SHA1であれば20です。
本メソッドは、Digest::MD5などのダイジェストのサブクラスにより、
それぞれの実装に適したものにオーバーライドされます。
例: Digest::MD、Digest::SHA1、Digest::SHA512のハッシュ値のバイト長を順番に調べる。
require 'digest'
["MD5", "SHA1", "SHA512"].map{|a| Digest(a).new().digest_length } # => [16, 20, ... -
Digest
:: Base # size -> Integer (22.0) -
ダイジェストのハッシュ値のバイト長を取得します。 例えば、Digest::MD5であれば16、Digest::SHA1であれば20です。
ダイジェストのハッシュ値のバイト長を取得します。
例えば、Digest::MD5であれば16、Digest::SHA1であれば20です。
本メソッドは、Digest::MD5などのダイジェストのサブクラスにより、
それぞれの実装に適したものにオーバーライドされます。
例: Digest::MD、Digest::SHA1、Digest::SHA512のハッシュ値のバイト長を順番に調べる。
require 'digest'
["MD5", "SHA1", "SHA512"].map{|a| Digest(a).new().digest_length } # => [16, 20, ... -
Enumerable
# sum(init=0) -> object (22.0) -
要素の合計を返します。
要素の合計を返します。
ブロックが与えられた場合、加算する前に各要素にブロックが適用されます。
selfが空の場合、initを返します。
//emlist[例][ruby]{
{ 1 => 10, 2 => 20 }.sum {|k, v| k * v } # => 50
(1..10).sum # => 55
(1..10).sum {|v| v * 2 } # => 110
('a'..'z').sum # => TypeError
... -
Enumerable
# sum(init=0) {|e| expr } -> object (22.0) -
要素の合計を返します。
要素の合計を返します。
ブロックが与えられた場合、加算する前に各要素にブロックが適用されます。
selfが空の場合、initを返します。
//emlist[例][ruby]{
{ 1 => 10, 2 => 20 }.sum {|k, v| k * v } # => 50
(1..10).sum # => 55
(1..10).sum {|v| v * 2 } # => 110
('a'..'z').sum # => TypeError
... -
Matrix
# each(which = :all) -> Enumerator (22.0) -
行列の各要素を引数としてブロックを呼び出します。
行列の各要素を引数としてブロックを呼び出します。
0行目、1行目、…という順番で処理します。
which に以下の Symbol を指定することで
引数として使われる要素を限定することができます。
* :all - すべての要素(デフォルト)
* :diagonal - 対角要素
* :off_diagonal 対角要素以外
* :lower 対角成分とそれより下側の部分
* :upper対角成分とそれより上側の部分
* :strict_lower 対角成分の下側
* :strict_upper 対角成分の上側
ブロックを省略した場合、 Enumerator ... -
Matrix
# each(which = :all) {|e| . . . } -> self (22.0) -
行列の各要素を引数としてブロックを呼び出します。
行列の各要素を引数としてブロックを呼び出します。
0行目、1行目、…という順番で処理します。
which に以下の Symbol を指定することで
引数として使われる要素を限定することができます。
* :all - すべての要素(デフォルト)
* :diagonal - 対角要素
* :off_diagonal 対角要素以外
* :lower 対角成分とそれより下側の部分
* :upper対角成分とそれより上側の部分
* :strict_lower 対角成分の下側
* :strict_upper 対角成分の上側
ブロックを省略した場合、 Enumerator ... -
Matrix
# elements _ to _ f -> Matrix (22.0) -
各要素を浮動小数点数 Float に変換した行列を返します。
各要素を浮動小数点数 Float に変換した行列を返します。
このメソッドは deprecated です。 map(&:to_f) を使ってください。 -
Matrix
# elements _ to _ i -> Matrix (22.0) -
各要素を整数 Integer に変換した行列を返します。
各要素を整数 Integer に変換した行列を返します。
このメソッドは deprecated です。 map(&:to_i) を使ってください。 -
Matrix
# elements _ to _ r -> Matrix (22.0) -
各要素を有理数 Rational に変換した行列を返します。
各要素を有理数 Rational に変換した行列を返します。
このメソッドは deprecated です。 map(&:to_r) を使ってください。 -
Object
# enum _ for(method = :each , *args) -> Enumerator (22.0) -
Enumerator.new(self, method, *args) を返します。
Enumerator.new(self, method, *args) を返します。
ブロックを指定した場合は Enumerator#size がブロックの評価結果を返
します。ブロックパラメータは引数 args です。
@param method メソッド名の文字列かシンボルです。
@param args 呼び出すメソッドに渡される引数です。
//emlist[][ruby]{
str = "xyz"
enum = str.enum_for(:each_byte)
p(a = enum.map{|b| '%02x' % b }) #=> ["78", "79", "7a"]
#... -
Object
# enum _ for(method = :each , *args) {|*args| . . . } -> Enumerator (22.0) -
Enumerator.new(self, method, *args) を返します。
Enumerator.new(self, method, *args) を返します。
ブロックを指定した場合は Enumerator#size がブロックの評価結果を返
します。ブロックパラメータは引数 args です。
@param method メソッド名の文字列かシンボルです。
@param args 呼び出すメソッドに渡される引数です。
//emlist[][ruby]{
str = "xyz"
enum = str.enum_for(:each_byte)
p(a = enum.map{|b| '%02x' % b }) #=> ["78", "79", "7a"]
#... -
Object
# tap {|x| . . . } -> self (22.0) -
self を引数としてブロックを評価し、self を返します。
self を引数としてブロックを評価し、self を返します。
メソッドチェインの途中で直ちに操作結果を表示するために
メソッドチェインに "入り込む" ことが、このメソッドの主目的です。
//emlist[][ruby]{
(1..10) .tap {|x| puts "original: #{x}" }
.to_a .tap {|x| puts "array: #{x}" }
.select {|x| x.even? } .tap {|x| puts "evens: #{x}" }
.map ... -
Object
# to _ enum(method = :each , *args) -> Enumerator (22.0) -
Enumerator.new(self, method, *args) を返します。
Enumerator.new(self, method, *args) を返します。
ブロックを指定した場合は Enumerator#size がブロックの評価結果を返
します。ブロックパラメータは引数 args です。
@param method メソッド名の文字列かシンボルです。
@param args 呼び出すメソッドに渡される引数です。
//emlist[][ruby]{
str = "xyz"
enum = str.enum_for(:each_byte)
p(a = enum.map{|b| '%02x' % b }) #=> ["78", "79", "7a"]
#... -
Object
# to _ enum(method = :each , *args) {|*args| . . . } -> Enumerator (22.0) -
Enumerator.new(self, method, *args) を返します。
Enumerator.new(self, method, *args) を返します。
ブロックを指定した場合は Enumerator#size がブロックの評価結果を返
します。ブロックパラメータは引数 args です。
@param method メソッド名の文字列かシンボルです。
@param args 呼び出すメソッドに渡される引数です。
//emlist[][ruby]{
str = "xyz"
enum = str.enum_for(:each_byte)
p(a = enum.map{|b| '%02x' % b }) #=> ["78", "79", "7a"]
#... -
Syslog
:: Logger # debug(message = nil , &block) -> true (22.0) -
DEBUG 情報を出力します。syslog の DEBUG の情報として記録されます。
DEBUG 情報を出力します。syslog の DEBUG の情報として記録されます。
ブロックを与えなかった場合は、message をメッセージとしてログを出力します。
ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。
引数とブロックを同時に与えた場合は、message をメッセージとしてログを出
力します(ブロックは評価されません)。
@see Syslog::Logger::LEVEL_MAP, Logger#debug -
Syslog
:: Logger # error(message = nil , &block) -> true (22.0) -
ERROR 情報を出力します。syslog の warning の情報として記録されます。
ERROR 情報を出力します。syslog の warning の情報として記録されます。
ブロックを与えなかった場合は、message をメッセージとしてログを出力します。
ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。
引数とブロックを同時に与えた場合は、message をメッセージとしてログを出
力します(ブロックは評価されません)。
@see Syslog::Logger::LEVEL_MAP, Logger#error -
Syslog
:: Logger # fatal(message = nil , &block) -> true (22.0) -
FATAL 情報を出力します。syslog の err の情報として記録されます。
FATAL 情報を出力します。syslog の err の情報として記録されます。
ブロックを与えなかった場合は、message をメッセージとしてログを出力します。
ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。
引数とブロックを同時に与えた場合は、message をメッセージとしてログを出
力します(ブロックは評価されません)。
@see Syslog::Logger::LEVEL_MAP, Logger#fatal -
Syslog
:: Logger # info(message = nil , &block) -> true (22.0) -
INFO 情報を出力します。syslog の info の情報として記録されます。
INFO 情報を出力します。syslog の info の情報として記録されます。
ブロックを与えなかった場合は、message をメッセージとしてログを出力します。
ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。
引数とブロックを同時に与えた場合は、message をメッセージとしてログを出
力します(ブロックは評価されません)。
@see Syslog::Logger::LEVEL_MAP, Logger#info -
Syslog
:: Logger # unknown(message = nil , &block) -> true (22.0) -
UNKNOWN 情報を出力します。syslog の alert の情報として記録されます。
UNKNOWN 情報を出力します。syslog の alert の情報として記録されます。
ブロックを与えなかった場合は、message をメッセージとしてログを出力します。
ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。
引数とブロックを同時に与えた場合は、message をメッセージとしてログを出
力します(ブロックは評価されません)。
@see Syslog::Logger::LEVEL_MAP, Logger#unknown -
Syslog
:: Logger # warn(message = nil , &block) -> true (22.0) -
WARN 情報を出力します。syslog の notice の情報として記録されます。
WARN 情報を出力します。syslog の notice の情報として記録されます。
ブロックを与えなかった場合は、message をメッセージとしてログを出力します。
ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。
引数とブロックを同時に与えた場合は、message をメッセージとしてログを出
力します(ブロックは評価されません)。
@see Syslog::Logger::LEVEL_MAP, Logger#warn -
Thread
:: Backtrace :: Location # absolute _ path -> String (22.0) -
self が表すフレームの絶対パスを返します。
self が表すフレームの絶対パスを返します。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.absolute_path
end
# => /path/to/foo.rb
# /path/to/foo.rb
# /path/to/foo.rb
//}
@see... -
Thread
:: Backtrace :: Location # base _ label -> String (22.0) -
self が表すフレームの基本ラベルを返します。通常、 Thread::Backtrace::Location#label から修飾を取り除いたもので構成 されます。
self が表すフレームの基本ラベルを返します。通常、
Thread::Backtrace::Location#label から修飾を取り除いたもので構成
されます。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.base_label
end
# => init... -
Thread
:: Backtrace :: Location # inspect -> String (22.0) -
Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文 字列に変換したオブジェクトを返します。
Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文
字列に変換したオブジェクトを返します。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.inspect
end
# => "path/to/foo.rb:5:in ... -
Thread
:: Backtrace :: Location # to _ s -> String (22.0) -
self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し ます。
self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し
ます。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.to_s
end
# => path/to/foo.rb:5:in `initialize'
# path/to/foo... -
Vector
# collect2(v) -> Enumerator (22.0) -
ベクトルの各要素と引数 v の要素との組に対してブロックを評価し、その結果を要素として持つ配列を返します。
ベクトルの各要素と引数 v の要素との組に対してブロックを評価し、その結果を要素として持つ配列を返します。
ベクトルの各要素と、それに対応するインデックスを持つ引数 v (ベクトル or 配列)の要素との組に対して (2引数の) ブロックを評価し、その結果を要素として持つ配列を返します。
ブロックを省略した場合は Enumerator を返します。
@param v ブロック内で評価される(ベクトル or 配列)
@raise ExceptionForMatrix::ErrDimensionMismatch 自分自身と引数のベクト
ルの要素の数(次元)が異なっていたとき... -
Vector
# collect2(v) {|x , y| . . . } -> Array (22.0) -
ベクトルの各要素と引数 v の要素との組に対してブロックを評価し、その結果を要素として持つ配列を返します。
ベクトルの各要素と引数 v の要素との組に対してブロックを評価し、その結果を要素として持つ配列を返します。
ベクトルの各要素と、それに対応するインデックスを持つ引数 v (ベクトル or 配列)の要素との組に対して (2引数の) ブロックを評価し、その結果を要素として持つ配列を返します。
ブロックを省略した場合は Enumerator を返します。
@param v ブロック内で評価される(ベクトル or 配列)
@raise ExceptionForMatrix::ErrDimensionMismatch 自分自身と引数のベクト
ルの要素の数(次元)が異なっていたとき... -
Vector
# elements _ to _ f -> Vector (22.0) -
ベクトルの各成分をFloatに変換したベクトルを返します。
ベクトルの各成分をFloatに変換したベクトルを返します。
このメソッドは deprecated です。 map(&:to_f) を使ってください。
//emlist[例][ruby]{
require 'matrix'
v = Vector.elements([2, 3, 5, 7, 9])
p v.elements_to_f
# => Vector[2.0, 3.0, 5.0, 7.0, 9.0]
//} -
Vector
# elements _ to _ i -> Vector (22.0) -
ベクトルの各成分をIntegerに変換したベクトルを返します。
ベクトルの各成分をIntegerに変換したベクトルを返します。
このメソッドは deprecated です。 map(&:to_i) を使ってください。
//emlist[例][ruby]{
require 'matrix'
v = Vector.elements([2.5, 3.0, 5.01, 7])
p v.elements_to_i
# => Vector[2, 3, 5, 7]
//} -
Vector
# elements _ to _ r -> Vector (22.0) -
ベクトルの各成分をRationalに変換したベクトルを返します。
ベクトルの各成分をRationalに変換したベクトルを返します。
このメソッドは deprecated です。 map(&:to_r) を使ってください。
//emlist[例][ruby]{
require 'matrix'
v = Vector.elements([2.5, 3.0, 5.75, 7])
p v.elements_to_r
# => Vector[(5/2), (3/1), (23/4), (7/1)]
//} -
WIN32OLE
_ TYPE # default _ event _ sources -> [WIN32OLE _ TYPE] (22.0) -
型が持つソースインターフェイスを取得します。
型が持つソースインターフェイスを取得します。
default_event_sourcesメソッドは、selfがCoClass(コンポーネントクラス)
の場合、そのクラスがサポートするデフォルトのソースインターフェイス(イ
ベントの通知元となるインターフェイス)を返します。
@return デフォルトのソースインターフェイスをWIN32OLE_TYPEの配列と
して返します。返すのは配列ですが、デフォルトのソースインターフェ
イスは最大でも1インターフェイスです。ソースインターフェイスを持
たない場合は空配列を返します。
tobj = ... -
WIN32OLE
_ TYPE # default _ ole _ types -> [WIN32OLE _ TYPE] (22.0) -
型が持つデフォルトのインターフェイスを取得します。
型が持つデフォルトのインターフェイスを取得します。
default_ole_typesメソッドは、selfがCoClass(コンポーネントクラス)の場
合、そのクラスが実装しているデフォルトのインターフェイスと、サポートし
ていればデフォルトのソースインターフェイスを返します。
@return デフォルトインターフェイスをWIN32OLE_TYPEの配列として返し
ます。デフォルトインターフェイスは、最大でも、クラス操作用のイ
ンターフェイス(OLEオートメーション用)と、イベント用のソースイ
ンターフェイスの2要素です。デフォルトインターフ... -
WIN32OLE
_ TYPE # implemented _ ole _ types -> [WIN32OLE _ TYPE] (22.0) -
この型が実装するインターフェイスを取得します。
この型が実装するインターフェイスを取得します。
implemented_ole_typesメソッドは、selfがCoClass(コンポーネントクラス)
の場合、そのクラスが実装しているすべてのインターフェイスを返します。
@return クラスが実装するすべてのインターフェイスをWIN32OLE_TYPEの
配列として返します。この型がインターフェイスを実装しない場合は、
空配列を返します。
@raise WIN32OLERuntimeError 型属性が取得できない場合に通知します。
tobj = WIN32OLE_TYPE.new('Micro... -
WIN32OLE
_ TYPE # ole _ methods -> [WIN32OLE _ METHOD] (22.0) -
型が持つメソッドのメタデータを取得します。
型が持つメソッドのメタデータを取得します。
@return 型が持つメソッドのメタデータをWIN32OLE_METHODの配列として返します。
メソッドを持たない場合は空配列を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Worksheet')
methods = tobj.ole_methods.map {|m| m.name }
# => ['QueryInterface', 'AddRef', 'Release',..... -
WIN32OLE
_ TYPE # source _ ole _ types -> [WIN32OLE _ TYPE] (22.0) -
型が持つソースインターフェイスを取得します。
型が持つソースインターフェイスを取得します。
source_ole_typesメソッドは、selfがCoClass(コンポーネントクラス)の場合、
そのクラスがサポートするすべてのソースインターフェイス(イベントの通知
元となるインターフェイス)を返します。
ActiveXコントロールのようにイベント(WIN32OLE_EVENT)をサポートし
ているコンポーネントクラスの場合は、このメソッドの呼び出しによりイベン
トインターフェイスを調べることが可能です。
@return ソースインターフェイスをWIN32OLE_TYPEの配列として返します。
ソースインターフェイスを... -
WIN32OLE
_ TYPELIB # ole _ classes -> [WIN32OLE _ TYPE] (22.0) -
TypeLibに格納されているすべての型を取得します。
TypeLibに格納されているすべての型を取得します。
TypeLibに格納されている型には、クラス(CoClass——コンポーネントクラス)
やEnum(列挙子)、構造体などがあります。
@return TypeLibに格納されているすべての型をWIN32OLE_TYPEオブジェ
クトの配列として返します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library')
classes = tlib.ole_types.map{|k| k.name} # => ["Adjustments... -
WIN32OLE
_ TYPELIB # ole _ types -> [WIN32OLE _ TYPE] (22.0) -
TypeLibに格納されているすべての型を取得します。
TypeLibに格納されているすべての型を取得します。
TypeLibに格納されている型には、クラス(CoClass——コンポーネントクラス)
やEnum(列挙子)、構造体などがあります。
@return TypeLibに格納されているすべての型をWIN32OLE_TYPEオブジェ
クトの配列として返します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library')
classes = tlib.ole_types.map{|k| k.name} # => ["Adjustments... -
WIN32OLE
_ VARIABLE # variable _ kind -> String (22.0) -
変数の種類(VARKIND)を取得します。
変数の種類(VARKIND)を取得します。
この変数の種類を示す文字列を返します。
@return VARKINDに対応する文字列を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'XlSheetType')
puts tobj.variables.map {|v| v.variable_kind}.uniq # => CONSTANT
返送値は以下のいずれかとなります。
: PERINSTANCE
インスタンス毎の変数。構造体やユーザ定義体のフィールド。(0)
: STATI... -
WIN32OLE
_ VARIABLE # varkind -> Integer (22.0) -
変数の種類(VARKIND)を取得します。
変数の種類(VARKIND)を取得します。
この変数の種類を示す数値を返します。
@return VARKINDに対応する数値を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'XlSheetType')
puts tobj.variables.map {|v| v.varkind}.uniq # => 2
数値の意味については、WIN32OLE_VARIABLE#variable_kindの説明を参照してください。 -
WIN32OLE
_ VARIABLE # visible? -> bool (22.0) -
変数の可視性を取得します。
変数の可視性を取得します。
@return publicアクセス可能であれば真を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'XlSheetType')
puts tobj.variables.map {|v| v.visible?}.uniq # => true