• Stars
    star
    1
  • Language
    Ruby
  • Created 6 months ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

More Repositories

1

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.
Ruby
29
star
2

template

Base template for "all" Drifting Ruby episodes
HTML
19
star
3

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.
Ruby
14
star
4

051-rails-api-authentication-with-jwt

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

275-hotwire

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

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.
Ruby
9
star
7

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.
Ruby
8
star
8

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.
Ruby
7
star
9

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.
Ruby
6
star
10

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.
Ruby
5
star
11

191-inline-editing-records

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

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.
Ruby
5
star
13

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.
Ruby
5
star
14

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.
Ruby
5
star
15

445-streaming-llm-responses

In this episode, we look at running a self hosted Large Language Model (LLM) and consuming it with a Rails application. We will use a background to make API requests to the LLM and then stream the responses in real-time to the browser.
Ruby
5
star
16

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.
Ruby
4
star
17

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.
Ruby
4
star
18

035-importing-and-exporting-csv-data

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

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.
Ruby
4
star
20

258-github-actions

Ruby
3
star
21

041-dry-up-your-javascript

Learn how avoid duplicate code to reuse existing javascript.
Ruby
3
star
22

094-recurring-events-on-full-calendar

Create recurring events and interact with them on FullCalendar.
Ruby
3
star
23

335-hotwire-modals

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

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.
Ruby
3
star
25

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.
Ruby
3
star
26

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.
Ruby
3
star
27

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.
Ruby
3
star
28

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.
Ruby
3
star
29

236-google-maps-api-with-stimulusjs

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

249-soft-delete-with-discard

Soft deletes for ActiveRecord done right.
Ruby
2
star
31

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.
Ruby
2
star
32

002-Impressionist

A lightweight plugin that logs impressions per action or manually per model
Ruby
2
star
33

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.
Ruby
2
star
34

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.
Ruby
2
star
35

085-working-with-subdomains

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

092-restricting-access-by-ip-address

Learn to lock down your application or parts of your application by IP Addresses.
Ruby
2
star
37

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.
Ruby
2
star
38

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.
Ruby
2
star
39

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.
Ruby
2
star
40

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.
JavaScript
2
star
41

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.
Ruby
2
star
42

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.
Ruby
2
star
43

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.
Ruby
2
star
44

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.
Ruby
2
star
45

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.
Ruby
2
star
46

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.
Ruby
2
star
47

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.
HTML
2
star
48

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.
HTML
2
star
49

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.
Ruby
2
star
50

427-detect-spam-with-ai

We can create a small python service that uses a Large Language Model (LLM) to detect if a message is spam or not. Using this service, we can tie it into our Rails application so that any comment created will be evaluated for being spam or not. We explore a few different routes on handling any messages flagged as spam.
Ruby
2
star
51

028-WYSIWYG-with-Trix

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

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.
Ruby
2
star
53

472-dependent-fields-with-hotwire

Large forms can be overwhelming to fill out, especially if not all of the fields are required. In this episode, we'll look at creating a stimulus controller to conditionally display fields based on the input of another field.
Ruby
1
star
54

477-kamal-2

In this episode we look at deploying a Rails 8 beta application to a Digital Ocean droplet. We'll also look at a scenario of deploying Action Cable broadcasts and another with recurring background jobs.
HTML
1
star
55

158-grab-bag-of-ruby-and-ruby-on-rails-tricks

In this episode, we look at various tips and tricks.
Ruby
1
star
56

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.
Ruby
1
star
57

149-rails-presenters

Ruby
1
star
58

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.
Ruby
1
star
59

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.
Ruby
1
star
60

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.
Ruby
1
star
61

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.
Ruby
1
star
62

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.
Ruby
1
star
63

066-managing-servers-with-ansible

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

123-encrypted-secrets-in-rails-52

Ruby
1
star
65

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.
Ruby
1
star
66

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!
Ruby
1
star
67

136-user-notifications

Ruby
1
star
68

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.
Ruby
1
star
69

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.
Ruby
1
star
70

422-embedding-stripe-checkout

Ruby
1
star
71

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.
Ruby
1
star
72

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.
Ruby
1
star
73

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.
Ruby
1
star
74

003-actioncable-in-production

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

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.
Ruby
1
star
76

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.
Ruby
1
star
77

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.
Ruby
1
star
78

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
1
star
79

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.
Ruby
1
star
80

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.
Ruby
1
star
81

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.
Ruby
1
star
82

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?
Ruby
1
star
83

096-auditing-with-paper-trail

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

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.
Ruby
1
star
85

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.
Ruby
1
star
86

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.
Ruby
1
star
87

436-turbo-8

Ruby
1
star
88

431-hotkeys

Ruby
1
star
89

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.
Ruby
1
star
90

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.
Ruby
1
star
91

413-pdf-reader

When previewing PDF files that were uploaded through Active Storage, we can only get a simple image of the first page. In this episode, we'll look at taking the uploaded PDFs and interacting with them.
Ruby
1
star
92

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.
Ruby
1
star
93

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.
Ruby
1
star