Rails Core Extensions

Build Status Coverage Status Code Climate

DESCRIPTION

Extends the core rails classes with helpful functions

INSTALLATION

Add to your Gemfile: gem 'rails_core_extensions'

This gems contains many extensions including a sort extension:

Sortable

This allows you to sort an entire collection by setting the new position of an item and all other items will reorganise as needed.

app/controllers/types_controller.rb
class TypesController < ActionController::Base
  sortable
end

config/routes.rb

In Rails 6:
resources :types do
  collection
    post :sort
  end
end

You need to submit a collection of objects named the same as the controller.

e.g. for the above the params should be:

types_body[]=1
types_body[]=3

Where the value is the id, and the position of submission is the new order, e.g. In the above, the item of id 3 will be updated to position 2

If you have scoped sorts, e.g. sorts within categories you also need to pass in 2 params:

  • scope (e.g. category_id)
  • a variable by that name, e.g. category_id

So in the above if you want to upgrade category_id 6, you could submit scope=category_id&category_id=6

along with type_body[]=7.. for all the types in category 6

RELEASE

To publish a new version of this gem the following steps must be taken.

  • Update the version in the following files CHANGELOG.md lib/rails_core_extensions/version.rb
  • Create a tag using the format v0.1.0
  • Follow build progress in GitHub actions