---
title: "Ruby Blogs"
description: "BigBinary blog posts in the Ruby category."
canonical_url: "https://www.bigbinary.com/blog/categories/ruby"
markdown_url: "https://www.bigbinary.com/blog/categories/ruby.md"
---

# Ruby Blogs

BigBinary blog posts in the Ruby category.

## Posts

### Debugging a Stack Overflow in Rails 7.2.1.1

[Debugging a Stack Overflow in Rails 7.2.1.1](https://www.bigbinary.com/blog/debugging-stack-overflow-in-rails)

- Author: Vishnu M
- Published: November 25, 2025
- Categories: Rails, Ruby

Debugging a Stack Overflow in Rails 7.2.1.1

### Active Record adds support for deprecating associations

[Active Record adds support for deprecating associations](https://www.bigbinary.com/blog/active-record-deprecated-associations)

- Author: Chirag Shah
- Published: July 3, 2025
- Categories: Rails, Ruby

Active Record adds the ability to safely remove associations by first
deprecating them

### Active Job Continuations

[Active Job Continuations](https://www.bigbinary.com/blog/active-jobs-continuations)

- Author: Vishnu M
- Published: June 9, 2025
- Categories: Rails, Sidekiq, Ruby

Active job feature that allows us to describe jobs in an interruptible manner

### Understanding Queueing Theory

[Understanding Queueing Theory](https://www.bigbinary.com/blog/understanding-queueing-theory)

- Author: Vishnu M
- Published: June 3, 2025
- Categories: Rails, Sidekiq, Ruby, Solid Queue

### Understanding Active Record Connection Pooling

[Understanding Active Record Connection Pooling](https://www.bigbinary.com/blog/understanding-active-record-connection-pooling)

- Author: Vishnu M
- Published: May 13, 2025
- Categories: Rails, Puma, Ruby

### Finding the ideal threads per process with GVL tooling

[Finding the ideal threads per process with GVL tooling](https://www.bigbinary.com/blog/tuning-puma-max-threads-configuration-with-gvl-instrumentation)

- Author: Vishnu M
- Published: May 6, 2025
- Categories: Rails, Puma, Ruby

### Amdahl's Law: the relationship of speedup and concurrency

[Amdahl's Law: the relationship of speedup and concurrency](https://www.bigbinary.com/blog/amdahls-law-the-theoretical-relationship-between-speedup-and-concurrency)

- Author: Vishnu M
- Published: April 29, 2025
- Categories: Rails, Puma, Ruby

### The GVL in Ruby and its impact on scaling Rails

[The GVL in Ruby and its impact on scaling Rails](https://www.bigbinary.com/blog/gvl-in-ruby-and-its-impact-in-scaling-rails-applications)

- Author: Vishnu M
- Published: April 24, 2025
- Categories: Rails, Puma, Ruby

### Understanding how Puma handles requests

[Understanding how Puma handles requests](https://www.bigbinary.com/blog/understanding-puma-concurrency-and-the-effect-of-the-gvl-on-performance)

- Author: Vishnu M
- Published: April 23, 2025
- Categories: Rails, Puma, Ruby

### Upgrade Ruby using dual boot

[Upgrade Ruby using dual boot](https://www.bigbinary.com/blog/ruby-upgrade-using-dual-boot)

- Author: Vijay Vinod
- Published: September 4, 2024
- Categories: Ruby, Rails

Upgrade Ruby using dual boot

### Using enable-load-relative flag in building Ruby binaries

[Using enable-load-relative flag in building Ruby binaries](https://www.bigbinary.com/blog/use-of-enable-load-relative-flag-in-building-ruby-binaries)

- Author: Vishal Yadav
- Published: June 20, 2023
- Categories: NeetoCI, Ruby

Using enable-load-relative flag in building Ruby binaries

### Improving application performance with the ancestry gem

[Improving application performance with the ancestry gem](https://www.bigbinary.com/blog/how-neetoTestify-improved-test-suites-performance-utilizing-ancestry-gem)

- Author: Shemin Anto
- Published: May 23, 2023
- Categories: NeetoTestify, Ruby

How NeetoTestify improved test suites performance by utilizing Ancestry Gem,
including migration to materialized_path2, adding collation, and optimizing tree
structure creation with the "arrange" method.

### Three case studies of debugging redis running out of memory

[Three case studies of debugging redis running out of memory](https://www.bigbinary.com/blog/debugging-redis-memory-issue)

- Author: Unnikrishnan KP
- Published: September 12, 2022
- Categories: Ruby, Rails

Three case studies of debugging redis running out of memory

### Ruby 3.1 adds Class#subclasses

[Ruby 3.1 adds Class#subclasses](https://www.bigbinary.com/blog/ruby-3-1-adds-class-subclasses)

- Author: Ashik Salman
- Published: December 27, 2021
- Categories: Ruby 3.1, Ruby

Ruby 3.1 adds Class#subclasses

### Ruby 3.1 adds MatchData#match & MatchData#match_length

[Ruby 3.1 adds MatchData#match & MatchData#match_length](https://www.bigbinary.com/blog/ruby-3-1-adds-match-data-methods)

- Author: Ashik Salman
- Published: November 9, 2021
- Categories: Ruby 3.1, Ruby

Ruby 3.1 adds MatchData#match & MatchData#match_length

### Ruby 3.1 adds Array#intersect?

[Ruby 3.1 adds Array#intersect?](https://www.bigbinary.com/blog/ruby-3-1-adds-array-intersect)

- Author: Ashik Salman
- Published: May 11, 2021
- Categories: Ruby 3.1, Ruby

Ruby 3.1 adds Array#intersect?

### Ruby 3.1 accumulates Enumerable#tally results

[Ruby 3.1 accumulates Enumerable#tally results](https://www.bigbinary.com/blog/ruby-3-1-accumulates-enumerable-tally-results)

- Author: Ashik Salman
- Published: April 20, 2021
- Categories: Ruby 3.1, Ruby

Ruby 3.1 accumulates Enumerable#tally results

### Ruby 3.1 adds Enumerable#compact and Lazy#compact

[Ruby 3.1 adds Enumerable#compact and Lazy#compact](https://www.bigbinary.com/blog/ruby-3-1-adds-enumerable-compact)

- Author: Ashik Salman
- Published: April 6, 2021
- Categories: Ruby 3.1, Ruby

Ruby 3.1 adds Enumerable#compact and Enumerator::Lazy#compact

### Ruby 3 is released - The list of Ruby 3 features

[Ruby 3 is released - The list of Ruby 3 features](https://www.bigbinary.com/blog/ruby-3-features)

- Author: Datt Dongare
- Published: December 25, 2020
- Categories: Ruby, Ruby 3

Ruby 3.0 is released on the Xmas 2020. Ruby 3 comes with many new features and
optimizations, check the list of all the features and their importance

### Ruby 3 supports transforming hash keys using a hash argument

[Ruby 3 supports transforming hash keys using a hash argument](https://www.bigbinary.com/blog/ruby-3-supports-transforming-hash-keys-using-a-hash-argument)

- Author: Yedhin Kizhakkethara
- Published: December 15, 2020
- Categories: Ruby, Ruby 3

Ruby Hash#transform_keys now accepts a hash for transforming existing keys

### Ruby 3 adds new method Hash#except

[Ruby 3 adds new method Hash#except](https://www.bigbinary.com/blog/ruby-3-adds-new-method-hash-except)

- Author: Akhil Gautam
- Published: November 11, 2020
- Categories: Ruby, Ruby 3

Ruby 3 adds new method except to Hash class

### Ruby 3 adds Symbol#name

[Ruby 3 adds Symbol#name](https://www.bigbinary.com/blog/ruby-3-adds-symbol-name)

- Author: Datt Dongare
- Published: October 12, 2020
- Categories: Ruby, Ruby 3

Ruby 3 adds an instance method 'name' to a Symbol class. Check what the 'name'
method does and why it was introduced

### Ruby 3 adds endless method definition

[Ruby 3 adds endless method definition](https://www.bigbinary.com/blog/ruby-3-adds-endless-method-definition)

- Author: Akhil Gautam
- Published: September 15, 2020
- Categories: Ruby, Ruby 3

Ruby 3 adds endless method definition

### Ruby 2.7 adds Beginless Range

[Ruby 2.7 adds Beginless Range](https://www.bigbinary.com/blog/ruby-2-7-adds-beginless-range)

- Author: Ashwath Biradar
- Published: August 25, 2020
- Categories: Ruby 2.7, Ruby

Ruby 2.7 adds Beginless Range

### Ruby 2.7 adds Enumerable#filter_map

[Ruby 2.7 adds Enumerable#filter_map](https://www.bigbinary.com/blog/ruby-2-7-adds-enumerable-filter-map)

- Author: Ashik Salman
- Published: May 8, 2020
- Categories: Ruby 2.7, Ruby

Ruby 2.7 adds Enumerable#filter_map

### Ruby 2.7 deprecates conversion of keyword arguments

[Ruby 2.7 deprecates conversion of keyword arguments](https://www.bigbinary.com/blog/ruby-2-7-deprecates-conversion-of-keyword-arguments)

- Author: Taha Husain
- Published: April 14, 2020
- Categories: Ruby 2.7, Ruby

Ruby 2.7 deprecates conversion of keyword arguments and positional arguments

### Ruby 2.7 adds Enumerator::Lazy#eager

[Ruby 2.7 adds Enumerator::Lazy#eager](https://www.bigbinary.com/blog/ruby-2-7-adds-enumerator-lazy-eager)

- Author: Ashik Salman
- Published: March 18, 2020
- Categories: Ruby 2.7, Ruby

Ruby 2.7 adds Enumerator::Lazy#eager

### Ruby 2.7 adds numbered parameters for blocks

[Ruby 2.7 adds numbered parameters for blocks](https://www.bigbinary.com/blog/ruby-2-7-introduces-numbered-parameters-as-default-block-parameters)

- Author: Taha Husain
- Published: March 3, 2020
- Categories: Ruby 2.7, Ruby

Ruby 2.7 introduces numbered parameters as default block parameters

### Ruby 2.7 adds Enumerable#tally

[Ruby 2.7 adds Enumerable#tally](https://www.bigbinary.com/blog/ruby-2-7-adds-enumerable-tally)

- Author: Akhil Gautam
- Published: February 18, 2020
- Categories: Ruby 2.7, Ruby

Ruby 2.7 adds Enumerable#tally

### MJIT Support in Ruby 2.6

[MJIT Support in Ruby 2.6](https://www.bigbinary.com/blog/mjit-support-in-ruby-2-6)

- Author: Sudeep Tarlekar
- Published: March 5, 2019
- Categories: Ruby 2.6, Ruby

MJIT Support in Ruby 2.6

### Ruby 2.6 Range#cover? accepts Range object as argument

[Ruby 2.6 Range#cover? accepts Range object as argument](https://www.bigbinary.com/blog/ruby-2-6-range-cover-now-accepts-range-object)

- Author: Abhay Nikam
- Published: October 24, 2018
- Categories: Ruby 2.6, Ruby

Ruby 2.6 Range#cover? now accepts Range object as an argument

### Ruby 2.6 adds RubyVM::AST module

[Ruby 2.6 adds RubyVM::AST module](https://www.bigbinary.com/blog/ruby-2-6-adds-rubyvm-ast-module)

- Author: Amit Choudhary
- Published: October 2, 2018
- Categories: Ruby 2.6, Ruby

Ruby 2.6 adds RubyVM::AST module

### Configuring memory allocation in ImageMagick

[Configuring memory allocation in ImageMagick](https://www.bigbinary.com/blog/configuring-memory-allocation-in-imagemagick)

- Author: Ershad Kunnakkadan
- Published: September 12, 2018
- Categories: Ruby

Configuring memory allocation in ImageMagick

### Ruby 2.6 adds Enumerable#filter as alias for #select

[Ruby 2.6 adds Enumerable#filter as alias for #select](https://www.bigbinary.com/blog/ruby-2-6-adds-enumerable-filter-as-an-alias-of-enumerable-select)

- Author: Amit Choudhary
- Published: August 28, 2018
- Categories: Ruby 2.6, Ruby

Ruby 2.6 adds Enumerable#filter as an alias of Enumerable#select

### Ruby 2.6 adds support for non-ASCII capital letter

[Ruby 2.6 adds support for non-ASCII capital letter](https://www.bigbinary.com/blog/ruby-2.6-adds-support-for-non-ascii-capital-case-constant)

- Author: Rohan Pujari
- Published: August 22, 2018
- Categories: Ruby 2.6, Ruby

Ruby 2.6 adds support for non-ASCII capital letter as a first character in
constant name

### Setting up a high performance Geocoder

[Setting up a high performance Geocoder](https://www.bigbinary.com/blog/setting-up-a-high-performance-geocoder)

- Author: Midhun Krishna
- Published: August 21, 2018
- Categories: Ruby, Rails

A setup guide with side-by-side comparison of Nominatim with Google geocoder and
how to improve geocoding efficiency

### Ruby 2.6 adds write_timeout to Net::HTTP

[Ruby 2.6 adds write_timeout to Net::HTTP](https://www.bigbinary.com/blog/ruby-2-6-adds-write-timeout-to-net-http)

- Author: Taha Husain
- Published: August 14, 2018
- Categories: Ruby 2.6, Ruby

write_timeout is added to Net::HTTP and Net::BufferedIO in Ruby 2.6

### Ruby 2.6 adds Dir#each_child & Dir#children instance

[Ruby 2.6 adds Dir#each_child & Dir#children instance](https://www.bigbinary.com/blog/ruby-2-6-introduces-dir-each_child-and-dir-children-instance-methods)

- Author: Tejaswini Chile
- Published: August 7, 2018
- Categories: Ruby 2.6, Ruby

Ruby 2.6 introduces each_child and children as instance methods to have file
names in a directory without \`.\` and \`..\`

### Ruby 2.6 adds exception parameter to Integer and Float

[Ruby 2.6 adds exception parameter to Integer and Float](https://www.bigbinary.com/blog/ruby-2-6-adds-option-to-not-raise-exception-for-integer-float-methods)

- Author: Prathamesh Sonpatki
- Published: July 31, 2018
- Categories: Ruby 2.6, Ruby

Instead of raising exception, we can pass a keyword argument and the type
conversion methods will return nil

### Ruby 2.6 adds Binding#source_location

[Ruby 2.6 adds Binding#source_location](https://www.bigbinary.com/blog/ruby-2-6-adds-binding-source-location)

- Author: Taha Husain
- Published: July 24, 2018
- Categories: Ruby 2.6, Ruby

Binding#source_location is added in Ruby 2.6 which makes fetching filename and
line number more readable

### Ruby 2.6 adds String#split with block

[Ruby 2.6 adds String#split with block](https://www.bigbinary.com/blog/ruby-2-6-adds-split-with-block)

- Author: Taha Husain
- Published: July 17, 2018
- Categories: Ruby 2.6, Ruby

String#split with block is added in Ruby 2.6. split yields each split substrings
if the block is given, instead of returing the array.

### Ruby 2.6 raises exception for else without rescue

[Ruby 2.6 raises exception for else without rescue](https://www.bigbinary.com/blog/ruby-2.6-raise-exception-for-else-without-rescue)

- Author: Rohan Pujari
- Published: July 10, 2018
- Categories: Ruby 2.6, Ruby

Ruby 2.6 raises exception when 'else' is used inside 'begin..end' block without
'rescue'

### Ruby 2.6 adds endless range

[Ruby 2.6 adds endless range](https://www.bigbinary.com/blog/ruby-2-6-adds-endless-range)

- Author: Taha Husain
- Published: July 4, 2018
- Categories: Ruby 2.6, Ruby

Shorter syntax for endless range with index is added in Ruby 2.6

### Using Concurrent Ruby in a Ruby on Rails Application

[Using Concurrent Ruby in a Ruby on Rails Application](https://www.bigbinary.com/blog/using-concurrent-ruby-in-a-ruby-on-rails-application)

- Author: Midhun Krishna
- Published: June 5, 2018
- Categories: Ruby, Rails

A pratical use case of using Concurrent Ruby in Rails applications without
swalloing the exceptions

### RubyKaigi 2018 Day two

[RubyKaigi 2018 Day two](https://www.bigbinary.com/blog/rubykaigi-2018-day-two)

- Author: Prathamesh Sonpatki
- Published: June 1, 2018
- Categories: Ruby

Ground report of Day two from Sendai, Japan where RubyKaigi 2018 is happening

### RubyKaigi 2018 Day one

[RubyKaigi 2018 Day one](https://www.bigbinary.com/blog/rubykaigi-2018-day-one)

- Author: Prathamesh Sonpatki
- Published: May 31, 2018
- Categories: Ruby

Ground report of Day one from Sendai, Japan where RubyKaigi 2018 is happening

### Ruby 2.5 added lazy proc allocation for block parameters

[Ruby 2.5 added lazy proc allocation for block parameters](https://www.bigbinary.com/blog/ruby-2-5-added-lazy-proc-allocation-for-block-parameters)

- Author: Amit Choudhary
- Published: May 22, 2018
- Categories: Ruby 2.5, Ruby

Ruby 2.5 added lazy proc allocation for block parameters

### Increase reliability using super_fetch of Sidekiq Pro

[Increase reliability using super_fetch of Sidekiq Pro](https://www.bigbinary.com/blog/increase-reliability-of-background-job-processing-using-super_fetch-of-sidekiq-pro)

- Author: Vishal Telangre
- Published: May 8, 2018
- Categories: Ruby, Rails, Kubernetes

Increase reliability of background job processing using super_fetch of Sidekiq
Pro

### Ruby 2.6 added option to raise exception in Kernel#system

[Ruby 2.6 added option to raise exception in Kernel#system](https://www.bigbinary.com/blog/ruby-2-6-added-option-to-raise-exception-in-kernel-system)

- Author: Amit Choudhary
- Published: April 25, 2018
- Categories: Ruby 2.6, Ruby

The BigBinary team's lesson on Ruby 2.6 adding an option to raise exception in
Kernel#system

### Ruby 2.5 adds Thread.report_on_exception by default

[Ruby 2.5 adds Thread.report_on_exception by default](https://www.bigbinary.com/blog/ruby-2-5-enables-thread-report_on_exception-by-default)

- Author: Vishal Telangre
- Published: April 18, 2018
- Categories: Ruby 2.5, Ruby

Ruby 2.5 enables Thread.report_on_exception by default and we get more info when
threads die

### Ruby 2.5 supports measuring branch and method coverages

[Ruby 2.5 supports measuring branch and method coverages](https://www.bigbinary.com/blog/ruby-2-5-supports-measuring-branch-and-method-coverages)

- Author: Vishal Telangre
- Published: April 11, 2018
- Categories: Ruby 2.5, Ruby

Ruby 2.5 has added support to measure branch and method coverage using
\`Coverage\` library.

### Ruby 2.5 adds Exception#full_message method

[Ruby 2.5 adds Exception#full_message method](https://www.bigbinary.com/blog/ruby-2-5-adds-exception-full_message-method)

- Author: Vishal Telangre
- Published: March 13, 2018
- Categories: Ruby 2.5, Ruby

Ruby 2.5 has added Exception#full_message method to retrieve a string expression
of an exception, formatted in the same way with that Ruby prints an uncaught
exception out.

### Ruby 2.5 prints backtrace & error message in reverse

[Ruby 2.5 prints backtrace & error message in reverse](https://www.bigbinary.com/blog/ruby-2-5-prints-backstrace-and-error-message-in-reverse-order)

- Author: Vishal Telangre
- Published: March 7, 2018
- Categories: Ruby 2.5, Ruby

Ruby 2.5 prints backtrace in reverse order (stack frames first and error last)
if STDERR is unchanged and a TTY.

### Ruby 2.5 added Hash#slice method

[Ruby 2.5 added Hash#slice method](https://www.bigbinary.com/blog/ruby-2-5-added-hash-slice-method)

- Author: Amit Choudhary
- Published: February 6, 2018
- Categories: Ruby 2.5, Ruby

Hash#slice method is added in Ruby 2.5

### Ruby 2.5 allows creating structs with keyword arguments

[Ruby 2.5 allows creating structs with keyword arguments](https://www.bigbinary.com/blog/ruby-2-5-allows-creating-structs-with-keyword-arguments)

- Author: Prathamesh Sonpatki
- Published: January 16, 2018
- Categories: Ruby 2.5, Ruby

We can now create structs by passing keyword arguments using a flag keyword_init

### Ruby 2.5 adds Hash#transform_keys method

[Ruby 2.5 adds Hash#transform_keys method](https://www.bigbinary.com/blog/ruby-2-5-adds-hash-transform_keys-method)

- Author: Prathamesh Sonpatki
- Published: January 9, 2018
- Categories: Ruby 2.5, Ruby

Neat way to transform keys of the Hash, now natively supported by Ruby

### Ruby 2.5 enumerable predicates accept pattern argument

[Ruby 2.5 enumerable predicates accept pattern argument](https://www.bigbinary.com/blog/ruby-2-5-enumerable-predicates-accept-pattern-argument)

- Author: Prathamesh Sonpatki
- Published: January 2, 2018
- Categories: Ruby 2.5, Ruby

all?, any?, one? and none? method accept a single pattern argument and perform
case equality with that argument and it's contents

### Ruby 2.5 requires pp by default

[Ruby 2.5 requires pp by default](https://www.bigbinary.com/blog/ruby-2-5-requires-pp-by-default)

- Author: Prathamesh Sonpatki
- Published: December 20, 2017
- Categories: Ruby 2.5, Ruby

No need to require pp separately now, it is required'd by default

### Array#prepend and Array#append in Ruby 2.5

[Array#prepend and Array#append in Ruby 2.5](https://www.bigbinary.com/blog/array-prepend-and-array-append-in-ruby-2-5)

- Author: Prathamesh Sonpatki
- Published: December 19, 2017
- Categories: Ruby 2.5, Ruby

Better names for existing Array#unshift and Array#push methods

### Ruby 2.5 added yield_self

[Ruby 2.5 added yield_self](https://www.bigbinary.com/blog/ruby-2-5-added-yield_self)

- Author: Vijay Kumar Agrawal
- Published: December 12, 2017
- Categories: Ruby 2.5, Ruby

Method to yield the receiver to the given block.

### Ruby 2.5 added delete_prefix and delete_suffix methods

[Ruby 2.5 added delete_prefix and delete_suffix methods](https://www.bigbinary.com/blog/ruby-2-5-added-delete_prefix-and-delete_suffix-methods)

- Author: Amit Choudhary
- Published: November 28, 2017
- Categories: Ruby 2.5, Ruby

delete_prefix and delete_suffix methods are added in Ruby 2.5

### Ruby 2.5 introduces Dir.children and Dir.each_child

[Ruby 2.5 introduces Dir.children and Dir.each_child](https://www.bigbinary.com/blog/ruby-2_5-introduces-dir-children-and-dir-each_child)

- Author: Mohit Natoo
- Published: November 21, 2017
- Categories: Ruby 2.5, Ruby

Ruby 2.5 introduces methods new methods to have file names in a directory
without \`.\` and \`..\`

### Ruby 2.5 allows rescue/else/ensure inside do/end blocks

[Ruby 2.5 allows rescue/else/ensure inside do/end blocks](https://www.bigbinary.com/blog/ruby-2.5-allows-rescue-inside-do-end-blocks)

- Author: Amit Choudhary
- Published: October 24, 2017
- Categories: Ruby 2.5, Ruby

rescue/else/ensure are allowed inside do/end blocks in ruby 2.5

### Ruby 2.5 has removed top level constant lookup

[Ruby 2.5 has removed top level constant lookup](https://www.bigbinary.com/blog/ruby-2.5-has-removed-top-level-constant-lookup)

- Author: Amit Choudhary
- Published: October 18, 2017
- Categories: Ruby 2.5, Ruby

top level constant lookup has been removed in ruby 2.5

### Ruby 2.4 has optimized enumerable min max methods

[Ruby 2.4 has optimized enumerable min max methods](https://www.bigbinary.com/blog/ruby-2-4-0-has-optimized-enumerable-min-max-methods)

- Author: Chirag Shah
- Published: September 28, 2017
- Categories: Ruby 2.4, Ruby

min, max and minmax methods for enumerable class have been optimized in ruby 2.4

### CSV::Row#each etc. return enumerator when no block given

[CSV::Row#each etc. return enumerator when no block given](https://www.bigbinary.com/blog/csv-row-each-and-delete-if-return-enumerator-when-no-block-given)

- Author: Sushant Mittal
- Published: September 25, 2017
- Categories: Ruby 2.4, Ruby

CSV::Row#each, CSV::Row#delete_if, CSV::Table#each and CSV::Table#delete_if
return enumerator when no block given

### Ruby 2.4 DateTime#to_time & Time#to_time keeps info

[Ruby 2.4 DateTime#to_time & Time#to_time keeps info](https://www.bigbinary.com/blog/to-time-preserves-time-zone-info-in-ruby-2-4)

- Author: Sushant Mittal
- Published: September 19, 2017
- Categories: Ruby 2.4, Ruby

DateTime#to_time and Time#to_time preserves receiver's timezone offset info in
Ruby 2.4

### Avoid exception for dup on Integer

[Avoid exception for dup on Integer](https://www.bigbinary.com/blog/avoid-exceptions-for-dup-on-interger-and-similar-cases)

- Author: Rohit Arolkar
- Published: August 1, 2017
- Categories: Ruby 2.4, Ruby

dup now silently fails for Integer

### Ruby 2.4 no exception for objects converted to IPAddr

[Ruby 2.4 no exception for objects converted to IPAddr](https://www.bigbinary.com/blog/ruby-2-4-ip-addr-methods-do-not-throw-exception-for-objects-that-cant-be-converted-to-ipaddr)

- Author: Sushant Mittal
- Published: June 21, 2017
- Categories: Ruby 2.4, Ruby

IPAddr#== and IPAddr# do not throw exception for objects that can't be converted
to IPAddr anymore in Ruby 2.4

### Ruby 2.4 deprecated constants TRUE, FALSE & NIL

[Ruby 2.4 deprecated constants TRUE, FALSE & NIL](https://www.bigbinary.com/blog/ruby-2-4-has-depecated-constants-true-false-and-nil)

- Author: Akshay Vishnoi
- Published: June 19, 2017
- Categories: Ruby 2.4, Ruby

Ruby 2.4 has deprecated toplevel constants TRUE, FALSE and NIL

### Ruby 2.4 allows custom suffix of rotated log files

[Ruby 2.4 allows custom suffix of rotated log files](https://www.bigbinary.com/blog/ruby-2-4-allows-to-customize-suffix-of-the-rotated-log-files)

- Author: Sushant Mittal
- Published: June 15, 2017
- Categories: Ruby 2.4, Ruby

Ruby 2.4 has added ability to pass custom date format for the suffix of log
files rotated daily, weekly or monthly

### Ruby 2.4 Hash#transform_values & destructive version

[Ruby 2.4 Hash#transform_values & destructive version](https://www.bigbinary.com/blog/ruby-2-4-added-hash-transform-values-and-its-destructive-version-from-active-support)

- Author: Sushant Mittal
- Published: June 14, 2017
- Categories: Ruby 2.4, Ruby

In Ruby 2.4, Hash#transform_values and Hash#transform_values! can be used to
transform the values after executing passed block for each value

### Binding irb - Runtime Invocation for IRB

[Binding irb - Runtime Invocation for IRB](https://www.bigbinary.com/blog/binding-irb)

- Author: Rohit Arolkar
- Published: April 18, 2017
- Categories: Ruby 2.4, Ruby

Ruby now has a core IRB library for better debugging

### Ruby 2.4 has added additional parameters for Logger#new

[Ruby 2.4 has added additional parameters for Logger#new](https://www.bigbinary.com/blog/ruby-2-4-has-added-additional-parameters-for-logger-new)

- Author: Chirag Shah
- Published: April 10, 2017
- Categories: Ruby 2.4, Ruby

Ruby 2.4 makes it possible to specify logger level, progname, formatter and
datetime_format in logger constructor.

### Ruby 2.4 has default basename for Tempfile#create

[Ruby 2.4 has default basename for Tempfile#create](https://www.bigbinary.com/blog/ruby-2-4-has-default-basename-for-tempfile-create)

- Author: Chirag Shah
- Published: April 4, 2017
- Categories: Ruby 2.4, Ruby

Tempfile#create method now has a default empty basename

### New arguments support for float & integer modifiers

[New arguments support for float & integer modifiers](https://www.bigbinary.com/blog/new-ndigits-arguments-supported-for-float-modifiers-in-ruby-2-4)

- Author: Abhishek Jain
- Published: March 28, 2017
- Categories: Ruby 2.4, Ruby

Optional argument ndigits added to ceil, floor, truncate

### Ruby 2.4 adds Enumerable#uniq & Enumerable::Lazy#uniq

[Ruby 2.4 adds Enumerable#uniq & Enumerable::Lazy#uniq](https://www.bigbinary.com/blog/enumerable-uniq-and-enumerable-lazy-uniq-part-of-ruby-2-4)

- Author: Mohit Natoo
- Published: March 21, 2017
- Categories: Ruby 2.4, Ruby

In Ruby 2.4, uniq elements can be iterated upon for enumerable and lazy objects
without creating an array.

### Ruby 2.4 optimized lstrip & strip for ASCII strings

[Ruby 2.4 optimized lstrip & strip for ASCII strings](https://www.bigbinary.com/blog/ruby-2-4-has-optimized-lstrip-and-strip-methods)

- Author: Chirag Shah
- Published: March 14, 2017
- Categories: Ruby 2.4, Ruby

lstrip and rstrip methods have been optimized in ruby 2.4

### IO#readlines now accepts chomp flag as an argument

[IO#readlines now accepts chomp flag as an argument](https://www.bigbinary.com/blog/io-readlines-now-accepts-chomp-flag-as-an-argument)

- Author: Chirag Shah
- Published: March 7, 2017
- Categories: Ruby 2.4, Ruby

IO methods now have an optional chomp flag to remove newline return characters

### open-uri in Ruby 2.4 allows http to https redirection

[open-uri in Ruby 2.4 allows http to https redirection](https://www.bigbinary.com/blog/open-uri-in-ruby-2-4-allows-http-to-https-redirection)

- Author: Chirag Shah
- Published: March 2, 2017
- Categories: Ruby 2.4, Ruby

open-uri now allows http to https redirection in Ruby 2.4

### Ruby 2.4 now has Dir.empty? and File.empty? methods

[Ruby 2.4 now has Dir.empty? and File.empty? methods](https://www.bigbinary.com/blog/dir-emtpy-included-in-ruby-2-4)

- Author: Ratnadeep Deshmane
- Published: February 28, 2017
- Categories: Ruby 2.4, Ruby

No more platform specific code to check empty directories

### Ruby 2.4 Integer#digits extract digits in place-value

[Ruby 2.4 Integer#digits extract digits in place-value](https://www.bigbinary.com/blog/ruby-2-4-implements-integer-digits-for-extracting-digits-in-place-value-notation)

- Author: Rohit Kumar
- Published: February 23, 2017
- Categories: Ruby 2.4, Ruby

Ruby 2.4 implements Integer#digits for extracting digits in place-value notation
which is useful in calculating checksum digits.

### Ruby 2.4 adds compare by identity functionality

[Ruby 2.4 adds compare by identity functionality](https://www.bigbinary.com/blog/ruby-2-4-adds-compare-by-identity-functionality-for-sets)

- Author: Chirag Shah
- Published: December 29, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 adds compare_by_identity and compare_by_identity? methods for Set class
so that now we can compare the set elements by their identitiy rather than value

### Ruby 2.4 MatchData#values_at

[Ruby 2.4 MatchData#values_at](https://www.bigbinary.com/blog/ruby-2.4-adds-matchdata-values-at-for-extracting-named-and-positional-capture-groups)

- Author: Rohit Kumar
- Published: December 21, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 adds ability to extract named capture groups through values_at

### Ruby 2.4 adds infinite? and finite? methods to Numeric

[Ruby 2.4 adds infinite? and finite? methods to Numeric](https://www.bigbinary.com/blog/ruby-2-4-adds-infinite-method-to-numeric)

- Author: Abhishek Jain
- Published: December 19, 2016
- Categories: Ruby 2.4, Ruby

Fixnum#infinite?/Bignum#infinite? and Numeric#finite?/Bignum#finite? methods are
now consistent with Float#infinite?/BigDecimal#infinite?

### Ruby 2.4 adds Comparable#clamp method

[Ruby 2.4 adds Comparable#clamp method](https://www.bigbinary.com/blog/ruby-2-4-adds-comparable-clamp-method)

- Author: Abhishek Jain
- Published: December 13, 2016
- Categories: Ruby 2.4, Ruby

Comparable#clamp method is added to Ruby 2.4 to limit the object to a specific
range of values

### New liberal_parsing option for parsing bad CSV data

[New liberal_parsing option for parsing bad CSV data](https://www.bigbinary.com/blog/ruby-2-4-introduces-liberal_parsing-option-for-parsing-bad-csv-data)

- Author: Ershad Kunnakkadan
- Published: November 22, 2016
- Categories: Ruby 2.4, Ruby

CSV input with unescaped double quotes can now be parsed in Ruby 2.4 using
liberal_parsing option

### Enumerable#chunk not mandatory in Ruby 2.4

[Enumerable#chunk not mandatory in Ruby 2.4](https://www.bigbinary.com/blog/passing-block-with-enumerable-chunk-is-not-mandatory-in-ruby-2-4)

- Author: Abhishek Jain
- Published: November 21, 2016
- Categories: Ruby 2.4, Ruby

Enumerable#chunk does not require a block to be passed along with it in Ruby 2.4

### Ruby 2.4 unifies Fixnum and Bignum into Integer

[Ruby 2.4 unifies Fixnum and Bignum into Integer](https://www.bigbinary.com/blog/ruby-2-4-unifies-fixnum-and-bignum-into-integer)

- Author: Prathamesh Sonpatki
- Published: November 18, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 has unified Fixnum and Bignum into Integer class. It has also
deprecated usage of Fixnum and Bignum

### Ruby 2.4 implements Array#min and Array#max

[Ruby 2.4 implements Array#min and Array#max](https://www.bigbinary.com/blog/ruby-2-4-implements-array-min-and-max)

- Author: Rohit Kumar
- Published: November 17, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 implements Array#min and Array#max to find the minimum and maximum
value of the array

### Hunting down a memory leak in shoryuken

[Hunting down a memory leak in shoryuken](https://www.bigbinary.com/blog/hunting-down-a-memory-leak-in-shoryuken)

- Author: Rohit Kumar
- Published: November 15, 2016
- Categories: Ruby

Hunting down a memory leak in shoryuken worker

### Ruby 2.4 Extracting captured data from Regexp results

[Ruby 2.4 Extracting captured data from Regexp results](https://www.bigbinary.com/blog/ruby-2-4-adds-better-support-for-extracting-captured-data-from-regexp-match-results)

- Author: Rohit Kumar
- Published: November 10, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 adds support for extracting named captures and positional capture
groups from Regexp match results

### Ruby 2.4 Regexp#match? not polluting global variables

[Ruby 2.4 Regexp#match? not polluting global variables](https://www.bigbinary.com/blog/ruby-2-4-implements-regexp-match-without-polluting-global-variables)

- Author: Rohit Kumar
- Published: November 4, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 now allows matching a regex without updating global variables using
Regexp#match?. This is a faster option to match regexes when we don't care about
the match data

### Ruby 2.4 implements Enumerable#sum

[Ruby 2.4 implements Enumerable#sum](https://www.bigbinary.com/blog/ruby-2-4-introduces-enumerable-sum)

- Author: Mohit Natoo
- Published: November 2, 2016
- Categories: Ruby 2.4, Ruby

In Ruby 2.4, every object belonging to the \`Enumerable\` family can now call
\`sum\` method on it

### String#concat, Array#concat & String#prepend Ruby 2.4

[String#concat, Array#concat & String#prepend Ruby 2.4](https://www.bigbinary.com/blog/string-array-concat-and-string-prepend-take-multiple-arguments-in-ruby-2-4)

- Author: Abhishek Jain
- Published: October 28, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 now allows concat and prepend methods to take multiple arguments

### Hash#compact and Hash#compact! now part of Ruby 2.4

[Hash#compact and Hash#compact! now part of Ruby 2.4](https://www.bigbinary.com/blog/hash-compact-and-hash-compact-now-part-of-ruby-2-4)

- Author: Prathamesh Sonpatki
- Published: October 24, 2016
- Categories: Ruby 2.4, Ruby

Ruby 2.4 has added Hash#compact and Hash#compact! methods into core

### Configuring CircleCI for JRuby

[Configuring CircleCI for JRuby](https://www.bigbinary.com/blog/how-to-configure-circle-ci-for-jruby)

- Author: Ershad Kunnakkadan
- Published: August 1, 2016
- Categories: Ruby

In this blog we discuss how to configure Circle CI for JRuby.

### Author information in jekyll blog

[Author information in jekyll blog](https://www.bigbinary.com/blog/author-information-in-jekyll-blog)

- Author: Neeraj Singh
- Published: January 9, 2015
- Categories: Ruby

Author information in jekyll blog

### Six Year Old Optional / Keyword Arguments bug

[Six Year Old Optional / Keyword Arguments bug](https://www.bigbinary.com/blog/six-years-old-optional-keyword-arguments-bug)

- Author: Vipul
- Published: April 28, 2014
- Categories: Rails, Ruby

This blog discusses a Six Year Old Optional / Keyword Arguments bug that was
fixed recently in Ruby 2.2

### How to deploy jekyll site to heroku

[How to deploy jekyll site to heroku](https://www.bigbinary.com/blog/deploy-jekyll-to-heroku)

- Author: Neeraj Singh
- Published: April 27, 2014
- Categories: Ruby

This blog discusses how to deploy jekyll site to heroku

### Getting arguments passed to command

[Getting arguments passed to command](https://www.bigbinary.com/blog/getting-arguments-passed-to-command)

- Author: Neeraj Singh
- Published: September 22, 2013
- Categories: Ruby

Investigative work of finding what argeuments where passed to the command after
the fact.

### What is ppid

[What is ppid](https://www.bigbinary.com/blog/what-is-ppid)

- Author: Neeraj Singh
- Published: September 21, 2013
- Categories: Ruby

A look at how process ids are linked up and maintain the hierarchy.

### How to setup Pinch to Zoom for an image in RubyMotion

[How to setup Pinch to Zoom for an image in RubyMotion](https://www.bigbinary.com/blog/pinch-to-zoom-for-an-image-in-rubymotion)

- Author: Neeraj Singh
- Published: August 27, 2013
- Categories: Ruby

Pinching and then zooming is a common user interaction in ios apps. This blog
details how to build that feature.

### Fix image orientation issue in RubyMotion

[Fix image orientation issue in RubyMotion](https://www.bigbinary.com/blog/rubymotion-image-orientation)

- Author: Neeraj Singh
- Published: August 4, 2013
- Categories: Ruby

Sometimes images appear in different orientation. This blog discusses how to fix
that issue in RubyMotion apps.

### Background/header for Formotion forms in RubyMotion

[Background/header for Formotion forms in RubyMotion](https://www.bigbinary.com/blog/set-formotion-background-and-header)

- Author: Neeraj Singh
- Published: June 8, 2013
- Categories: Ruby

See this blog to understand how to set background and header in a form developed
using Formotion in a RubyMotion application

### Handling money in ruby

[Handling money in ruby](https://www.bigbinary.com/blog/handling-money-in-ruby)

- Author: Neeraj Singh
- Published: January 14, 2013
- Categories: Ruby

Float in ruby is not good for calculations. That makes it difficult to use float
for money in a ruby based application. See this blog for a solution.

### Executing shell commands in ruby

[Executing shell commands in ruby](https://www.bigbinary.com/blog/backtick-system-exec-in-ruby)

- Author: Neeraj Singh
- Published: October 18, 2012
- Categories: Ruby

Ruby allows many different ways to execute a command or a sub-process. In this
article we are going to see backtick, system, exec, sh, popen3, popen2e and
spawn.

### extend self in ruby

[extend self in ruby](https://www.bigbinary.com/blog/extend-self-in-ruby)

- Author: Neeraj Singh
- Published: June 28, 2012
- Categories: Ruby

It is not very clear what happens when a module extends itself. This blog takes
a look a that in detail.

### to_str in ruby

[to_str in ruby](https://www.bigbinary.com/blog/to_str-in-ruby)

- Author: Neeraj Singh
- Published: June 26, 2012
- Categories: Ruby

to_str has a special meaning in ruby. This blog discusses that in detail and
contrats it with to_s.

### alias vs alias_method

[alias vs alias_method](https://www.bigbinary.com/blog/alias-vs-alias-method)

- Author: Neeraj Singh
- Published: January 8, 2012
- Categories: Ruby

This blog discusses the differences between alias and alias_method in ruby.

### Ruby pack unpack

[Ruby pack unpack](https://www.bigbinary.com/blog/ruby-pack-unpack)

- Author: Neeraj Singh
- Published: July 20, 2011
- Categories: Ruby

Ruby allows to manipulate bits and bytes using pack and unpack methods. This
blog deep dives into it to see how pack and unpack methods can be used.

### Infinite hash and default_proc

[Infinite hash and default_proc](https://www.bigbinary.com/blog/default_proc_in_infinite_hash)

- Author: Neeraj Singh
- Published: December 31, 2010
- Categories: Ruby

This blog discusses how we can build infinite nested hash in ruby using
deafult_proc feature.

### instance_exec, changing self and params

[instance_exec, changing self and params](https://www.bigbinary.com/blog/instance-exec-changing-self-and-parameters-to-proc)

- Author: Neeraj Singh
- Published: May 28, 2010
- Categories: Ruby

instance_exec could be confusing. It can be used to change self. This blog
discusses how to use instance_exec.

### $LOADED_FEATURES and require, load, require_dependency

[$LOADED_FEATURES and require, load, require_dependency](https://www.bigbinary.com/blog/require-load-loaded_features)

- Author: Neeraj Singh
- Published: May 12, 2010
- Categories: Ruby

This blog discusses LOADED_FEATURES, require, load and require_dependency in
ruby.

### $stdout.sync = true to flush output immediately

[$stdout.sync = true to flush output immediately](https://www.bigbinary.com/blog/stdout-sync-true-to-flush-output-immediately)

- Author: Neeraj Singh
- Published: July 4, 2009
- Categories: Ruby

Since IO operations are expensive IO results are not flushed immediately. See
the technique presented here to flush output immediately.

### Why the id of nil is 4 in Ruby

[Why the id of nil is 4 in Ruby](https://www.bigbinary.com/blog/why-the-id-of-nil-is-4-in-ruby)

- Author: Neeraj Singh
- Published: June 23, 2008
- Categories: Ruby

Discusses why the id of nil is 4 in Ruby. Why 4. Why not 3 or 5.

## Links

- [Human page](https://www.bigbinary.com/blog/categories/ruby)
