RubyFlow : The Ruby Community Blog

Home   Submit   Sign Up   Log In   leaders   Twitter   RSS Feed  
July 09, 2014
As you probably already noticed we have one user that is constantly posting something about RubyMotion. Usually I have nothing against promotion of products on RubyFlow from time to time, but in this case we're talking about posting 10 posts within just 30 days, which is on average post every second work-day. I would call it SPAM.

Before writing this note I decided to do some research regarding those posts and product that is marketed, so I wouldn't be accused of being biased. I described everything on separate blog post (due to character limit on RubyFlow).

As a final note I would like to ask for two things. First is for FluffyJack to post less often. I would gladly hear about RubyMotion once or twice per year, but not per week. On the other side it would be nice to see RubyFlow users a little more vocal about spam - please don't use silent treatment when somebody else is buying Google position and free traffic using our community.
We show you how to work with YAML files in Ruby ~ 13 minute video for beginners
Should You Learn RubyMotion or Swift?
A look at Swift's future, whether it's worth learning, and comparing and predicting it's potential future, with RubyMotion's past. A great read if you're not sure where to focus your attention.
July 08, 2014
I’m puzzling over the design for a worker and would appreciate your comments on it. I started with the pain of an ugly test, made an interesting refactoring, and decided to drop the test entirely, but I’m not at all sure this is the right decision.
Recently I added the first high-level test to a Sinatra app with no tests. This required a lot of initial setup, involving, among other things, RSpec, Rake::Test, Capybara, EmailSpec and Pony, mocking OmniAuth callbacks, and using DatabaseCleaner with Sequel. For the benefit of my future self and anyone else who needs to set up Sinatra for acceptance-level tests, I documented the whole process. will no longer be generating any more Ruby videos. Instead videos will be focused on Go instead.

Read more about the decision at
There's a lot of good, free Rails information around. But as you improve your development skills, it can be hard to find knowledge that's useful to you. If it's too basic, you'll just read about things you already know. Too advanced, and your eyes glaze over and your brain shuts off. You can't just type "intermediate-level Rails blogs" into Google and hope some good sites pop out. To get the information you're looking for, you're going to have to do some digging.
We've added support for GitLab repos in So now GitHub and GitLab repositories are supported.
Recently I've created a neat little gem rails-env-favicon to use different favicon in development rails environment. It uses Tinycon - A small js library for manipulating the favicon. And maybe somebody will want to help in the implementation of middleware.
I just wrote a simple introduction to ruby continuations, specifically using them in loops.
I just wrote a simple introduction to ruby continuations, specifically using them in loops.
July 07, 2014
I just released a screencast called Keeping with Annotate that talks about how to use the Annotate gem to automatically comment attributes in your Rails models.
How to use SQL dumps for stages on Teatro
How to Ruby queue pop with timeout without using ruby Timeout, or running it in a separate thread and tossing in an exception when you want to stop.
Blocks can sometimes lead to a mix of concerns when you've got a block bigger than a few lines. There is a way around this though, which I'm going to show you through in this episode.
I recently launched a web service based on Inch and now I wrote about the first month of Inch CI.

Inch CI is a service to lint your Ruby docs. Think of it as Code Climate for your inline code documentation.
July 06, 2014
I just released rack-dev-mark 0.6.0. Now you can see the deployment revision and time on the tooltip of the dev-mark as well as the environment name!
July 05, 2014
Delayed::Cron::Job is an extension to Delayed::Job that allows you to set cron expressions for your jobs to run repeatedly.
A collection of awesome Ruby libraries, tools, frameworks and software. Do you miss any interesting link or section? Check it here. The goal is to build a well-structured collection, up to date and community-driven.
July 04, 2014
Blog post about Sidekiq. How to use it with multiple apps on the same server: Multiple Sidekiq processes for multiple Rails/Sinatra applications – namespacing
Kata 1.6.1 Released
Do you practice your ruby coding skills? Have you heard about code katas before? This popular gem has helped many improve their coding skills by solving the pain points around making code katas a regular habit. The new addition is that it now also supports Node and PHP. Have a look at the wiki for complete information on what the gem provides and how to use it to improve your ruby programming skills. Also check out the companion code katas project if you want to contribute.
July 03, 2014
Lita::Ext is an opinionated collection of Lita extensions to make organizing and developing your chat bot easier. Check out the full announcement for details!
In a Ruby on Rails project, all migration files generate into the same directory db/migrate. It's enough for simple projects, but not that good for large modulized projects. It is inconvenient to review thousands of files in the same directory for one project.

Since MVC directories are modular, the migration directory should the same. It's expected to be structured and clear. That's the reason I release the gem modular_migration. Just include it in your Gemfile and using Rails generator as usual.

Source code and issue tracking: Welcome to star, fork and pull request at GitHub.
To most Rails developers, just starting or otherwise, the Asset Pipeline is like the magical warp pipe in a certain 8-bit – and its many incarnations – video game most of us grew up with.

And maybe it IS that magical warp pipe that takes us to a whole new world. That’s pretty much what the asset pipeline does. It takes us to a different, and more efficient, world.

If you’re anything like me, you’ll want the TL,DR first. Think of it as finding that one awesome pipe and warping to the last level. Continue Reading...
July 02, 2014
We show you how you can build a custom query using AREL in this video tutorial.
Fun fact: rails just swallows exceptions in after_commit hooks, never to be seen again ...
fix it via gem or monkeypatch
Method visibility in ruby
Want to know about method visibility works in ruby (private public protected), some interesting corner cases and ruby 2.1 related updates? Then read this blog post :)
In case you want to add fulltext (mysql/postgres) query support to your models and you don't want to install additional search engine servers, check out attr_searchable:

Please find a few examples of query string queries:"Joanne Rowling Harry Potter")"author: Rowling title:'Harry Potter'")"price > 10 AND price
I wrote a blog post about how to bring in Ruby gems or Rails source code together with your app to do some debugging. Digging into source code really shouldn't be difficult.. Check it out here!

How to Debug Rails with Your App
A simple strategy to detect spikes in Tweets and how to create a bell that rings at each goal using Raspberry Pi.
Check it out
July 01, 2014
Last week, I wrote about methods with consistent return values, and how they'll make your code simpler. But how does that happen? Why does the right refactoring make your code easier to work with? What makes good abstraction good, and bad abstraction bad? I mean, you can’t just blindly rearrange your code and end up with quality software. If you can learn why these techniques work, you’ll be better able to understand where your code needs help. And you’ll be able to use the right tools where they matter the most.
I've created step by step guide to creating digital clock in Ruby Shoes.
Ruby blocks precedence
Carlos Antonio talks about the precedence difference between the curly braces {...} and the do...end Ruby's blocks notations, and how that subject even generated an issue in Rails issues tracker.

Read the full blog post here.
Everyone has their goto list of gems when they start a new project. Here's a look at my standard Gemfile for new projects
I just released mandriller 0.1.0. It's a simple gem for Mandrill SMTP API integration. Just replace ActionMailer::Base to Mandriller::Base, then put some lines for settings!
June 30, 2014
Just released rufus-lua 1.1.1, a Ruby - Lua (5.1.x) bridge. This release includes work and ideas from Matthew Nielsen and Nathanael Jones, many thanks to them.
Following a progressive path when developing gems and following semantic versioning results in fast-growing major version numbers. With two examples I explain my dilemma and open the discussion for proper versioning of Ruby gems.
Short (15 minutes) video demonstrating the awesome mutation tester Mutant.

I recorded it without a script, which is interesting as you see me stumble for a bit before discovering I actually had some redundant code, which is one of the cool things that Mutant will do for you.

Go watch the screencast!
In the previous episode we looked at CALayer and how easy it makes animating your views. We're going to expand on this by looking at a class I mentioned at the end of that episode called AVPlayerLayer, and it's buddy AVPlayer. Using these classes you can creating custom designed video players and animate them in the same ways that you can animate CALayer (because AVPlayerLayer is a subclass of CALayer), without making the video jump, it's all very smooth.
June 29, 2014
ITTIA DB SQL is selected as an "Editor's Choice Award" by the respected Embedded Computing Design magazine. ITTIA DB SQL continues "targeting embedded systems, mobile devices, and other Internet of Things (IoT) appliances that require non-stop access to data", allowing manufacturers to benefit from relational model and SQL to build fast, scalable, reliable and highly available applications.
A small blog post on how to test Sinatra application methods, without having to perform full requests. More isolation easier. Testing Sinatra application methods in isolation with RSpec
We show you some eager loading techniques in this ~ 13 minute video.
I've just developed this gem called Active Admin Jcrop that adds an image cropping functionality to Active Admin. I guess it's really useful in many projects.



Hope you like it and please feel free to contribute :D

Hello, I've put together another command line tool for the World Cup 2014 in Brazil that lets you query the football.db HTTP JSON API and prints today's matches. For example, typing on Jun/29 $ ojogo will print
Netherlands (NED) vs Mexico (MEX)
Costa Rica (CRC) vs Greece (GRE)
That's it. More info. Cheers.
If you are looking for a gem which allows you to define attributes in your model and you care about performance, please check out fast_attributes.

You can also look at performance comparison benchmark with other popular gems like virtus and attrio.
June 28, 2014
Test multiple rubies and gemfiles locally without Appraisal
I just launched DuckPond version 1.2 - it's either a good idea or a horrible idea, I haven't quite made my mind up yet! I also recorded a screencast which gives a quick run through of the functionality the gem provides.
June 27, 2014
Today I've released the first release of Pushr. Use Pushr to send push notifications using Redis to Android or iOS devices from Ruby or Rails applications. It's fast and lightweight!
It is often useful to know how many records are associated with a model identified as being the parent in a belongs_to relationship. Active Record's default behavior is to determine this number using a COUNT(*) query. Fortunately, you can avoid this additional costly query by caching the associated record account with a few simple modifications to your Rails application. Read the tutorial.
A quick tutorial for building a rails API as an engine. Rails API as an Engine.