Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > rakeライブラリ > Rake::FileListクラス

class Rake::FileList + Rake::Cloneable

クラスの継承リスト: Rake::FileList < Rake::Cloneable < Object < Kernel < BasicObject


aliases: FileList

要約

このクラスは Array と基本的には同じです。

ファイルの操作をほんの少しだけ、簡単にするためのヘルパーメソッドがいくつか定義されています。

Rake::FileList は与えられた glob のパターンを使ってすぐにファイルを検索せずに、 後で評価するためにそれを保存しておきます。

このことは、多くのファイルにマッチする多くの Rake::FileList を使用できることを意味します。 実際に使用されると Rake::FileList が保持するパターンが評価されます。

特異メソッド

self[*args] -> Rake::FileList

与えられたパターンをもとにして自身を初期化します。

[PARAM] args:
パターンを指定します。
new(*patterns) {|self| ... }

与えられたパターンをもとにして自身を初期化します。

ブロックが与えられている場合は、自身をブロックパラメータとしてブロックを評価します。

[PARAM] patterns:
パターンを指定します。

例:

file_list = FileList.new('lib/**/*.rb', 'test/test*.rb')

pkg_files = FileList.new('lib/**/*') do |fl|
  fl.exclude(/\bCVS\b/)
end

インスタンスメソッド

self * other -> Array | String

Array#* と動作を合わせるために再定義しています。

[SEE_ALSO] Array#*

self == array -> bool

自身を配列に変換してから与えられた配列と比較します。

[PARAM] array:
比較対象の配列を指定します。
calculate_exclude_regexp

除外リストに含まれるパターンを適切に変換します。

clear_exclude -> self

登録されている除外リストをクリアします。

clone -> object

自身を複製します。

自身がフリーズされていれば返されるオブジェクトもフリーズされています。

dup -> object

自身と同じクラスのオブジェクトを作成後、自身のインスタンス変数を 全て新たに作成したオブジェクトにコピーします。

egrep(pattern) {|filename, count, line| ... }

与えられたパターンをファイルリストから grep のように検索します。

ブロックが与えられた場合は、マッチした行の情報 (ファイル名、行番号、マッチした行) が ブロックに渡されてブロックが評価されます。ブロックが与えられなかった場合は、 標準出力に、ファイル名:行番号:マッチした行を出力します。

[PARAM] pattern:
正規表現を指定します。
exclude(*patterns) {|entry| ... } -> self

自身から取り除くべきファイル名のパターンを自身の除外リストに登録します。

パターンとして正規表現、グロブパターン、文字列が使用可能です。 さらにブロックが与えられた場合は、ブロックを評価して真になったエントリを削除します。

グロブパターンはファイルシステムに対して展開されます。 もし、ファイルシステムに存在しないファイルを明示的にリストへ追加した場合、 グロブパターンではそのファイルをリストから削除しません。

例:

FileList['a.c', 'b.c'].exclude("a.c") # => ['b.c']
FileList['a.c', 'b.c'].exclude(/^a/)  # => ['b.c']

# If "a.c" is a file, then ...
FileList['a.c', 'b.c'].exclude("a.*") # => ['b.c']

# If "a.c" is not a file, then ...
FileList['a.c', 'b.c'].exclude("a.*") # => ['a.c', 'b.c']
exclude?(file_name) -> bool

与えられたファイル名が除外される場合は、真を返します。 そうでない場合は偽を返します。

[PARAM] file_name:
ファイル名を指定します。
existing -> Rake::FileList

自身に含まれるファイルのうちファイルシステムに存在するファイルのみを 含む Rake::FileList を返します。

existing! -> self

自身に含まれるファイルのうちファイルシステムに存在するファイルのみを 含むように自身を変更して返します。

ext(newext = '') -> Rake::FileList

各要素に String#ext を適用した新しい Rake::FileList を返します。

[SEE_ALSO] String#ext

gsub(pattern, replace) -> Rake::FileList

自身に含まれるファイルリストのそれぞれのエントリに対して String#gsub を実行し、 結果を新しい Rake::FileList として返します。

例:
  FileList['lib/test/file', 'x/y'].gsub(/\//, "\\") # => ['lib\\test\\file', 'x\\y']
gsub!(pattern, replace) -> self

自身に含まれるファイルリストのそれぞれのエントリに対して String#gsub を実行します。 自身を破壊的に変更します。

import(array) -> self

与えられた配列を自身にインポートします。

[PARAM] array:
ファイル名のリストを指定します。
include(*filenames) -> self

与えられたパターンを自身に追加します。

[PARAM] filenames:
追加するファイル名のパターンを指定します。

例:

file_list.include("*.java", "*.cfg")
file_list.include %w( math.c lib.h *.o )
is_a?(klass) -> bool
kind_of?(klass) -> bool

自身に Array のフリをさせます。

pathmap(spec = nil) -> Rake::FileList

各要素に String#pathmap を適用した新しい Rake::FileList を返します。

[SEE_ALSO] String#pathmap

resolve -> self

追加リストと除外リストを評価します。

sub(pattern, replace) -> Rake::FileList

自身に含まれるファイルリストのそれぞれのエントリに対して String#sub を実行し、 結果を新しい Rake::FileList として返します。

例:

FileList['a.c', 'b.c'].sub(/\.c$/, '.o')  => ['a.o', 'b.o']
sub!(pattern, replace) -> self

自身に含まれるファイルリストのそれぞれのエントリに対して String#sub を実行します。 自身を破壊的に変更します。

to_a -> Array
to_ary -> Array

内部的な配列を返します。

to_s -> String

全ての要素をスペースで連結した文字列を返します。

定数

ARRAY_METHODS -> Array

Array に定義されているメソッドのリストです。

DEFAULT_IGNORE_PATTERNS -> Array

デフォルトで除外するパターンのリストです。

DEFAULT_IGNORE_PROCS

デフォルトで除外する手続きです。

DELEGATING_METHODS -> Array

委譲するメソッドのリストです。

MUST_DEFINE -> Array

必ず委譲しなければならない付加的なメソッドのリストです。

MUST_NOT_DEFINE -> Array

委譲してはいけないメソッドのリストです。

このリストに含まれているメソッドはこのクラスで定義しています。

SPECIAL_RETURN -> Array

Array のインスタンスを返すので委譲した後にラップする必要があるメソッドのリストです。

class Rake::FileList