Module RecursiveUtils
In: recursiveutils.rb

recursiveutils.rb — Recursive Utils

Authors:Koichi MICHIMASA <michi[at]ep.sci.hokudai.ac.jp>
Copyright:Copyright (C) Koichi MICHIMASA 2006-2008. All rights reserved.
GemPackage:www.ep.sci.hokudai.ac.jp/~michi/gemserver/
Download:www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/src/recursiveutils/
Document:www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/doc/recursiveutils/
History:www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/history/recursiveutils.html

Summary

再帰処理機能を実装したツール群.

Methods

Module Methods

ファイル操作:chmod, chown

Reference Tools

rename.rb:www.ep.sci.hokudai.ac.jp/~daktu32/DOC/ruby/works/ruby_works.htm
rsed2.rb:www.ep.sci.hokudai.ac.jp/~morikawa/ruby/rsed2/SIGEN_PUB.htm

How to Use

ツールとして使う場合は FrontEnd を参照する事. (Required Library の項も参照する事)

Required Library

RecursiveUtils

RecursiveUtils::FullPathList

  • find (Standard Library)

RecursiveUtils::FrontEnd

  • optparse (Standard Library)

Licence

このスクリプトはフリーウェアです. 使用, 改変, 再配布は自己責任の範囲でお好きにどうぞ.

Acknowledge

Methods

chmod   chown  

Classes and Modules

Module RecursiveUtils::FrontEnd
Class RecursiveUtils::FullPathList
Class RecursiveUtils::Rename
Class RecursiveUtils::Sed

Constants

VERSION = '3.5.9'   RecursiveUtils のバージョン
UPDATE = '2008/10/07'   RecursiveUtils の最終更新日
URL = 'http://www.ep.sci.hokudai.ac.jp/~michi/pc/ruby/'   RecursiveUtils の公開アドレス

Public Instance methods

再帰処理機能を付加した File#chmod. オプションの種類が増えている事を除けば FileUtils#chmod_R とほぼ同じ.

Options

FullPathList::Flag のオプションも参照する事.

verbose:処理を行う前に内容を表示する.
noop:実際の処理は行わない.

[Source]

# File recursiveutils.rb, line 1072
  def chmod(mode, list, opts = {})
    extend LocaleFilter::PrintWrapper

    opts[:recursive] = true
    opts[:warning]   = false
    path_list = FullPathList.get(opts, list)
    if path_list.empty?
      warn 'No files will be changed.'  if opts[:verbose]
      return false
    end
    message = %Q(: Change to "#{mode}".)

    path_list.each do |path|
      print path, message, "\n"       if opts[:verbose]
      puts File::Stat.new(path).mode  if opts[:debug]
      next  if opts[:noop]
      File.chmod(mode, path)  rescue warn $!
    end
    return true
  end

再帰処理機能を付加した File#chown. オプションの種類が増えている事を除けば FileUtils#chown_R とほぼ同じ.

Options

FullPathList::Flag のオプションも参照する事.

verbose:処理を行う前に内容を表示する.
noop:実際の処理は行わない.

[Source]

# File recursiveutils.rb, line 1101
  def chown(owner, group, list, opts = {})
    extend LocaleFilter::PrintWrapper

    opts[:recursive] = true
    opts[:warning]   = false
    path_list = FullPathList.get(opts, list)
    if path_list.empty?
      warn 'No files will be changed.'  if opts[:verbose]
      return false
    end
    message = %Q(: Change to owner: "#{owner}", group: "#{group}".)

    path_list.each do |path|
      print path, message, "\n"  if opts[:verbose]
      next  if opts[:noop]
      File.chown(owner, group, path)  rescue warn $!
    end
    return true
  end

[Validate]