Class Fortran90Dependency
In: f90depend.rb
Parent: Object

Methods

add_files   del_files   gen_list   new   progress  

Classes and Modules

Class Fortran90Dependency::Fortran90DependencyEntry

Public Class methods

[Source]

    # File f90depend.rb, line 20
20:   def initialize(quiet=nil, strictly=nil)
21:     @entries = []
22:     @quiet = quiet
23:     @strictly = strictly
24:     @progress = $stderr unless quiet
25:   end

Public Instance methods

探査するファイルを追加する. 引数 files には Fortran90/95 ファイル名を与える. ファイルが存在しない場合, エラーを返す.

[Source]

    # File f90depend.rb, line 32
32:   def add_files(*files)
33:     files.flatten!
34:     progress "  Adding     "
35:     files.each{|file|
36:       progress "."
37:       entry = Fortran90DependencyEntry.new(file, @strictly)
38:       @entries << entry if entry.modules
39:     }
40:     progress "\n"
41:     @entries
42:   end

探査するファイルリストから, ファイルを削除する. 引数 files には Fortran90/95 ファイル名を与える.

[Source]

    # File f90depend.rb, line 48
48:   def del_files(*files)
49:     files.flatten!
50:     progress "  Deleting   "
51:     files.each{|file|
52:       @entries.collect!{|entry|
53:         if File.expand_path(file) == File.expand_path(entry.file)
54:           progress "."
55:           next nil
56:         else
57:           next entry
58:         end
59:       }
60:       @entries.delete_if{|entry| !entry }
61:     }
62:     progress "\n"
63:     @entries
64:   end

依存関係リストを作成する

[Source]

    # File f90depend.rb, line 69
69:   def gen_list
70:     dep_list = []
71:     progress "  Generating "
72:     @entries.each{|entry|
73:       progress "."
74:       dep_line = entry.file.sub(/\.f9(0|5)$/i, '.o') + ': '
75:       entry.uses.each{|use_item|
76:         @entries.each{|checked_entry|
77:           if checked_entry.modules.include?(use_item)
78:             dep_line << checked_entry.file.sub(/\.f9(0|5)$/i, '.o') + ' '
79:             break
80:           end
81:         }
82:       }
83:       dep_list << dep_line
84:     }
85:     progress "\n"
86:     dep_list.join("\n")
87:   end

[Source]

    # File f90depend.rb, line 91
91:   def progress(char)
92:     unless @quiet
93:       @progress.print(char)
94:       @progress.flush
95:     end
96:   end

[Validate]