Railsware Blog

on product management, engineering, design, culture and many more...

Libskypekit and Skypekit – C and Ruby interface for Skype

Preface There are two methods to programmatically use Skype: Via the native desktop Skype application using Skype Desktop API Via SkypeKit Runtime using SkypeKit SDK wrapper. The first method is rather slow due to an interaction with the user interface. The second one is more interesting as there is no …

Speed up your ActiveResources!

Preface In non trivial projects we often use SOA approach. Thereby one big monolithic application can be segregated into smaller applications or services. The benefit is obvious – it’s easy to control and maintain small applications. If you use Rails framework you probably already use ActiveResource for requesting your services …

Capybara with Given/When/Then steps in acceptance testing

Capybara with Given/When/Then steps in acceptance testing. Many of us use cucumber to write acceptance tests. We must to say it’s very nice tool that allows you to write features in English plain text. The main goal is provide interface that should be clear for Customer(non-programmer) and Developer. Cucumber example: …

Accessing application session in Capybara

Trouble There are some cases when you may need to access application session in your tests: User signup or registration flow is too long. Application use another backend and store result into session. In each story you must repeat the same steps. You can actually use some shared code but …

Testing gem integration with multiple ruby frameworks

Preface When you develop some cool gem that should work in different ruby frameworks you definitely should write acceptance tests. Nowadays it’s pretty easy to do with RSpec+Capybara. Your goal Assume you develop MyRackMiddleware gem that should work in Sinatra and Rails application. Your actions Create gem layout To create …

CapHub – multiple applications deployment with Capistrano

Today we’ll talk about deploying multiple applications via single Capistrano project, managing its deployment configurations in a single place. This approach is a must for projects with multiple applications deployment and recommended for any other project using Capistrano for deployment. We’ve created a tool called Caphub for simplifying creation of …

Posting delivery events to Google Calendar

Introduction One day our client asked us about product deployment notification. Initially we wanted to use mail-list or create special skype chat, but it turned out to be unreliable and inconvenient: hard to filter notification emails hard to track deploment history newly added person can’t observe old events So we …

Advanced server definitions in Capistrano

What if you have several servers with different users, ssh-keys, and even port numbers? How to manage all this stuff flexibly ? This tutorial covers poorly documented Capistrano features for advanced servers and roles configuration. Many of them obtained via digging into Capistrano sources. This article covers following Capistrano topics: …

Capistrano delivery via Patch

Today we’ll talk about lightweight deployment method for your applications via Capistrano. Preface Standard capistrano deployment via ‘cap deploy’ is quite sufficient, but the standard deployment isn’t very fast. Each time, you have to do following: check out the code create symbolic links run your custom tasks switch to a …