RubyFlow : The Ruby Community Blog

Home   Submit   Sign Up   Log In   leaders   Twitter   RSS Feed  
September 03, 2014
We just posted new article on our blog - it is really usefull when you translate languages with many plural forms.
My First Ruby Gem
I came across this excellent walkthrough about creating a rubygem and thought that it would be helpful to others.
I just posted an article Seamlessly Navigate Rails Projects With Tmux. I hope you find it useful!
A good read demonstrating how using service objects decouples concerns, simplifies testing and helps produce clean, maintainable code: Service objects in Rails will help you design clean and maintainable code. Here's how..
Each acceptance test tells a story: a logical progression through a task within an application. As developers, it’s our responsibility to tell each story in a concise manner and to keep the reader engaged, aware of what is happening, and understanding of the purpose of the story.

At the heart of understanding the story being told is a consistent, single level of abstraction; that is, each piece of behavior is roughly similar in terms of functionality extracted and its overall purpose.
September 02, 2014
Exceptions should be exceptional, they should be unexpected. But how unexpected can an error be if you see it thirty times a day?

Most noisy exceptions fall into a few basic categories. And for each of these categories, you can use some patterns to cut down the noise and make your users happier at the same time.
The Serialization Duck Type
We're going to take a look at common Duck Types in Ruby.

First off, let's take a look at the Serialization Duck Type and see how it provides a simple informal interface for converting objects to and from strings.
How to get raw sound track from SoundCloud with Ruby?
I blogged about the value of the docs badge provided by Inch CI and what project maintainers can get out of it.

Read more
After migrating several projects from Cancan to Pundit i've wrote a simple DSL for make writing Pundit's rules easier pundit_dsl
Role-Based Authorization in Rails
I’ve written an article on Rails authorization, showing how to implement simple role-based authorization, and comparing the Pundit and CanCan gems, with links to the rails-devise-roles example application, which you can generate with Rails Composer.
September 01, 2014
For my personal purpose i needed to map complex and unstructured csv files, i've wrote a gems csv2hash for help me to do that, is a parser based rules, i hope this gems can be useful for another persons.
In this post, I show you how to build alternative many-to-many relationships without creating join tables.

I just wrote an introduction about how the new gems active job and global id interact in rails 4.2
August 31, 2014
FastAttributes is a gem which defines attributes with their types in your model and does it in the fastest way. Version 0.7.0 is just released and since now, it supports lenient data types.
Green Ruby News #82
Finished my weekly links harvesting, check the result on Green Ruby News #82.
Make the most of SQS using Ruby
While not particularly famous in the Ruby community, SQS is a really amazing queueing service, check out what it can do for you and how little Ruby code you have to write to use it.
August 30, 2014
DescriptiveStatistics is a gem that adds methods to the Enumerable module to allow easy calculation of basic descriptive statistics of Numeric sample data in collections that have included Enumerable such as Array, Hash, Set, and Range. The statistics that can be calculated include Number, Sum, Mean, Median, Mode, Variance, Standard Deviation, Percentile, Percentile Rank, Descriptive Statistics, and Quartiles.

When requiring DescriptiveStatistics, the Enumerable module is monkey patched so that the statistical methods are available on any instance of a class that has included Enumerable. For example with an Array:

> require 'descriptive_statistics'
=> true
> data = [2,6,9,3,5,1,8,3,6,9,2]
=> [2, 6, 9, 3, 5, 1, 8, 3, 6, 9, 2]
> data.number
=> 11.0
> data.sum
=> 54.0
> data.mean
=> 4.909090909090909
> data.median
=> 5.0
> data.variance
=> 7.7190082644628095
> data.standard_deviation
=> 2.778310325442932
> data.percentile(30)
=> 3.0
> data.percentile(70)
=> 6.0
> data.percentile_rank(8)
=> 81.81818181818183
> data.mode
=> 2
> data.range
=> 8
August 29, 2014
Creating a simple ToDo with Rails
Creating a simple ToDo application With Rails.
Amazon provides Simple Queue Service also knows as SQS. It is a fast, reliable, scalable, fully managed message queuing service in the cloud that you can use from your applications. This is how you can use it from Sinatra/Ruby.
Imagine developing an application where you need to grab shipping data in real time, send products, inventory, and order information over at least ten different APIs including Amazon and eBay. When I first heard that I had to do this, there could only be one answer: “Challenge accepted”. Continue reading.
August 28, 2014
Made a thing that makes setting up configurable gem variables with optional defaults super easy. Implementation details here -
Reading Rails - TimeWithZone
Timezones are not fun.

Thankfully, Rails largely deals with them behind the scenes.
Learn how TimeWithZone works, and when you run into that crazy timezone bug, you'll know where to start looking.
Paperdragon is a new alternative to Paperclip and CarrierWave. Its very explicit API uses Dragonfly under the hood and gives you control about every aspect for processing uploaded images.
ITTIA DB SQL offers big data capabilities for smart embedded systems with limited local resources, enabling the distribution of a large data set across a wide array of devices, and the potential to store millions of rows per device. Applications can then run queries on individual devices, or pool data together in a back-end system for data warehousing and data mining. In this way, developers benefit from highly reliable embedded database software with a strong track record in mission-critical systems.
This is part 3 in my series about living documentation. Here I discuss effective ways to implement end-to-end tests. Part 2 discussed how we can write better living documentation, and Part 1 discussed why you should give living documentation a chance.
August 27, 2014
A fundamental Active Record feature known as eager loading regularly trips up new Rails developers to the detriment of their application's performance. In this post I offer a concrete example illustrating the difference between the includes and joins approaches, complete with a log of the queries executed when each approach is implemented.
Following up on last year's report, here's a chart of Ruby versions used in commercial projects, sourced from Semaphore CI.
After a list of free resources for Ruby beginners, this time we've coined a list of handy Ruby resources to follow for intermediate to advanced devs.
We just wrote a tutorial series on integrating Bootstrap with Rails:

Integrating Rails with Bootstrap, Part 1 - the Installation
Integrating Rails with Bootstrap, Part 2 - CSS and Components
Integrating Rails with Bootstrap, Part 3 - Javascript Based Features
August 26, 2014
Ruby has both symbolic (&&/||) and English logical and/or operators. The differences between these operators can be confusing, to the point that many programmers simply avoid using the English versions entirely rather than deal with their sometimes surprising behavior. I've made a screencast which explains why the very features which make these operators problematic in a boolean logic setting also make them perfect for certain elegant control flow idioms.
The first beta of Rails 4.2 was announced last week, and it already looks amazing. I’m really excited to use ActiveJob, Web Console, Adequate Record, and Foreign Key support in my own apps. But the beauty of Rails is in the details. And if you do a little digging, you’ll find some less advertised features that will totally improve your daily work with Rails.
Heroku is awesome. It's a great first stop for deployment. But when is it not the right thing?

Let's talk money, architecture and customizaton. And also about when Heroku is right.
Hi guys! I just released normalizr - lightweight and flexible solution for attribute normalization. Check this out!
We recently had to set up a MS SQL database on a Mac for a client project. So, we thought we'd put together this mini tutorial just incase you ever have to do the same.
August 25, 2014
Postgres has a reputation of being hard to set up, but it seems things are changing now. check out our blog post on how to install Postgres for Mac OS X!

Install PostgreSQL on Mac
We’ve just unveiled the first release of Praxis, a ruby framework that takes a different approach to creating APIs.
With Praxis you can have different sets of people design, review and implement your API, while resting assured that the resulting code is always consistent with your API specs.
Building APIs with Praxis leads to better designs, faster developer times and result in precise documentation that is apt for both human (web browsable) and machine consumption (JSON definition files).

Check out the blog announcement and the project page for more information. The sources can be found at: Github
An open source extension that integrates PayU payment gateway with Spree stores.
I found this article/blog post from 2009 regarding caching. Still relevant.

Caching in the controller
I'm reading Rails source code and wanna share what I have learnt as a series of blogs. Here is the first one, How Rails initializes itself.
August 24, 2014
Green Ruby News #81
Like every week, here is a fresh list of the links from last week on Green Ruby News #81.
When you want to write a mobile app, but you don't want to quit Ruby, it's worth looking into Rhodes. Unfortunately it might not be so simple to use it on Ubuntu (or any other Linux). Also it won't work out of the box with anything newer than 1.9.3. I wrote a simple how to bypass all of those issues: Installing Rhodes on Ubuntu and making it run on Ruby 2.1
A tiny Ruby script to generate a Dockerfile from a Dockerfile.erb template.
August 22, 2014
Could JRuby have made the largest contribution to the Ruby community? JRuby gives you access to an additional 84,000 libraries.

JRuby: Performance Plus the Whole Java World on a Silver Platter
Hi guys, I just created, a colorful and fun facebook terminal client, which helps you interact with facebook without being distracted by images in a compact way.
A lot times when you run rake tasks it would be nice to get output from rails logger into STDOUT. The simplest way to do it is to create a new rake task that will redirect output to STDOUT.
August 21, 2014
Hello, I've put together a new world data gem, that is, worldlite, that includes all the world countries as good ol' ruby code - no database required, no dependency, and all code and data is public domain, that is, no copyright and no rights reserverd. Try it. Use require 'worldlite'; include WorldLite and
>> WORLD.size # => 245
>> WORLD_UN.size # => 193
>> WORLD_G20.size # => 20

and so on. For countries try:
>> # => WorldLite::Country
>> # => Austria
>> AT.alpha3 # => AUT

Still early and rough but all the world's countries and territories (246 total) included. Cheers.
Do you know someone who teaches a class or workshop on Rails? I offer my book for beginners, Learn Ruby on Rails, to students enrolled in classes or workshops. See my blog post for details: ‘Learn Ruby on Rails’ Free for Students.
The 1.1 release of Reform brings better reusability for DRY form objects, simplifies and fixes lots of things and allows deserializing JSON and more, to make forms part of your HTTP API, too.
August 20, 2014
I just posted a write-up of using ActiveRecord's .pluck if you only need a subset of model attributes. Check it.