------ art_29766_23808467.1220478358862 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Yes, rubygems are quite common so the solution should probably should include support for them, at least if I wanted to really use it in the future. Here is one that only shows dependencies between gems (and stdlib), not the requires inside gems. It generates somewhat excessive output when gems are involved as their paths tend to be long. Thanks Michal $ cat q175t.rb require 'date' require 'readline' require 'matrix' require 'rubygems' require 'time' require 'hpricot' require 'rubyforge' require 'hoe' require 'curses' $ ruby -r q175.rb q175t.rb require: q175t.rb:1: date /usr/lib/ruby/1.8/date.rb require: q175t.rb:2: readline /usr/lib/ruby/1.8/x86_64-linux/readline.so require: q175t.rb:3: matrix /usr/lib/ruby/1.8/matrix.rb require: q175t.rb:4: rubygems /usr/lib/ruby/1.8/rubygems.rb require: q175t.rb:5: time /usr/lib/ruby/1.8/time.rb require: /var/lib/gems/1.8/gems/hpricot-0.6.161/lib/hpricot/traverse.rb:2: uri /usr/lib/ruby/1.8/uri.rb require: /var/lib/gems/1.8/gems/hpricot-0.6.161/lib/hpricot/inspect.rb:1: pp /usr/lib/ruby/1.8/pp.rb require: /var/lib/gems/1.8/gems/hpricot-0.6.161/lib/hpricot/builder.rb:2: fast_xs /var/lib/gems/1.8/gems/hpricot-0.6.161/lib/universal-darwin9.0/fast_xs.so require: q175t.rb:6: hpricot /var/lib/gems/1.8/gems/hpricot-0.6.161/lib/hpricot.rb require: /var/lib/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge.rb:5: yaml /usr/lib/ruby/1.8/yaml.rb require: /var/lib/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge.rb:6: open-uri /usr/lib/ruby/1.8/open-uri.rb require: /var/lib/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge/client.rb:1: webrick/cookie /usr/lib/ruby/1.8/webrick/cookie.rb require: /var/lib/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge/client.rb:2: net/http /usr/lib/ruby/1.8/net/http.rb require: /var/lib/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge/client.rb:3: net/https /usr/lib/ruby/1.8/net/https.rb require: q175t.rb:7: rubyforge /var/lib/gems/1.8/gems/rubyforge-1.0.0/lib/rubyforge.rb require: /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:35: getoptlong /usr/lib/ruby/1.8/getoptlong.rb require: /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:37: singleton /usr/lib/ruby/1.8/singleton.rb require: /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:39: ostruct /usr/lib/ruby/1.8/ostruct.rb require: /var/lib/gems/1.8/gems/hoe-1.7.0/lib/hoe.rb:4: rake /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb require: /var/lib/gems/1.8/gems/hoe-1.7.0/lib/hoe.rb:5: rake/gempackagetask /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake/gempackagetask.rb require: /var/lib/gems/1.8/gems/hoe-1.7.0/lib/hoe.rb:6: rake/rdoctask /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake/rdoctask.rb require: /var/lib/gems/1.8/gems/hoe-1.7.0/lib/hoe.rb:7: rake/testtask /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake/testtask.rb require: q175t.rb:8: hoe /var/lib/gems/1.8/gems/hoe-1.7.0/lib/hoe.rb require: q175t.rb:9: curses /usr/lib/ruby/1.8/x86_64-linux/curses.so ------ art_29766_23808467.1220478358862 Content-Type: application/x-ruby; name=q175.rb Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkoh3xh5 Content-Disposition: attachment; filename=q175.rb dW5sZXNzIEtlcm5lbC5jb25zdGFudHMuaW5jbHVkZT8gIlExNzUiCgpyZXF1aXJlICdyYmNvbmZp ZycKCm1vZHVsZSBLZXJuZWwKCiAgbW9kdWxlIFExNzUKCiAgICBkZWYgc2VsZi5nZXRfZXh0cwog ICAgICBleHRzID0gWyJyYiIsIENvbmZpZzo6Q09ORklHWyJETEVYVCJdLCBDb25maWc6OkNPTkZJ R1siRExFWFQyIl1dCiAgICAgIGV4dHMucG9wIHVubGVzcyBleHRzWy0xXS5sZW5ndGggPiAwCiAg ICAgIGV4dHMKICAgIGVuZAoKICAgIGRlZiBzZWxmLmRpcl9zZXBhcmF0b3I/IG51bQogICAgICBu dW0gPT0gRmlsZTo6U0VQQVJBVE9SWzBdIHx8CiAgICAgICAgKCBGaWxlOjpBTFRfU0VQQVJBVE9S ICYmIG51bSA9PSBGaWxlOjpBTFRfU0VQQVJBVE9SWzBdKQogICAgZW5kCgogICAgZGVmIHNlbGYu ZG90PyBudW0KICAgICAgbnVtID09ICIuIlswXQogICAgZW5kCgogICAgZGVmIHNlbGYucGF0aF9h YnNvbHV0ZT8gcGF0aAogICAgICAoZGlyX3NlcGFyYXRvcj8gcGF0aFswXSkgfHwgCiAgICAgICAg KCAoZG90PyBwYXRoWzBdKSAmJiAoZGlyX3NlcGFyYXRvcj8gcGF0aFsxXSkgKQogICAgZW5kCgog ICAgZGVmIHNlbGYuc2Nhbl9zaW5nbGUgZmlsZQogICAgICBpZiBwYXRoX2Fic29sdXRlPyBmaWxl CiAgICAgICAgcmV0dXJuIGZpbGUgaWYgRmlsZS5leGlzdHM/IGZpbGUKICAgICAgZWxzZQogICAg ICAgICQ6LmVhY2h7fHBhdGh8IGFicyA9IHBhdGggKyBGaWxlOjpTZXBhcmF0b3IgKyBmaWxlIDsg cmV0dXJuIGFicyBpZiBGaWxlLmV4aXN0cz8gYWJzfQogICAgICBlbmQKICAgICAgbmlsCiAgICBl bmQKCiAgICBkZWYgc2VsZi5zY2FuIGZpbGUKICAgICAgZXh0cyA9IGdldF9leHRzCiAgICAgIGlm IGV4dHMubWFwe3xlfCBSZWdleHAubmV3ICJcXC4je2V9XFxaIn0uaW5qZWN0KGZhbHNlKXt8dixy ZXwgdiB8fCAoZmlsZSA9fiByZSl9IAogICAgICAgIGZpbGVzID0gW2ZpbGVdCiAgICAgIGVsc2UK ICAgICAgICBmaWxlcyA9IGV4dHMubWFwe3xlfCAiI3tmaWxlfS4je2V9In0KICAgICAgZW5kCiAg ICAgIGZpbGVzLmVhY2h7fGZ8IAogICAgICAgIHMgPSBzY2FuX3NpbmdsZSBmCiAgICAgICAgcmV0 dXJuIHMgaWYgcwogICAgICB9CiAgICAgIG5pbAogICAgZW5kCgogICAgZGVmIHNlbGYucmVxdWVz dG9yIGRlcHRoPTIKICAgICAgcmVzID0gS2VybmVsOjpjYWxsZXIoZGVwdGgpWzBdCiAgICAgIChy ZXMuc3RhcnRfd2l0aD8gR2VtX1JlcXVpcmUpID8gS2VybmVsOjpjYWxsZXIoZGVwdGgrMSlbMF0g OiByZXMKICAgIGVuZAoKICAgIGRlZiBzZWxmLmdlbXBhdGggcmVxCiAgICAgIGlmIChPYmplY3Qu Y29uc3RhbnRzLmluY2x1ZGU/ICJHZW0iKQogICAgICAgIEdlbS5wYXRoLmVhY2h7fHB8CiAgICAg ICAgICByZXR1cm4gIHAgKyAoRmlsZS5zcGxpdCByZXFbcC5sZW5ndGggLi4gLTFdKVswXSAgaWYg cmVxLnN0YXJ0X3dpdGg/IHAKICAgICAgICB9CiAgICAgIGVuZAogICAgICBuaWwKICAgIGVuZAoK ICAgIGRlZiBzZWxmLnByaW50PyBsb2MKICAgICAgcmVxID0gcmVxdWVzdG9yKDMpIAogICAgICBy ZXR1cm4gZmFsc2UgaWYgKHJlcS5zdGFydF93aXRoPyBRMTc1OjpTdGRsaWIpCiAgICAgIHBhdGgg PSBnZW1wYXRoIHJlcQogICAgICByZXR1cm4gZmFsc2UgaWYgcGF0aCAmJiAobG9jLnN0YXJ0X3dp dGg/IHBhdGgpCiAgICAgIHRydWUKICAgIGVuZAoKICAgIExvYWQgPSBLZXJuZWwuaW5zdGFuY2Vf bWV0aG9kIDpsb2FkCiAgICBSZXF1aXJlID0gS2VybmVsLmluc3RhbmNlX21ldGhvZCA6cmVxdWly ZQogICAgU3RkbGliID0gQ29uZmlnOjpDT05GSUdbJ3J1YnlsaWJkaXInXQogICAgR2VtX1JlcXVp cmUgPSBDb25maWc6OkNPTkZJR1sncnVieWxpYmRpciddICsgRmlsZTo6U2VwYXJhdG9yICsgInJ1 YnlnZW1zIiArIEZpbGU6OlNlcGFyYXRvciArICJjdXN0b21fcmVxdWlyZS5yYiIKCiAgZW5kCgog IHVuZGVmX21ldGhvZCA6bG9hZAogIGRlZiBsb2FkIGZpbGUsIHdyYXA9ZmFsc2UKICAgIGxvYyA9 IFExNzU6OnNjYW4gZmlsZQogICAgcmVzID0gUTE3NTo6TG9hZC5iaW5kKHNlbGYpLmNhbGwgZmls ZSwgd3JhcAogICAgU1RERVJSLnB1dHMgImxvYWQ6ICN7UTE3NTo6cmVxdWVzdG9yfTogI3tmaWxl fSA9PiAje2xvY30iIGlmIHJlcyAmJiBsb2MgJiYgKFExNzU6OnByaW50PyBsb2MpCiAgICByZXMK ICBlbmQKCiAgdW5kZWZfbWV0aG9kIDpyZXF1aXJlCiAgZGVmIHJlcXVpcmUgZmlsZQogICAgbG9j ID0gUTE3NTo6c2NhbiBmaWxlCiAgICByZXMgPSBRMTc1OjpSZXF1aXJlLmJpbmQoc2VsZikuY2Fs bCBmaWxlCiAgICBTVERFUlIucHV0cyAicmVxdWlyZTogI3tRMTc1OjpyZXF1ZXN0b3J9OiAje2Zp bGV9ID0+ICN7bG9jfSIgaWYgcmVzICYmIGxvYyAmJiAoUTE3NTo6cHJpbnQ/IGxvYykKICAgIHJl cwogIGVuZAoKZW5kCgplbmQKCmlmICQwID09IF9fRklMRV9fCiAgQVJHVi5lYWNoe3xuYW1lfCBw dXRzICJyZXF1aXJlOiAje25hbWV9ID0+ICN7S2VybmVsOjpRMTc1OjpzY2FuIG5hbWV9IiB9CmVu ZAo------ art_29766_23808467.1220478358862--