Automatically restart struggling Heroku dynos using LogEntries
We have a Rails app hosted on Heroku which periodically develops a memory leak, pushing it well over Heroku’s per-dyno memory quote and slowing everything down as it hits swap. The issue is intermittent, random, and only happens every few days but it’s easy enough to deal with, just restart the dynos. However it has a Read More »
Getting accurate code coverage metrics from SimpleCov in a Rails project
We use SimpleCov to track code coverage of our tests in Rails projects. For coverage to be in any way useful as a metric it needs to be accurate. We noticed that files for which we had no tests were not being tracked and not included in the coverage. Therefore, our coverage metrics were artificially high and Read More »
Using Pow with RVM 1.19’s .ruby-version and .ruby-gemset files
With the upgrade to RVM 1.19 you are asked to convert your old .rvmrc file into .ruby-version and .ruby-gemset files. You are using ‘.rvmrc’, it requires trusting, it is slower and it is not compatible with other ruby managers, you can switch to ‘.ruby-version’ using ‘rvm rvmrc to [.]ruby-version’ or ignore this warnings with ‘rvm Read More »
Job: Full time Web Developer
Storm is a web development agency based in Bath, UK with a growing reputation. To meet our ever increasing demand we’re looking for some new talent to join our skilled team. Role: Web Developer Basis: Full time Salary: Based on experience Location: Storm HQ, Bath, UK
How to save the uploaded file name with carrierwave_direct and S3
So you’ve setup carrierwave_direct and you’re happily uploading files to Amazon S3. In this example I’ve mounted CarrierWave on a field called csv_file, but that can be whatever is appropriate to your app. You’ve probably got two controller methods def upload @model = Model.new @model.save @uploader = @model.csv_file @uploader.success_action_callback = upload_successful_model_url(@model) end def upload_successful @model Read More »
6 Ways to get More Bang for your Heroku Buck While Making Your Rails Site Super Snappy
We love Heroku. It makes deployment so easy and quick. However, it can start to get pricey when you add additional dynos at $35 each a month. With a small amount of work, you can get a lot more out of your Heroku hosting whilst drastically improving the performance of your site. You might need Read More »
Using tomdoc to document a scope in a Rails model
I’m playing around with Tomdoc for documenting my latest Rails project. The documentation is (ironically) a bit thin on the ground. It’s taking a bit of trial and error to get some things working. The most recent brainteaser was how to get tomdoc (or even rdoc) to document a scope declared on a Rails model.
Rails caching: expiration silently fails when called from the console or rake tasks
I have an application where a lot of work gets done behind the scenes by worker processes, scripts and rake tasks. I have a sweeper for one of my models to clear out some caches that can’t be cleared automatically using DHH’s key-based expiration technique. The cache keys in this use case are simple strings.
Ruby on Rails: How to open the source for a ruby gem easily using bundler
No matter how good the documentation for a Ruby gem might be, from time to time you’ll probably need to dig around in the code to check or confirm exactly what it does, or what options it might take.
Ruby on Rails gotcha: updating child records with callbacks and nested attributes
I recently ran into a bit of a gotcha concerning the way nested records get updated in Rails, which in hindsight makes total sense, but caused some confusion at the time.