
Security News
Follow-up and Clarification on Recent Malicious Ruby Gems Campaign
A clarification on our recent research investigating 60 malicious Ruby gems.
Homepage /
Report Issue /
Source Code
( )
Finder is a straight-forward file finder for searching Ruby library paths. It can handle RubyGems, Rolls and Ruby's standard site locals. It is both more flexible and more robust the using Gem.find_files or searching the $LOAD_PATH manually.
To find paths, simply provide a glob to the appropriate Finder function, and it will return all matches found within current or most recent versions of a library.
For example, a common use case for plug-in enabled application is to require all the files found in library load paths:
require 'finder'
Find.feature('myapp/*').each do |file|
require(file)
end
This is basically equivalent to:
Find.load_path('myapp/*.rb', :relative=>true).each do |file|
require(file)
end
Alternately you might load files only as needed. For instance, if a command-line option calls for it.
In addition Finder has two optional Kernel extensions: #import
and #import_relative
. These methods can be used like #require
and #require_relative
, but load code directory into the
current scope instead of the toplevel.
require 'finder/import'
module My
import('abbrev.rb')
emd
My::Abbrev::abbrev(['ruby'])
=> {"rub"=>"ruby", "ru"=>"ruby", "r"=>"ruby", "ruby"=>"ruby"}
It is important to be careful when using #import
to make sure loaded
scripts behave as intended. For example, if abbrev.rb
were to define
itself using ::
toplevel namespace indicators, i.e. ::Abbrev
, then
the above import would not work as demonstrated.
Finder is copyrighted opensource software.
Copyright (c) 2009 Rubyworks
It can be modified and redistributed in accordance with the terms of the BSD-2-Clause license.
See LICENSE.txt file for details.
FAQs
Unknown package
We found that finder demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.
Research
/Security News
A malicious Go module posing as an SSH brute forcer exfiltrates stolen credentials to a Telegram bot controlled by a Russian-speaking threat actor.