Ruby doesn’t have procedural module akin to Python or Perl module. Usually, one uses class methods as a typical way to mimic this functionality. Class methods in Ruby are also very handy for supporting instance methods with fabrics and other common-for-class functionality. This is clearly seen in ActiveRecord::Base with dozens …
Railsware Blog
on product management, engineering, design, culture and many more...
Custom VCR matchers for dealing with mutable HTTP-requestsVCR is a powerful beast which makes HTTP-request mocking a real no-brainer. If you haven’t tried it before, just do it, it will make your life much easier. VCR works in really simple manner – when you issue request via some HTTP API, at first it records them and on …
VCR is a powerful beast which makes HTTP-request mocking a real no-brainer. If you haven’t tried it before, just do it, it will make your life much easier. VCR works in really simple manner – when you issue request via some HTTP API, at first it records them and on …
Taming The Git-Daemon To Quickly Share Git RepositoryI was once in a hurry to share GitHub repository with a colleague who didn’t have access to it and we decided to use local git-daemon. However, handling all the little quirks that would make it work took a lot more efforts than just dropping a repository archive via Skype. …
I was once in a hurry to share GitHub repository with a colleague who didn’t have access to it and we decided to use local git-daemon. However, handling all the little quirks that would make it work took a lot more efforts than just dropping a repository archive via Skype. …
Useful Google Spreadsheet Script TriggersIn my previous blog post, I’ve provided a brief intro to Google Scripts and with this article, I’d like to share several useful code examples that might come handy. Problem ‘Exceeded maximum execution time’ error message appears while executing a Google Spreadsheet scripts. It usually pops up when a 6 …
In my previous blog post, I’ve provided a brief intro to Google Scripts and with this article, I’d like to share several useful code examples that might come handy. Problem ‘Exceeded maximum execution time’ error message appears while executing a Google Spreadsheet scripts. It usually pops up when a 6 …
iOS Integration Tests With AppiumI came from the RoR web development and – as we all know – Rails community loves tests. Personally, I am a fan of acceptance testing and using mostly capybara for it. So, when I shifted to the iOS development, it was essential for me to find some decent acceptance …
I came from the RoR web development and – as we all know – Rails community loves tests. Personally, I am a fan of acceptance testing and using mostly capybara for it. So, when I shifted to the iOS development, it was essential for me to find some decent acceptance …
Capistrano recipe for checking Travis CI build statusUsing Continuous Integration is a must for any mature development process, but in the hurry of delivering to production it’s easy to forget about checking build status before issuing “cap production deploy”. What if while running Capistrano deployment, script will automatically check CI status and prevent us from delivering a …
Using Continuous Integration is a must for any mature development process, but in the hurry of delivering to production it’s easy to forget about checking build status before issuing “cap production deploy”. What if while running Capistrano deployment, script will automatically check CI status and prevent us from delivering a …
Intro to Google ScriptsDid you ever know that you can create custom scripts for Google Spreadsheets? The ones that would allow you easily manage your data, i.e. copy it, move between spreadsheets, calculate complex cases and create specific functions for further re-use in other projects. Do almost anything you want… just like in …
Did you ever know that you can create custom scripts for Google Spreadsheets? The ones that would allow you easily manage your data, i.e. copy it, move between spreadsheets, calculate complex cases and create specific functions for further re-use in other projects. Do almost anything you want… just like in …
Using Forward Declaration In Your Objective-C ProjectsIf you’re new to Objective C and iOS development, this topic will explain some important things about Forward Declaration and will help you understand the concept behind it. So, let’s skip the theory and jump right into a small example to see what it’s all about. We’ll create a small …
If you’re new to Objective C and iOS development, this topic will explain some important things about Forward Declaration and will help you understand the concept behind it. So, let’s skip the theory and jump right into a small example to see what it’s all about. We’ll create a small …
Globalize Your ConfigurationQuite a lot of applications face the problem of storing configuration data, where configuration differs for development, test and production environments. Yaml files is a common way of organising application settings. They help make our configuration clean, as well as allow loading it somewhere to constant or global variable and …
Quite a lot of applications face the problem of storing configuration data, where configuration differs for development, test and production environments. Yaml files is a common way of organising application settings. They help make our configuration clean, as well as allow loading it somewhere to constant or global variable and …
3 Patterns for Storing Tree Structures in the RDBMSHello my dear friends. Today, we’ll talk about storing tree structures in the RDBMS (Relational Database Management Systems: e.g. MySQL, PostgreSQL, Oracle, etc.). While this can be an easy topic for some of you (if “Nested Sets” and “Materialized Path” sound familiar, you probably won’t find anything new here), I’ve …
Hello my dear friends. Today, we’ll talk about storing tree structures in the RDBMS (Relational Database Management Systems: e.g. MySQL, PostgreSQL, Oracle, etc.). While this can be an easy topic for some of you (if “Nested Sets” and “Materialized Path” sound familiar, you probably won’t find anything new here), I’ve …