Skip to main content

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

Installation

In a virtualenv, use the command:

pip install gemfileparser

Otherwise from a git clone, use the following commands in a virtualenv:

git clone https://github.com/gemfileparser/gemfileparser.git
cd gemfileparser
    python setup.py install

Usage

from gemfileparser 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 gemfileparser 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

License

gemfileparser 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 gemfileparser you agree to license these contributions under the same choice of licenses.

Release files for gemfileparser 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gemfileparser 0.8.0
File Size Uploaded
gemfileparser-0.8.0.tar.gz 25.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gemfileparser 0.8.0
File Interpreter ABI Platform
gemfileparser-0.8.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 44.7 kB

Release files / gemfileparser-0.8.0.tar.gz

Download URL gemfileparser-0.8.0.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
839592e49ea3fd985cec003ef58f8e77009a69ed7644a0c0acc94cf6dd9b8d6e
BLAKE2b-256 checksum
How to use checksums
085f7277029065a98d7eef536e138a49edb4f551038e4d0ebc312bcf06ea086d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.6.10

Release files / gemfileparser-0.8.0-py2.py3-none-any.whl

Download URL gemfileparser-0.8.0-py2.py3-none-any.whl
Size 19.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
aed669b729c1f850308d1c373fe425d0c1ce768fa5bdac593e05715c64e2bffc
BLAKE2b-256 checksum
How to use checksums
edb5c3f4d21e121a65172f43b08b2699e469e3853455b5def48097f40164bb44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.6.10

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.6.2

1 release file

0.6.1

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page