Skip to content

nexB/gemfileparser2

 
 

Repository files navigation

gemfileparser2

gemfileparser2 parses Ruby Gemfile using Python with supports Ruby Gemfiles and .gemspec files as well as Cocoapod .podspec files.

This is a maintained fork of https://github.com/gemfileparser/gemfileparser that is no longer active (even though it was maintained by the same folks)

Installation

In a virtualenv, use the command:

pip install gemfileparser2

Usage

from gemfileparser2 import GemfileParser
parser = GemfileParser(<path to Gemfile>, <name of the application (optional)>)
dependency_dictionary = parser.parse()

The parse() method returns a dict object of the following format:

{
    'development': [list of dependency objects inside group 'development'],
    'runtime': [list of runtime dependency objects],
    .
    .
}

Each dependency object contains the following attributes:

  • name - Name of the gem
  • requirement - Version requirement
  • autorequire - Autorequire value
  • source - Source URL of the gem
  • parent - Dependency of which gem
  • group - Group that a gem is a member of (default : runtime)

Example

from gemfileparser2 import GemfileParser
n = GemfileParser('Gemfile', 'diaspora')
deps = n.parse()
for key in deps:
   if deps[key]:
       print key
       for dependency in deps[key]:
           print("\t", dependency)

Tests

Do this to run tests:

pip install -e .
pip install pytest
pytest -vvs tests
  • Copyright (c) 2020 Gemfileparser authors (listed in AUTHORS file)
  • Copyright (c) 2015-2018 Balasankar C <balasankarc@autistici.org>

License

gemfileparser2 is dual-licensed under your choice of the GNU GPL version 3 (or later) License or the MIT License.

It is preferred anyone using this project to respect the GPL-3+ license and use that itself for derivative works - thus making them also Free Software. But, your call.

When making contributions to gemfileparser2 you agree to license these contributions under the same choice of licenses.

Languages

  • Python 83.5%
  • Ruby 6.4%
  • Shell 5.1%
  • Batchfile 4.1%
  • Makefile 0.9%