tags: Ruby

Creating and Uploading Huge Archive Files Swimmingly with Ruby

When we have to process a large number of files, we should be aware of the resources the process consumes. Here's the scenario I faced in my work recently: we have to create one archive file from lots of files that are stored on an S3 bucket. Created archive files must be placed on another S3 bucket. The number of files of an archive could be 700,000. The size of each file is up to 10MiB.

Read more →

A Quick Way to Try Stripe Subscriptions With Docker

Stripe provides an easy way to implement subscription services. This document explains how Stripe's subscription works and the things you can. They also provide an example to implement fixed-price subscriptions, like Netflix. You can try the example repository on GitHub and see the whole lifecycle of a subscription. Actually, you don't have to even set up any environment for the example app if you have Docker on your computer. The only dependency is Docker.

Read more →

Using Docker for RubyGems projects

Sometimes I want to create a new gem or modify existing gems to extend/fix them. However, I do not want to install tons of additional development tools on my host machine for that. Recently, I created a shell script which creates an instant development environment on Docker for that. #!/bin/sh -e exec docker run --rm -it \ --workdir=/work \ -v $(pwd):/work \ -v=$HOME/.gitconfig:/root/.gitconfig \ -v=$HOME/.ssh:/root/.ssh \ -v=$HOME/.

Read more →

Creating an Active Job Adapter

Active Job adapter interface I've created an Active Job adapter to run my background jobs on Google Cloud Run via Google Cloud Tasks. Although it is the first time for me to create an adapter for Active Job, this is working very well so far. https://github.com/esminc/activejob-google_cloud_tasks-http Creating an Active Job adapter itself is not so hard. You can see that by exploring the repository above. In fact, Active Job adapters are required to implement only two methods: enqueue and enqueue_at.

Read more →

Sending FCM Push Notifications with Andpush Gem

Recently, I had migrated from GCM (Google Cloud Messaging) to FCM (Firebase Cloud Messaging) because GCM was ending its life. At first, I found fcm gem which supports FCM. I changed my application code to use the gem and I deployed the new version since it was working nicely on the staging. However, as time goes, I realized that FCM notification sometimes stops working when the application runs on multiple threads.

Read more →

Testing Rails Application via Browsers with System Tests

I'm developing a small application which is built on Ruby on Rails, React and Relay. Since the project is based on my personal hobby and just a prototype, I preferred to write application codes rather than to write tests at first. However, as the application grows larger, I had to test the application manually every time when I make changes to make sure it doesn't break other features. The lack of tests made development speed slower.

Read more →

Gentaro "hibariya" Terada

Whatever, Japan
Email me

Loves Ruby, Internet, and Programming.