Want to parse a Gemfile? This finely does it. How you may ask? This file replicates the entire Gemfile functions (aka source
, gem
and group
) and then executes the Gemfile in Ruby.
As it executes the Gemfile
, it can potentially contain malicious Ruby code. This could import your project and perform commands and I would recommend executing it in a safe/sandbox environment. An example would be through an external server and use an API. This way it is very easy to replicate your software and it is totally harmless.
<3 Have fun.
Example Gemfile:
source 'http://rubygems.org'
gem 'rake'
gem 'rails'
group :assets do
gem 'jquery-rails', '1.2.3'
end
Returned value (as a Ruby Hash aka Hash.new
):
{
sources: [
#<RubyGemSource:0x000000000000 @url="http://rubygems.org">
],
gems: [
#<RubyGem:0x000000000000 @name="rake" @rubygems_url="http://rubygems.org/gems/rake" @version=nil @group=nil>,
#<RubyGem:0x000000000000 @name="rails" @rubygems_url="http://rubygems.org/gems/rails" @version=nil @group=nil>,
#<RubyGem:0x000000000000 @name="jquery-rails" @rubygems_url="http://rubygems.org/gems/jquery-rails" @version="1.2.3" @group="assets">
]
}