RubyFlow : The Ruby Community Blog

Home   Submit   Sign Up   Log In   leaders   Twitter   RSS Feed  
November 06, 2014
A short walkthrough of how to configure Pronto to do static analysis on every pull request with the help of Travis. Can also be applied to other CI servers.
Sometimes you want to see what's happening in your production log files right now. You can use log management tools like Loggly or Papertrail for this, but there is also an easy way to stream your log files with Capistrano.

Read on
November 05, 2014
A step by step walkthrough of how to make browser to phone calls in Rails using Twilio
I would like to introduce to you a small gem that I released last weekend. It's called scriptster and its aim is to help you make your Ruby scripts a bit nicer (especially those that depend on many external tools).
Hello, As an example of using the beer.db - open public domain beer n brewery data - I've put together a page-a-day "eternal" calendar serving a different beer w/ every request. See a live demo with an all-Austrian taproom or build your own. All code and data is public domain. Cheers. Prost. Kampai.
November 04, 2014
I just finished the 2014 Rails Rumble Gem Teardown, which is a detailed analysis of the gemfiles used by the rail rumble teams. A ton of fascinating stuff this year, including the rise of Bootstrap, Rails Assets usage, Autoprefixer domination, etc.
For anybody using Ninefold and/or Codeship: The two services now integrate.

You can read more here.
When you generate a scaffold in Rails, you'll see the usual respond_to blocks. But some of your actions, like index, don't have them. And those actions, when hit with a bad format, will raise the wrong kind of error. You want to handle bad formats correctly, but littering all your controllers with big respond_to blocks is crazy. It feels un-Rails-ish. So what do you do?
An example of dependency inversion
I recently stumbled on such a good example of the Dependency Inversion principle being applied that I had to blog about it.
November 03, 2014
I wrote this post on using the rails-disco gem to implement Event Sourcing. The basics of ES are explained using a demo Rails app. Boogie!
How do you benchmark rack middleware? Well read this blog post then go make your code faster.
We’re excited to announce the release of The Bike Shed, hosted by Sean Griffin and Derek Prior. It is a biweekly podcast discussing thoughtbot’s experiences in web development.

Episode one, “Sandi and Derek’s Rules” is now available for download. Sean and Derek discuss lessons learned from following Sandi Metz' rules on a project and the overall impact of rules on code.
Few days ago I've released a satellite gem for image_optim called image_optim_pack. It contains latest versions of nearly all binaries required by image_optim for Mac OS X and Linux platforms (e.g. works on Heroku). It should make optimizing images from terminal, ruby project or Ruby on Rails application even easier.
Tropical Ruby 2015, the beach Ruby conference, will take place during March 5–8th at Porto de Galinhas, a paradisiac beach located in the Brazilian northeast coast.

Avdi Grimm and Nick Sutterer are confirmed keynotes but the CFP is still open. If you want to give a talk or workshop, submit your proposal until December 7th.

Enjoy amazing conversations, stunning landscapes and a superb nature. Come and talk with some of the best Rubyists in this tropical conference.
Check out the second part of BDD on Rails with Minitest by Chris Kottom to see a step-by-step guide how you can use Minitest for complete feature implementation.
You can't expect customers to beat a path to your door because you have a great product. To succeed as a startup, you have to go out and recruit customers manually. Traction: A Startup Guide To Getting Customers gives a primer on how to market effectively. I've shared some nuggets and added some commentary as to why it matters for startups.
November 02, 2014
happy_place allows you to call js functions and pass in variables and partials. It has a simple interface which allows you to write object oriented javascript and use these objects in your controllers.

Here is an example posts controller setup that will respond to html and js. When format is js it will call the coffee script class with the index function passing in a partial with the html that you want to replace.

class PostsController
 def index
  @posts = Posts.all

  respond_to do |format|
    format.js { js partials: {posts: "posts"} }

You can put the following code anywhere but this is where I would put it

# app/assets/controllers/
class this.PostsController
  constructor: ->

  @index: (args) ->

No need for a js view!
Hello rubyists from all over the globe!
Just wanted to share with you our experience on delivering a big Rails 2 to 3 upgrade using a Canary Release approach.

I hope you guys enjoy the reading and feel free to ask any questions. Any feedback is much appreciated!
Green Ruby News #91
Another list of curated links about ruby, rails, webdev and other in Green Ruby News #91.
November 01, 2014
I've released tty-progressbar that displays progress bars in terminal and is super flexible. It is one of the components that is part of tty suite of tools. Please give it a try and let me know what you think!
In this article I discuss why and how to do virtualization in (Ruby) development. Both - Vagrant and Docker are used for initial setup. Provision is done by the separate gem - linux_provision (similar to Oracle Instant Client Provision and OSX Provision).
TheDataRoleBlockRails is a mix of 2 popular frontend solutions ai/evil-blocks and kossnocorp/role with few patches for SLIM and HAML.
Ruby is about to get red hot. Again.
Release notes here.

Notable additions:

- keyword arguments
- beginnings of Rubinius::Console
- Rubinius::Metrics

Please test your code and let us know if you see any issues. Thanks!
October 31, 2014
Memoization is an optimization technique where you cache the results of expensive method calls. When the method is called with the same set of arguments, the cached result is returned. In this post, we will look at how we can implement memoization using Ruby's metaprogramming features. [Continue reading...]
Anonymous functions and closures are a useful concepts included in most modern programming languages. Back to Basics: Anonymous Functions and Closures goes into depth in Ruby and JavaScript on this concept.
October 30, 2014
RSpec gives you a number of ways of setting up prior to test runs, but only some of these have direct analogs in Minitest. In this post, I show you the code that will let you approximate RSpec's features (and explain when and why you might want to avoid using it).
Not a fan of RVM or rbenv for installing Ruby on your production/development servers? Ruby 1.9.2, 1.9.3, 2.0.0, 2.1.x for Debian, Ubuntu, CentOS, RHEL, Fedora is now just a download away.
The very real danger with commenting code is that it becomes outdated while the codebase rapidly evolves. And out of date comments are far worse than no comments. So what's the alternative?How to write code that speaks for itself.
In this post we will explore how we've implemented feature flags in a current web-application we're working on. It's a very simple process which means there are no excuses not to use a feature flag in your application.
October 29, 2014
I just wrote article about Zopfli Compression Algorithm and Zopfli-ffi Ruby wrapper.
Last weekend I set myself to customize content_tag to allow dynamic tag generation.

Too vague? Head over to my blog and read about it ;)
Trailblazer introduces several new abstraction layers into Rails. It gives developers structure and architectural guidance and finally answers the question of "Where do I put this kind of code?" in Rails. My book's first sample chapter is available now as a free download.
October 28, 2014
ITTIA DB SQL is a proven choice for robotic data storage, providing a safe and efficient way to update and query local data on various embedded platforms. With ITTIA DB SQL, data is always available to multiple concurrent tasks and can be easily distributed to other robots and control systems . As a result, robots become autonomous data analysts and decision makers.
Delayed Job Plugin to kill Heroku worker processes!
I just published a post about how to test execution of a before_filter with RSpec custom matcher.
I’m so delighted with the new Active Job feature I decided to release a new example application and tutorial right now, rather than waiting for Rails 4.2 final. Here's Mailing List with Active Job plus an article, Updating to Rails 4.2. Of course, you can build it with Rails Composer.
You're working with a brand new library or feature, and you just can't understand the documentation. Maybe it's hard to set up, so you have to bounce between RDocs until you learn how everything fits together. Maybe the documentation doesn't even exist. Or maybe you just learn best by seeing lots of examples. You need some help. But where do you learn how to use a feature, if not its documentation?
We have just released version 2.2.0 of our Intercity Chef Repository
Take care of your joints! Replace `console.log` with `log` in your Rails App. 5 minutes gem for for Great Good!
Representable 2.1 Is Faster!
The new representable release allows to skip rendering and parsing of properties dynamically. This allows to exclude properties at run-time, e.g. to reflect permission restrictions. It also got faster and we added a debug mode to help understanding what Representable does internally.
October 27, 2014
The protected method visibility in Ruby is one of its more confusing aspects. I recently took a closer look at it, and found that it has an interesting use case. [Continue reading...]
Handling exceptions is really important. I wrote a short post on how to handle reentrancy and other failures in Sidekiq workers: Adding reentrancy and a on failure fallback for your Sidekiq workers
A lot of people use RSpec to do TDD/BDD, but in this two-part tutorial Chris Kottom shows step-by-step how you can use Minitest to do the same thing.
A couple of practical tips on setting up perfect pair programming configuration What’s a Pair to Do.
October 26, 2014
Green Ruby News #90
Green Ruby News #90 like every sunday night, some links of the week about ruby, rails, webdev and devops.

I have just launched - a SaaS app, which will bring out all the data from your Rails application to non-developer users in beautiful charts!

Writing export scripts to 3rd party analytics services was yesterday. Sunalytics uses Active Record to find the relationships between the database tables and presents them in a friendly interface.

Give me a shout of your impressions at support @ sunalytics . co

Thank you!
There was an article featured in RubyWeekly that mentioned business as an essential skill for developers. I used to blog about business and marketing, but stopped. That article encouraged me to start again. Here's a blog post on how to initiate word of mouth and reach more of your target customers.
Introducing ImageDrop gem
I just released the ImageDrop gem and demo. Good for avatars and such.

Transform the lowly file input field into sophisticated looking drag-and-drop targets, complete with a preview image and placeholder text, with only 988 chars of minified js.
October 25, 2014
I wrote an article about how rails handles exceptions in your app , have a look !