https://github.com/petercamilleri/vls
The version ls utility; List the modules of a gem/application with version info. Useful for determining application composition. Great debug tool in rails console.
https://github.com/petercamilleri/vls
ruby rubygem version-check
Last synced: 4 months ago
JSON representation
The version ls utility; List the modules of a gem/application with version info. Useful for determining application composition. Great debug tool in rails console.
- Host: GitHub
- URL: https://github.com/petercamilleri/vls
- Owner: PeterCamilleri
- License: mit
- Created: 2016-05-09T20:19:03.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-05-19T19:51:35.000Z (over 4 years ago)
- Last Synced: 2025-06-08T23:36:44.096Z (7 months ago)
- Topics: ruby, rubygem, version-check
- Language: Ruby
- Homepage:
- Size: 33.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# VersionLS
A utility for producing a list of classes/modules with version info, that are
present in an application, gem, or ruby program file.
## Installation
The vls gem is normally used as a stand-alone utility. However, its
functionality may be added to any Ruby application. To do so you can add this
line to your application's Gemfile:
```ruby
gem 'vls'
```
And then execute:
$ bundle
Far more likely however, install it yourself as:
$ gem install vls
The vls gem itself is found at: ( https://rubygems.org/gems/vls )
## Usage
The vls utility is normally used at the command line. The usage template
is:
vls (VersionLS): 0.3.6
A command line utility that lists the versions of modules used by the specified
gems/ruby files.
Usage: $ vls
--filter, -f = Filter results by string or regular expression.
--help, -h, -? = Display this text and exit.
--raw, -r = Display results with no header text.
are gems/files to be required before modules are listed.
Note:
To specify a file instead of a gem, a '.rb' extension is required.
For example:
$ vls rails
vls (VersionLS): 0.3.6
ActionPack, 4.2.6
ActiveSupport, 4.2.6
ActiveSupport::Logger, 1.2.7
Gem, 2.2.2
I18n, 0.7.0
JSON, 1.8.3
Logger, 1.2.7
OpenSSL, 1.1.0
Psych, 2.0.5
Rack, [1, 3]
Rails, 4.2.6
ThreadSafe, 0.3.5
In order to use relative paths instead of the gem search path, the .rb extension
needs to be specified on the target file.
$ vls ruby_sscanf.rb
vls (VersionLS): 0.3.6
FormatEngine, 0.7.2
Gem, 2.2.2
RubySscanf, 0.2.3
The vls utility is also available for use within an application. It may be
accessed with:
```ruby
module_version_list = VersionLS.vls(filter=/./)
```
This returns an array of entries, sorted by module name, consisting of an
array with the module and a string with its version. Also, the Object class
is monkey patched with the vls method that outputs the information to the
console.
```ruby
vls(filter=/./)
```
Note that these methods do not accept a list of modules to be required. It
is assumed that when embedded within an application, the needed facilities
would have already been loaded. In addition, the vls listing to the console
has no header information. If this is desired, the application should do a
puts of the appropriate descriptive text.
Both of these methods _do_ take an optional filter string or regular expression.
## The Rails Console
If the vls gem has been added to a rails project (in its Gemfile), its
functionality is also easily accessed via the rails console:
$ rails console
followed by
```ruby
vls
```
will create a formatted listing of the modules with version info of the module
load out of the web site. For example:
$ rails console
Loading development environment (Rails 4.2.6)
irb(main):001:0> vls
ActionDispatch::Journey::Router, 2.0.0
ActionMailer, 4.2.6
ActionPack, 4.2.6
ActionView, 4.2.6
ActiveJob, 4.2.6
ActiveModel, 4.2.6
ActiveRecord, 4.2.6
ActiveSupport, 4.2.6
ActiveSupport::Logger, 1.2.7
Arel, 6.0.3
Bundler, 1.11.2
Coffee::Rails, 4.1.1
Concurrent, 1.0.1
Erubis, 2.7.0
ExecJS, 2.6.0
Gem, 2.2.2
I18n, 0.7.0
IRB::ReadlineInputMethod, 5.2
JSON, 1.8.3
Jquery::Rails, 4.1.1
Logger, 1.2.7
Loofah, 2.0.3
MIME::Type, 2.99.1
MIME::Types, 2.99.1
MIME::Types::WarnLogger, 1.2.7
Mail, 2.6.3
MultiJson, 1.11.2
Nokogiri, 1.6.7.2
OpenSSL, 1.1.0
PG, 0.18.4
Psych, 2.0.5
Rack, 1.3
Rack::Test, 0.6.3
Rails, 4.2.6
Rails::Html::FullSanitizer, 1.0.3
Rails::Html::LinkSanitizer, 1.0.3
Rails::Html::Sanitizer, 1.0.3
Rails::Html::WhiteListSanitizer, 1.0.3
Readline, 5.2
Sass, 3.4.21 (Selective Steve)
Sass::Rails, 5.0.4
Sprockets, 3.5.2
Sprockets::Cache, 3.0
Sprockets::ClosureCompressor, 1
Sprockets::CoffeeScriptProcessor, 1
Sprockets::DirectiveProcessor, 1
Sprockets::EcoProcessor, 1
Sprockets::EjsProcessor, 1
Sprockets::Rails, 3.0.4
Sprockets::SassCompressor, 1
Sprockets::UglifierCompressor, 1
Sprockets::YUICompressor, 1
TZInfo::Data, 1.2016.2
ThreadSafe, 0.3.5
Tilt, 2.0.2
Turbolinks, 2.5.3
URI, 0.9.11
URI::FTP, 0.9.11
URI::GID, 0.9.11
URI::Generic, 0.9.11
URI::HTTP, 0.9.11
URI::HTTPS, 0.9.11
URI::LDAP, 0.9.11
URI::LDAPS, 0.9.11
URI::MailTo, 0.9.11
Uglifier, 2.7.2
Zlib, 0.6.0
=> nil
irb(main):002:0>
Of course, filtering is available at this level too:
irb(main):003:0> vls 'Rails'
Coffee::Rails, 4.1.1
Jquery::Rails, 4.1.1
Rails, 4.2.6
Rails::Html::FullSanitizer, 1.0.3
Rails::Html::LinkSanitizer, 1.0.3
Rails::Html::Sanitizer, 1.0.3
Rails::Html::WhiteListSanitizer, 1.0.3
Sass::Rails, 5.0.4
Sprockets::Rails, 3.0.4
## Usage in Rails Views
It is also possible to incorporate vls data into a view using the VersionLS.vls
method in a controller and passing the resultant array of data to a view for
rendering in a web page. This may be useful for a diagnostic or informational
page in a web site. However, a detailed examination of this task is beyond the
scope of this document and readers are advised to consult Ruby on Rails
tutorials for more information.
## Contributing
#### Plan A
1. Fork it ( https://github.com/PeterCamilleri/vls/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request
#### Plan B
Go to the GitHub repository and raise an issue calling attention to some
aspect that could use some TLC or a suggestion or an idea.
## License
The gem is available as open source under the terms of the
[MIT License](./LICENSE.txt).
## Code of Conduct
Everyone interacting in the fully_freeze project’s codebases, issue trackers,
chat rooms and mailing lists is expected to follow the
[code of conduct](./CODE_OF_CONDUCT.md).