Speed up pasting text into Rails console

Recently we had to copy and paste large amounts of text into a ruby console and we found a pretty quick way to do it

Sometimes you just need to copy and paste a load of text into a Rails console!

You would generally start up a new console rails console and start typing. You may have noticed that in newer versions of Ruby if you paste text it seems to input it quite slowly, one character at a time.

Rails uses IRB to manage the commands you enter and how the output is formatted. In recent years IRB has become an excellent tool, with lots of great features that we all take for granted, a simple one being syntax highlighting.

One of the tools that makes IRB so excellent is called multiline it allows for, you guessed it! multi line editing. This is super powerful. But it is also relatively expensive, especially when all you need to do is paste some text and let it run.

If all you need your IRB session to do is let you run a quick command (even if that command is long) then you can start a rails console without it.

To do that you run this command rails console -- --nomultiline. This will tell IRB to run without using multiline.

If you want to run IRB directly, you can disable multiline support with irb --nomultiline.

I was running the commands on a Rails application hosted on Heroku, in order to get no multiline support there I ran heroku run "rails console -- --nomultiline" --app my_awesome_rails_app.

If you’re wondering what the -- is between rails console and --nomultiline (I was). It means this is the end of the flags we’re passing to the original command (in this case rails), this means Rails must pass any additional flags right to IRB as an option.


Recent posts View all

Ruby

Testing Routes with RSpec

Testing routes can give you more confidence and help drive application development; here is how to do it with RSpec

Ruby

How to ignore Bullet in RSpec tests

Using Bullet during a test can pick up mistakes but also has false negatives; here is an easy way to ignore them