Sha256: b5011e6c6ed8ad39e2d600829a62002dd67e05d463c070cfbee71b97fb3396d7

Contents?: true

Size: 580 Bytes

Versions: 14

Compression:

Stored size: 580 Bytes

Contents

#
# Enumerate files with "extension" in directories called "path" anywhere in the Ruby LOAD_PATH
#
class Loadable
  def initialize path = "", extension = '.rb'
    @path = path
    @extension = extension
  end

  def enumerate
    $LOAD_PATH.
    flat_map do |dir|
      dir_path = (dir+"/"+@path).gsub(%r{//+}, '/')
      pattern = dir_path+"/**/*"+@extension
      Dir[pattern].
      map do |p|
        p.
        sub(%r{#{Regexp.escape(dir_path)}/}, '').
        sub(%r{#{@extension}}, '')
      end
    end

  end
end

if __FILE__ == $0
  p Loadable.new(*ARGV).enumerate
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
activefacts-compositions-1.9.23 lib/activefacts/loadable.rb
activefacts-compositions-1.9.22 lib/activefacts/loadable.rb
activefacts-compositions-1.9.21 lib/activefacts/loadable.rb
activefacts-compositions-1.9.20 lib/activefacts/loadable.rb
activefacts-compositions-1.9.19 lib/activefacts/loadable.rb
activefacts-compositions-1.9.18 lib/activefacts/loadable.rb
activefacts-compositions-1.9.17 lib/activefacts/loadable.rb
activefacts-compositions-1.9.16 lib/activefacts/loadable.rb
activefacts-compositions-1.9.15 lib/activefacts/loadable.rb
activefacts-compositions-1.9.14 lib/activefacts/loadable.rb
activefacts-compositions-1.9.13 lib/activefacts/loadable.rb
activefacts-compositions-1.9.12 lib/activefacts/loadable.rb
activefacts-compositions-1.9.10 lib/activefacts/loadable.rb
activefacts-compositions-1.9.9 lib/activefacts/loadable.rb