8000 GitHub - renan-garcia/gem_sorter: Sort gems in the Gemfile alphabetically
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

renan-garcia/gem_sorter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GemSorter Logo

Gem Version

GemSorter

GemSorter is a simple gem to sort the contents of your Gemfile alphabetically while preserving comments and group structure. It helps maintain a clean and organized Gemfile.

Features

  • Sorts gems alphabetically.
  • Preserves comments and their association with gems.
  • Maintains group structure in the Gemfile.
  • Optionally creates a backup of the original Gemfile.
  • Update the comments of the gems based on their descriptions.
  • Optionally converts single quotes to double quotes in gem declarations.
  • Optionally removes version constraints from gems while preserving other parameters.

Installation

Add the gem to your project's Gemfile:

gem "gem_sorter"

or install it globally:

gem install gem_sorter

Usage

Once installed, you can use the provided Rake task to sort your Gemfile:

rake gemfile:sort

You can also run the gem_sorter globally, without needing to add it to your Gemfile:

rake -r gem_sorter gemfile:sort

Options

  • backup: Pass true to create a backup of your Gemfile as Gemfile.old before sorting.
  • update_comments: Pass true to update the comments of the gems based on their descriptions.
  • update_versions: Pass true to update the versions of the gems based on the lockfile.
  • use_double_quotes: Pass true to convert single quotes to double quotes in gem declarations.
  • remove_versions: Pass true to remove version constraints from gems while preserving other parameters like require or platforms. This option takes precedence over update_versions if both are enabled.

Example:

rake gemfile:sort[true,true,true,true,true]

This will sort your Gemfile, create a backup, update comments and versions, convert single quotes to double quotes, and remove version constraints.

Options File

Create a file in the root of your project called gem_sorter.yml

  • backup: Pass true to create a backup of your Gemfile as Gemfile.old before sorting.
  • update_comments: Pass true to update the comments of the gems based on their descriptions.
  • update_versions: Pass true to update the versions of the gems based on the lockfile.
  • use_double_quotes: Pass true to convert single quotes to double quotes in gem declarations.
  • remove_versions: Pass true to remove version constraints from gems while preserving other parameters like require or platforms. This option takes precedence over update_versions if both are enabled.
  • ignore_gems: Pass an array of GEMs you want to ignore versions and comments
  • ignore_gem_versions: Pass an array of GEMs you want to ignore versions
  • ignore_gem_comments: Pass an array of GEMs you want to ignore comments

Example:

backup: true
update_comments: true
update_versions: false
use_double_quotes: true
remove_versions: true
ignore_gems:
  - byebug
  - discard
ignore_gem_versions:
  - rspec
ignore_gem_comments:
  - otpor

This will sort your Gemfile, create a backup, update comments, remove version constraints, and ignore specific gems for different operations.

Example

Input Gemfile

source "https://rubygems.org"

# Framework
gem "rails"
gem "puma", "~> 5.3"
gem "thruster", "~> 0.1.13", require: false
gem "countries", "~> 7.1", ">= 7.1.1"
gem "tzinfo-data", platforms: %i[ windows jruby ]

group :development do
  gem "dotenv-rails"
  gem "pry"
end

Output Gemfile

source "https://rubygems.org"

# A Ruby/Rack web server built for parallelism.
gem "puma", "~> 5.3"
# Full-stack web application framework.
gem "rails", "~> 8.0", ">= 8.0.1"
gem "thruster", "~> 0.1.13", require: false
gem "countries", "~> 7.1", ">= 7.1.1"
gem "tzinfo-data", platforms: %i[ windows jruby ]

group :development do
  # Autoload dotenv in Rails.
  gem "dotenv-rails", "~> 3.1", ">= 3.1.7"
  # A runtime developer console and IRB alternative with powerful introspection capabilities.
  gem "pry"
end

Output Gemfile (with remove_versions: true)

source "https://rubygems.org"

# A Ruby/Rack web server built for parallelism.
gem "puma"
# Full-stack web application framework.
gem "rails"
gem "thruster", require: false
gem "countries"
gem "tzinfo-data", platforms: %i[ windows jruby ]

group :development do
  # Autoload dotenv in Rails.
  gem "dotenv-rails"
  # A runtime developer console and IRB alternative with powerful introspection capabilities.
  gem "pry"
end

Development

To contribute to this project:

  1. Clone the repository:
    git clone https://github.com/renan-garcia/gem_sorter.git
  2. Navigate to the project directory:
    cd gem_sorter
  3. Install dependencies:
    bundle install
  4. Run the tests:
    rspec

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository.
  2. Create a feature branch:
    git checkout -b feature/my-new-feature
  3. Commit your changes:
    git commit -m "Add a new feature"
  4. Push to the branch:
    git push origin feature/my-new-feature
  5. Open a pull request.

Acknowledgments

Special thanks to the Ruby community for their guidance and support!

About

Sort gems in the Gemfile alphabetically

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0