Project

resquire

0.0
No commit activity in last 3 years
No release in over 3 years
Reduce your redundant gem depenencies with resquire, which figures out which gems are redundant so you can require less gems for your ruby projects while still retaining the same functionality! By reducing redundant gems, you can make your application faster!
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.13
~> 10.0
~> 3.0

Runtime

 Project Readme

Resquire

Reduce your redundant gem depenencies with resquire, which figures out which gems are redundant so you can require less gems for your ruby projects while still retaining the same functionality! By reducing redundant gems, you can make your application faster!

David I of Scotland knighting a squire

Installation

While this gem is still in development, but when it's all done you'll be able to install it like so:

$ gem install resquire

Usage

require "resquire"

# you can add gems when you create a new analyzer, as an array
analyzer = Resquire::Analyzer.new(:gems => ['colorize', 'packetfu', 'lolize'])

# you can also add gems individually
analyzer.add_gem('pcaprub')
# => true

# or as an array
analyzer.add_gems(['ipaddr', 'socket', 'thread'])
# => true

# we can check which gems the analyzer has to work with
analyzer.gems
# => ["colorize", "packetfu", "lolize", "pcaprub", "ipaddr", "socket", "thread"]

# quickly check ammount of permutations ( to see wtf we're about to get outselves into )
# no, srsly, like, you can easily have 20 gems; and that's 2,432,902,008,176,640,000 permutations dog, fo real 
# you can try splitting them up into smaller batches of roughly ~13
analyzer.permutations
# => 5040

# you can get an array of the redundant gems
analyzer.redundant_gems
# => ["pcaprub", "ipaddr", "socket", "thread"]

# you can choose not to shuffle the permutated array, may be better for larger gem groups
# since we're not pre-generating the permutations -- we're simply looping through the
# possibilities via an enumerator.
# true by default, since I find it to be generally nicer
analyzer.redundant_gems(:shuffle => false) 
# => ["pcaprub", "ipaddr", "socket", "thread"]

# you can also choose to to display a small progresss indicator or not
# true by default, since I find it to be generally faster
analyzer.redundant_gems(:progress_bar => false) 
# => ["pcaprub", "ipaddr", "socket", "thread"]

# or the new optimized gem listing as an array with the redundancies
# these would be the gems you'd want to require in your application now
analyzer.optimized_gems
# => ["colorize", "lolize", "packetfu"]

License

The gem is available as open source under the terms of the MIT License.