Ways to evaluate a gem

Experienced coders shared their thoughts about finding the perfect gem
21 June 2017   2562

Sometimes every coder faces with hard-solving issues. One “little” problem can provide you with headache and sleepless nights, spent on forums and web, searching for a solution. When you face a problem or difficulty, try to “look around”. There is a big chance that someone had already found a solution and you don’t have to “invent the wheel” again.

Ruby

A dynamic, open source programming language with a focus on simplicity and productivity.

Ruby on Rails

Ruby on Rails (RoR) - a framework written in the Ruby programming language.

Luckily, Ruby and RoR has a strong, friendly and open community. There is large amount of ready-made gems, so, there is high probability to find the right one.

We’ve collected a list of advises from skilled developers, how to choose a right gem.

  1. Look through Readme file and try to understand what is written there. Joking aside, it’s really hard sometimes.
  2. Look at the number of stars and watches. Big and active community keeps project healthy. Large amount of users means that finding help will be much easier. Also, a collective mind is a great guide. But it is not smart to consider only this criterion.
  3. Date of last update shows how active the project is. But regular updates for simple code aren’t necessary, so, this criterion isn’t the main.
  4. Take a good look on project’s issues. Check, is it filled with bug reports or new add-ons, are there any active discussions, are they structured. Also, don't forget to check how many pull requests are closed.
  5. Look thru the forum posts and bug tickets of a specific gem do decide, are the maintainers act helpful? You have to decide, can you count on them if any big issues arise.
  6. Take a good look at the number dependencies. A “simple” gem can have a large number of dependencies. You should decide if you are able to put all of them into your project. Also, note that there's a risk of version conflict.
  7. Don' forget to look at official documentation. It is necessary for every serious project. Also, it has to be understandable and contain “real-life” examples.
  8. Check the code. Are you able to understand it? If something goes wrong, maybe you will have to rewrite some parts of it by yourself. And it's better for you to be able to do it.

Ruby/RoR News Digest 12 - 18.10

Linux file locking mechanisms in Ruby, delete_by and destroy_by in Rails, Shrine v. 3.0 release and othe updates of this week in Ruby
18 October 2019   151

Greetings! I hope your week went great! Here's new "gemmy" programming news digest.

In this digest you will learn how to debug hidden memory leaks in Ruby, get familiar with hashes and Array#intensection method in Ruby 2.7

Guides

  • Debugging Hidden Memory Leaks in Ruby

A tutorial on finding the big memory leak in new Rails 6 with heaptrack, mwrap, chap and iseq_collector.

  • Let's Hash This Out 

A guide about hashes usage, and why author loves Hash more than HashWithIndifferentAccess

  • Exploring Linux File Locking Mechanisms in Ruby

Guide about using file locking mechanins on Linux in Ruby.

Articles

  • Ruby 2.7 Introduces a Array#intersection method 

Ruby 2.7 added new method called intersection which is enlighten in this article

  • Rails 6 adds delete_by and destroy_by methods

Detailed view on the methods, which deletes or destroys all the records that match the passed conditions

Updates

  • Shrine 3.0

3rd major update of gem, designed to manage file attachments that supports resumable uploads and can work with Rails and standard Rack apps brings more "friedship" to non-Active record frameworks

  • Humanize

Makes your numbers look "fancy", or, in other words, turns it from 10 to "ten"

  • Piperator

It's a composable pipelines for enumerators, encouraged by Elixir’s pipe operator and Node.js streams.

  • Active Merchant

Regulary updated gem, a simple payment abstraction library for the Shopify

  • Xcodeproj

With its help, macOS/iOS developers can script away boring management tasks and/or auto generate projects