{"id":17942632,"url":"https://github.com/petercamilleri/vls","last_synced_at":"2025-09-13T01:44:29.315Z","repository":{"id":56897576,"uuid":"58405377","full_name":"PeterCamilleri/vls","owner":"PeterCamilleri","description":"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.","archived":false,"fork":false,"pushed_at":"2021-05-19T19:51:35.000Z","size":34,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-08T23:36:44.096Z","etag":null,"topics":["ruby","rubygem","version-check"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PeterCamilleri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-09T20:19:03.000Z","updated_at":"2023-03-05T04:20:46.000Z","dependencies_parsed_at":"2022-08-21T02:20:22.364Z","dependency_job_id":null,"html_url":"https://github.com/PeterCamilleri/vls","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/PeterCamilleri/vls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterCamilleri%2Fvls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterCamilleri%2Fvls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterCamilleri%2Fvls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterCamilleri%2Fvls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PeterCamilleri","download_url":"https://codeload.github.com/PeterCamilleri/vls/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterCamilleri%2Fvls/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263157324,"owners_count":23422596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ruby","rubygem","version-check"],"created_at":"2024-10-29T03:06:32.292Z","updated_at":"2025-07-02T14:36:12.323Z","avatar_url":"https://github.com/PeterCamilleri.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VersionLS\n\nA utility for producing a list of classes/modules with version info, that are\npresent in an application, gem, or ruby program file.\n\n## Installation\n\nThe vls gem is normally used as a stand-alone utility. However, its\nfunctionality may be added to any Ruby application. To do so you can add this\nline to your application's Gemfile:\n\n```ruby\ngem 'vls'\n```\n\nAnd then execute:\n\n    $ bundle\n\nFar more likely however, install it yourself as:\n\n    $ gem install vls\n\nThe vls gem itself is found at: ( https://rubygems.org/gems/vls )\n\n## Usage\n\nThe vls utility is normally used at the command line. The usage template\nis:\n\n    vls (VersionLS): 0.3.6\n\n    A command line utility that lists the versions of modules used by the specified\n    gems/ruby files.\n\n    Usage: $ vls \u003coptions\u003e \u003cnames\u003e\n\n    \u003coptions\u003e\n      --filter, -f \u003cs/r\u003e = Filter results by string or regular expression.\n      --help, -h, -?     = Display this text and exit.\n      --raw,  -r         = Display results with no header text.\n\n    \u003cnames\u003e are gems/files to be required before modules are listed.\n\n    Note:\n     To specify a file instead of a gem, a '.rb' extension is required.\n\nFor example:\n\n    $ vls rails\n    vls (VersionLS): 0.3.6\n\n    ActionPack, 4.2.6\n    ActiveSupport, 4.2.6\n    ActiveSupport::Logger, 1.2.7\n    Gem, 2.2.2\n    I18n, 0.7.0\n    JSON, 1.8.3\n    Logger, 1.2.7\n    OpenSSL, 1.1.0\n    Psych, 2.0.5\n    Rack, [1, 3]\n    Rails, 4.2.6\n    ThreadSafe, 0.3.5\n\nIn order to use relative paths instead of the gem search path, the .rb extension\nneeds to be specified on the target file.\n\n    $ vls ruby_sscanf.rb\n    vls (VersionLS): 0.3.6\n\n    FormatEngine, 0.7.2\n    Gem, 2.2.2\n    RubySscanf, 0.2.3\n\nThe vls utility is also available for use within an application. It may be\naccessed with:\n```ruby\nmodule_version_list = VersionLS.vls(filter=/./)\n```\nThis returns an array of entries, sorted by module name, consisting of an\narray with the module and a string with its version. Also, the Object class\nis monkey patched with the vls method that outputs the information to the\nconsole.\n\n```ruby\nvls(filter=/./)\n```\n\nNote that these methods do not accept a list of modules to be required. It\nis assumed that when embedded within an application, the needed facilities\nwould have already been loaded. In addition, the vls listing to the console\nhas no header information. If this is desired, the application should do a\nputs of the appropriate descriptive text.\n\nBoth of these methods _do_ take an optional filter string or regular expression.\n\n## The Rails Console\n\nIf the vls gem has been added to a rails project (in its Gemfile), its\nfunctionality is also easily accessed via the rails console:\n\n    $ rails console\n\nfollowed by\n\n```ruby\nvls\n```\n\nwill create a formatted listing of the modules with version info of the module\nload out of the web site. For example:\n\n    $ rails console\n    Loading development environment (Rails 4.2.6)\n    irb(main):001:0\u003e vls\n    ActionDispatch::Journey::Router, 2.0.0\n    ActionMailer, 4.2.6\n    ActionPack, 4.2.6\n    ActionView, 4.2.6\n    ActiveJob, 4.2.6\n    ActiveModel, 4.2.6\n    ActiveRecord, 4.2.6\n    ActiveSupport, 4.2.6\n    ActiveSupport::Logger, 1.2.7\n    Arel, 6.0.3\n    Bundler, 1.11.2\n    Coffee::Rails, 4.1.1\n    Concurrent, 1.0.1\n    Erubis, 2.7.0\n    ExecJS, 2.6.0\n    Gem, 2.2.2\n    I18n, 0.7.0\n    IRB::ReadlineInputMethod, 5.2\n    JSON, 1.8.3\n    Jquery::Rails, 4.1.1\n    Logger, 1.2.7\n    Loofah, 2.0.3\n    MIME::Type, 2.99.1\n    MIME::Types, 2.99.1\n    MIME::Types::WarnLogger, 1.2.7\n    Mail, 2.6.3\n    MultiJson, 1.11.2\n    Nokogiri, 1.6.7.2\n    OpenSSL, 1.1.0\n    PG, 0.18.4\n    Psych, 2.0.5\n    Rack, 1.3\n    Rack::Test, 0.6.3\n    Rails, 4.2.6\n    Rails::Html::FullSanitizer, 1.0.3\n    Rails::Html::LinkSanitizer, 1.0.3\n    Rails::Html::Sanitizer, 1.0.3\n    Rails::Html::WhiteListSanitizer, 1.0.3\n    Readline, 5.2\n    Sass, 3.4.21 (Selective Steve)\n    Sass::Rails, 5.0.4\n    Sprockets, 3.5.2\n    Sprockets::Cache, 3.0\n    Sprockets::ClosureCompressor, 1\n    Sprockets::CoffeeScriptProcessor, 1\n    Sprockets::DirectiveProcessor, 1\n    Sprockets::EcoProcessor, 1\n    Sprockets::EjsProcessor, 1\n    Sprockets::Rails, 3.0.4\n    Sprockets::SassCompressor, 1\n    Sprockets::UglifierCompressor, 1\n    Sprockets::YUICompressor, 1\n    TZInfo::Data, 1.2016.2\n    ThreadSafe, 0.3.5\n    Tilt, 2.0.2\n    Turbolinks, 2.5.3\n    URI, 0.9.11\n    URI::FTP, 0.9.11\n    URI::GID, 0.9.11\n    URI::Generic, 0.9.11\n    URI::HTTP, 0.9.11\n    URI::HTTPS, 0.9.11\n    URI::LDAP, 0.9.11\n    URI::LDAPS, 0.9.11\n    URI::MailTo, 0.9.11\n    Uglifier, 2.7.2\n    Zlib, 0.6.0\n    =\u003e nil\n    irb(main):002:0\u003e\n\nOf course, filtering is available at this level too:\n\n    irb(main):003:0\u003e vls 'Rails'\n    Coffee::Rails, 4.1.1\n    Jquery::Rails, 4.1.1\n    Rails, 4.2.6\n    Rails::Html::FullSanitizer, 1.0.3\n    Rails::Html::LinkSanitizer, 1.0.3\n    Rails::Html::Sanitizer, 1.0.3\n    Rails::Html::WhiteListSanitizer, 1.0.3\n    Sass::Rails, 5.0.4\n    Sprockets::Rails, 3.0.4\n\n## Usage in Rails Views\n\nIt is also possible to incorporate vls data into a view using the VersionLS.vls\nmethod in a controller and passing the resultant array of data to a view for\nrendering in a web page. This may be useful for a diagnostic or informational\npage in a web site. However, a detailed examination of this task is beyond the\nscope of this document and readers are advised to consult Ruby on Rails\ntutorials for more information.\n\n## Contributing\n\n#### Plan A\n\n1. Fork it ( https://github.com/PeterCamilleri/vls/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\n#### Plan B\n\nGo to the GitHub repository and raise an issue calling attention to some\naspect that could use some TLC or a suggestion or an idea.\n\n## License\n\nThe gem is available as open source under the terms of the\n[MIT License](./LICENSE.txt).\n\n## Code of Conduct\n\nEveryone interacting in the fully_freeze project’s codebases, issue trackers,\nchat rooms and mailing lists is expected to follow the\n[code of conduct](./CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetercamilleri%2Fvls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetercamilleri%2Fvls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetercamilleri%2Fvls/lists"}