An open API service indexing awesome lists of open source software.

Projects in Awesome Lists by driftingruby

A curated list of projects in awesome lists by driftingruby .

https://github.com/driftingruby/042-fullcalendar

Learn how to incorporate FullCalendar into your Ruby on Rails application with listing and creating events. Using unobtrusive javascript, we can create a fast interactive calendar.

Last synced: 05 Apr 2025

https://github.com/driftingruby/template

Base template for "all" Drifting Ruby episodes

Last synced: 09 Apr 2025

https://github.com/driftingruby/186-nested-forms-from-scratch-with-stimulusjs

Using StimulusJS controllers, adding nested forms to a Rails application is easy and unobtrusive. In this episode, we look at an alternative way of creating nested forms without the Cocoon gem.

javascript ruby rubyonrails stimulusjs

Last synced: 24 Jan 2025

https://github.com/driftingruby/051-rails-api-authentication-with-jwt

Using the knock gem, we will add JWT Authentication to our Rails API Application.

Last synced: 10 Sep 2025

https://github.com/driftingruby/294-building-a-questionnaire

Using StimulusJS and nested forms, we create the first parts of a questionnaire. Dynamic surveys can be difficult to architect and maintain. In this episode, we take a simple approach to creating questionnaires.

hotwire questionnaire ruby rubyonrails stimulusjs survey turbo

Last synced: 24 Jan 2025

https://github.com/driftingruby/275-hotwire

Hotwire is the newest magic which takes a different approach to building modern web applications without using much JavaScript.

hotwire ruby rubyonrails stimulus turbo

Last synced: 24 Jan 2025

https://github.com/driftingruby/070-nested-forms-from-scratch

Learn how to handle multiple models in a single form with accepts_nested_attributes_for and learn how to add and remove nested records through JavaScript.

Last synced: 10 Jul 2025

https://github.com/driftingruby/154-service-objects-for-api-interactions-with-twilio

In this episode, learn how to extract the interactions with an external API into a service object so that code is isolated and interchangeable.

rails ruby ruby-on-rails service-objects

Last synced: 05 Apr 2025

https://github.com/driftingruby/029-infinite-scrolling

Infinite scrolling is now a common feature and there are several cases where it is really useful. For instance there are some websites where we simply can’t imagine a good pagination system, like Twitter or even Facebook.

Last synced: 05 Apr 2025

https://github.com/driftingruby/082-datatables

The DataTables Javascript library creates a powerful display of your application's data. Some of the features include pagination, server side processing, sorting and search.

datatables javascript rails ruby ruby-on-rails

Last synced: 31 Jul 2025

https://github.com/driftingruby/065-searchkick-and-elasticsearch

Add full text searching using Searchkick and Elasticsearch. Here I will show the steps involved in adding this search to an existing application and a sample of autocomplete functionality.

Last synced: 05 Apr 2025

https://github.com/driftingruby/046-two-factor-authentication

Add multi factor authentication to your existing authentication solution. This gives your users the option to increase the level of security to their account and help prevent unauthorized access.

Last synced: 05 Apr 2025

https://github.com/driftingruby/191-inline-editing-records

Using Rails UJS, we create an interactive row editing solution without using any kind of Javascript frameworks.

javascript rails-ujs ruby ruby-on-rails

Last synced: 05 Apr 2025

https://github.com/driftingruby/067-decoding-and-interacting-with-barcodes

Using the QuaggaJS Library, learn how to scan and decode barcodes with your Ruby on Rails application. Using provided callbacks, interact with controller actions to provide a seamless experience.

Last synced: 05 Apr 2025

https://github.com/driftingruby/035-importing-and-exporting-csv-data

Basics on importing and exporting CSV Data using Ruby and without gems.

Last synced: 05 Apr 2025

https://github.com/driftingruby/033-progressive-render

Slow content got you down? Load it later! Use this gem to defer loading of portions of your page until after load. They will be fetched via AJAX and placed on the page when ready.

Last synced: 09 Apr 2025

https://github.com/driftingruby/074-page-specific-javascript-in-ruby-on-rails

Sometimes you may find yourself with an application that has javascript that needs to execute only on a specific page. This episode lays the foundation to easily manage page specific javascript.

Last synced: 19 Jul 2025

https://github.com/driftingruby/395-transcribing-with-artificial-intelligence

In this episode, we look at creating an audio transcription service which allows files uploaded from Active Storage to be transcribed with Artificial Intelligence. However, there are a lot of considerations around the approach from both a performance and thread safety perspectives.

artificial-intelligence openai ruby ruby-on-rails whisper

Last synced: 15 Feb 2025

https://github.com/driftingruby/317-error-tracking-from-scratch

In this episode, we look at creating a middleware to track errors to publish to another error "from scratch" error monitoring application.

error-tracking middleware rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/047-authorization-with-pundit

Prevent unauthorized access to your application with Pundit; an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access.

Last synced: 14 Jul 2025

https://github.com/driftingruby/085-working-with-subdomains

Learn to create a multi-tenant application where access to tenants are determined by the subdomain.

multitenancy ruby-on-rails

Last synced: 15 Feb 2025

https://github.com/driftingruby/335-hotwire-modals

In this episode, we look at creating an unobtrusive and efficient way to launch Bootstrap modals using Turbo and Stimulus.

hotwire stimulusjs turbo

Last synced: 27 Mar 2025

https://github.com/driftingruby/071-nested-forms-with-cocoon

Using the unobtrusive gem, Cocoon, learn how to handle multiple models in a single form with accepts_nested_attributes_for.

Last synced: 09 Apr 2025

https://github.com/driftingruby/041-dry-up-your-javascript

Learn how avoid duplicate code to reuse existing javascript.

Last synced: 09 Apr 2025

https://github.com/driftingruby/086-plotting-points-on-a-map-from-scratch

Using the Google Maps Javascript API, learn how to plot markers onto a map. Load markers and info windows through AJAX calls to your Rails JSON API.

google-maps-api google-maps-javascript json-api rails ruby-on-rails rubyonrails

Last synced: 09 Apr 2025

https://github.com/driftingruby/094-recurring-events-on-full-calendar

Create recurring events and interact with them on FullCalendar.

Last synced: 05 Apr 2025

https://github.com/driftingruby/290-multiple-resources-with-devise

Sometimes we get into situations where our applications requires a different type of user account which wouldn't really fit into a role. So, in this episode we look at creating multiple resources for authentication with Devise.

Last synced: 10 Jul 2025

https://github.com/driftingruby/027-wysiwyg-with-summernote

Integrate Summernote WYSIWYG Editor into your application. Learn how to use AJAX callbacks to filestore your images instead of database Base64.

Last synced: 09 Apr 2025

https://github.com/driftingruby/236-google-maps-api-with-stimulusjs

Add unobtrusive maps to your application using StimulusJS to tie in Google Maps Javascript API and Places API.

google google-maps-api google-maps-javascript-api javascript rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/028-wysiwyg-with-trix

Compose beautifully formatted text in your web application. Trix is a WYSIWYG editor for writing messages, comments, articles, and lists.

Last synced: 09 Apr 2025

https://github.com/driftingruby/080-routing-partials

The routes file can grow to be unmaintainable and messy. Learn to keep things organized by extracting out blocks of routes into their own files.

Last synced: 09 Apr 2025

https://github.com/driftingruby/039-action-cable-part-3-securing-your-websockets

Using authentication and authorization, lock down your ActionCable WebSockets so that messages are only sent and received to the intended users.

Last synced: 09 Apr 2025

https://github.com/driftingruby/045-authentication-crash-course-with-devise

Devise is a flexible authentication solution for Rails based on Warden. Learn how to add a stable authentication solution like Devise to your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/043-antivirus-uploads-with-clamby

Using ClamAV, scan files uploaded to your application for viruses. In the event of a virus learn how to gracefully handle the infected file and notify the user.

Last synced: 09 Apr 2025

https://github.com/driftingruby/050-rails-api-active-model-serializers

Using ActiveModel::Serializer, learn how to create the JSON responses for your Rails API application. ASM is a great object oriented approach to building a JSON API.

Last synced: 04 Sep 2025

https://github.com/driftingruby/061-periodic-tasks-with-sidekiq-cron

Using a third-party add-on, sidekiq-cron, we can create periodic tasks to extend the functionality of sidekiq.

Last synced: 09 Apr 2025

https://github.com/driftingruby/092-restricting-access-by-ip-address

Learn to lock down your application or parts of your application by IP Addresses.

ip-address rails ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/286-turbo-native-for-ios

In this episode, we look at modifying our Rails application and building a hybrid native application for iOS using Hotwire.

Last synced: 09 Apr 2025

https://github.com/driftingruby/326-dabbling-with-turbo

In this episode, we explore some of the new features with Turbo and interactions that we can do with little or no javascript.

hotwire rails turbo

Last synced: 09 Apr 2025

https://github.com/driftingruby/378-stimulus-outlets-api

Outlets let you reference Stimulus controller instances and their controller element from within another Stimulus Controller by using CSS selectors. In this episode, we look at a simple example and then refactoring some older code where we used some workarounds to communicate with other stimulus controllers.

Last synced: 09 Apr 2025

https://github.com/driftingruby/201-working-with-large-data

When database tables get large, things can slow down significantly. In this episode, we look at a few things which helps keep databases performant and the client side responsive.

Last synced: 09 Apr 2025

https://github.com/driftingruby/307-hotwire-turbo-replacing-rails-ujs

In this episode, we look at some common functionality that we got with Rails UJS and what it looks like to reimplement these with Hotwire's Turbo and StimulusJS.

hotwire javascript rails rails-ujs stimulusjs turbo

Last synced: 09 Apr 2025

https://github.com/driftingruby/382-custom-turbo-stream-actions

With the release of Turbo 7.2, we gained the ability to create custom actions in Turbo. This allows us to trigger functions on the client side that would have been difficult or cumbersome to do in the past. In this episode, we look at setting up custom actions and how to use them.

Last synced: 09 Apr 2025

https://github.com/driftingruby/249-soft-delete-with-discard

Soft deletes for ActiveRecord done right.

Last synced: 09 Apr 2025

https://github.com/driftingruby/103-sample-data-with-factory-bot-and-faker

Factory Bot is a fixtures replacement which can generate the needed records directly in the tests. Faker can be used to create fake data for these records.

rails ruby testing

Last synced: 09 Apr 2025

https://github.com/driftingruby/408-broadcasting-progress-from-background-jobs

In a previous episode, we had created a custom ActionCable channel to assist in broadcasting updates from a background job. With the introduction of Turbo, we can simplify this process as we look at a few different approaches in displaying a progress bar with real time updates from background jobs.

background hotwire-stimulus hotwire-turbo jobs real-time-progress-bar

Last synced: 09 Apr 2025

https://github.com/driftingruby/002-impressionist

A lightweight plugin that logs impressions per action or manually per model

Last synced: 09 Apr 2025

https://github.com/driftingruby/100-basic-testing-introduction-in-rails

Using the Rails 5.1.X defaults, we have a look at what is configured and explore the different types of tests; using the provided MiniTest and Capybara.

rails testing

Last synced: 12 Jun 2025

https://github.com/driftingruby/010-invisible-captcha

Part of a good User Experience is making your application easy to use for your users. However, a few bad apples often cause a hinderance to your UX/UI by the addition of Captchas. Learn how to create invisible captchas to protect your forms while delivering a good UX.

Last synced: 09 Apr 2025

https://github.com/driftingruby/104-speeding-up-tests

Slow tests can slow down your development process. Using parallel_tests, you can speed up your test suite by multiple threads and running the tests in groups.

ruby ruby-on-rails rubyonrails test-automation

Last synced: 09 Apr 2025

https://github.com/driftingruby/158-grab-bag-of-ruby-and-ruby-on-rails-tricks

In this episode, we look at various tips and tricks.

ruby ruby-on-rails tips-and-tricks

Last synced: 26 Aug 2025

https://github.com/driftingruby/004-serialized-attributes

Store multiple attributes and values using a text column. Not for everyday use, but has situations where it can save on the number of columns and/or models needed to accomplish a task.

Last synced: 02 Jul 2025

https://github.com/driftingruby/037-actioncable-part-1-configuration-and-basics

A walkthrough on configuring ActionCable with Rails 5. Learn how to configure your mount points and the basics of using ActionCable with your Rails application.

Last synced: 04 Jul 2025

https://github.com/driftingruby/162-creating-a-simple-slack-bot

Slack is a great application to keep in contact with friends, coworkers and a community. With bots, its capabilities are endless. In this episode, learn how to create a Slack Bot to interact with.

Last synced: 04 Jul 2025

https://github.com/driftingruby/277-diving-into-hotwire

In this episode, we look at the installation scripts of Hotwire and get a better understanding of what they're doing in order to integrate it into our applications more efficiently.

Last synced: 09 Apr 2025

https://github.com/driftingruby/223-like-relationships-and-global-id

In this episode we create a Like/Unlike system where users can like posts and use Global ID to obfuscate IDs.

controllers global-id models relationships routes ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/312-importmaps-in-rails-7

Import maps let you import JavaScript modules using logical names that map to versioned/digested files – directly from the browser. This will be a default in the upcoming Rails 7.

importmaps ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/099-creating-a-basic-ruby-gem

Gems are a packaged library of functions that can extend your application or provide other features to your system. Learn to create and publish a ruby gem.

ruby ruby-gem ruby-gems rubygems

Last synced: 12 Aug 2025

https://github.com/driftingruby/083-autocomplete-with-html-results

Working with an autocomplete can be very simple. However, things get complicated when you try to use HTML markup in the displayed results. Learn how to use HTML markup within your autocomplete results!

javascript jquery jquery-ui rails ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/108-tracking-errors-with-sentry

Sentry is an Open Source error tracking that helps developers monitor and fix crashes in real time. Learn how to add and configure Sentry to your application.

error-tracking rails ruby-on-rails sentry-io

Last synced: 09 Apr 2025

https://github.com/driftingruby/066-managing-servers-with-ansible

A look into the Drifting Ruby network architecture and how I manage deployments with Ansible.

Last synced: 09 Apr 2025

https://github.com/driftingruby/068-working-with-internationalization

Adding translations into your website does not have to be hard. With Rails built in I18N functionality, we gain access to many helpers and conventions that makes it a much easier task. Learn how to add I18N into your Rails application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/076-javascript-select-form-fields-with-chosen

Chosen is a jQuery plugin that makes long, unwieldy select boxes much more user-friendly. Learn how to use Chosen in a few different ways in this episode; Rails form builder and Simple Form.

Last synced: 09 Apr 2025

https://github.com/driftingruby/073-pagination-with-kaminari

When displaying a significant number of records, it is often a basic functions in a web application is to paginate the records and load them as requested.

Last synced: 01 Aug 2025

https://github.com/driftingruby/075-drag-and-drop-with-interact-js

Using Interact.js to create draggable and droppable items in our view, we can use AJAX callbacks on events to interact with our Ruby on Rails application. Also, learn how to use Ruby Assets to manage our Javascript Libraries.

javascript rails-asset-pipeline ruby ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/063-client-side-encryption

Add an extra level of security to your application with client side encryption. Even over an SSL connection, there are attacks which could expose your users' sensitive information. Using JSEncrypt, learn how to encrypt on the client side and decrypt on the server side.

Last synced: 09 Apr 2025

https://github.com/driftingruby/059-background-jobs-with-sidekiq

Sidekiq is a Ruby Background Processor that manages its queue with a Redis service. Learn the basics of Sidekiq and integrating it with ActiveJob.

Last synced: 09 Apr 2025

https://github.com/driftingruby/052-rails-api-throttling-with-rack-attack

Save expensive calculation time using Rack::Attack, we will learn how to limit requests coming into our application. This gem not only limits requests, but can be used to blacklist or whitelist users as well.

Last synced: 31 Aug 2025

https://github.com/driftingruby/079-mountable-engines

Mountable Engines are a great way to extract code into its own namespace and allow the code to be reused in other applications. Other popular gems that are mountable engines are Devise and Doorkeeper.

rails-engine ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/062-security-and-static-code-analyzers

Whether your preparing for a third-party security scan or already doing peer code reviews, you should always run brakeman scanner on your application to identify potential security vulnerabilities.

Last synced: 09 Apr 2025

https://github.com/driftingruby/055-charts-and-graphs

Learn how to use one of three charting libraries, Chart.js, Highcharts, or Google Charts, using the Chartkick gem to create simple and unobtrusive charts in your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/056-redis

Redis within a Ruby on Rails application has many benefits. Learn to interact with Redis Server and set it up for caching within your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/057-getting-started-ruby-on-rails-architectural-overview

For beginners, learn the basic structure of a Ruby on Rails application and the request lifecycle. Learn how different components of a Rails application interact with each other.

Last synced: 09 Apr 2025

https://github.com/driftingruby/049-rails-api-basics

A brief introduction on Rails API. Learn how to create an API application and setup the routes. This episode is paving the way for more in depth looks into Rails API.

Last synced: 09 Apr 2025

https://github.com/driftingruby/032-client-side-validations

Give early warning to users of form errors before they submit. With client side validations, the user can correct any errors prior to submitting the form.

Last synced: 09 Apr 2025

https://github.com/driftingruby/003-actioncable-in-production

Taking a look at ActionCable and switching from Puma to Thin. On server reboot, spin up the ActionCable service.

Last synced: 09 Apr 2025

https://github.com/driftingruby/016-complex-strong-params

Make your strong parameters do more by extracting the logic in order to maximize the ability and security of your application.

Last synced: 09 Apr 2025

https://github.com/driftingruby/096-auditing-with-paper-trail

Using the paper_trail gem, track changes to model records for auditing purposes and rollback changes when required.

Last synced: 25 Jun 2025

https://github.com/driftingruby/044-capturing-signatures-with-signature-pad

Using the Javascript Library, Signature Pad, learn how to capture user signatures and store them within your Ruby on Rails application.

Last synced: 05 Apr 2025

https://github.com/driftingruby/058-mail-previews-and-templates

Using ActionMailer::Preview preview email samples without sending them. Using Zurb's Foundation for Emails, learn how to use email templates with the Ink framework.

Last synced: 30 Jul 2025

https://github.com/driftingruby/005-florrick

This is a Rails library which integrates with Active Records and provides some awesome user-initiated string interpolations for your web apps. For example, have you ever needed to allow users to insert their own variables into e-mail templates or messages?

Last synced: 04 Aug 2025

https://github.com/driftingruby/038-action-cable-part-2-more-complex-example

Extending the previous episode, we look into making a realtime poll application where users can get live feedback on voting.

Last synced: 09 Apr 2025

https://github.com/driftingruby/014-securing-file-uploads

Be default, Refile does not have a way to secure file downloads. It relies on a generated hash that is unknown to users unless the page renders that image or has a download to that file. This is okay sometimes, however, protecting the file from being downloaded for those who have the URL is a bit more involved.

Last synced: 09 Apr 2025

https://github.com/driftingruby/077-cropping-images-with-jcrop

Extend your image upload functionality with JCrop. Learn to redirect the user to a crop page once they have uploaded their image and save versions of the cropped images.

image-crop image-processing image-upload ruby-on-rails

Last synced: 09 Apr 2025

https://github.com/driftingruby/214-plugging-in-anycable

ActionCable can handle quite a bit of traffic, but it gets to a point where it can become a burden on the server. With AnyCable, we can not only handle more traffic, but it is also lighter on the resources.

Last synced: 25 Sep 2025

https://github.com/driftingruby/018-caching-with-dalli

Dalli is a great interface for Memcached through Ruby.

Last synced: 09 Apr 2025

https://github.com/driftingruby/088-virtual-columns-with-json-data-types

Continuing from Episode #87, we take a deeper dive into virtual columns in Rails 5.1 and use them to parse JSON Data Types with adding indexes to the virtual column.

Last synced: 09 Apr 2025

https://github.com/driftingruby/020-not-rjs-and-turbolinks

Using Javascript responses, we can make our Rails application have a quick and responsive Single Page Application feel to it.

Last synced: 13 Sep 2025

https://github.com/driftingruby/024-fragment-caching

Make your application faster by leveraging memory and caching fragments of your view.

Last synced: 09 Apr 2025

https://github.com/driftingruby/093-recurring-events-with-ice-cube

ice_cube is a ruby library for easily handling repeated events and schedules.

Last synced: 09 Apr 2025

https://github.com/driftingruby/245-tracking-changes-on-action-text

Without using any gems, we look at tracking changes within Action Text. It seems like a simple thing, but challenges arise through several layers of abstraction due to the flexibility that Action Text provides.

action-text ruby ruby-on-rails versioning

Last synced: 03 Aug 2025

https://github.com/driftingruby/019-deleting-and-undeleting-with-paranoia

When your app is using Paranoia, calling destroy on an ActiveRecord object doesn't actually destroy the database record, but just hides it.

Last synced: 09 Apr 2025

https://github.com/driftingruby/012-static-pages-with-high-voltage

Creating Static Pages within your Rails application is easy and configurable with High Voltage.

Last synced: 09 Apr 2025

https://github.com/driftingruby/017-dependent-fields-rails

Using unobtrusive javascript, we can hide certain fields on forms based on the selected values of other fields.

Last synced: 09 Apr 2025

https://github.com/driftingruby/015-refile-uploads-with-progress-bar

Adding progress bars to your Refile uploader is easy thanks to the included javascript library from Refile. Learn how to add progress bars to your application.

Last synced: 09 Apr 2025