Skip to content

Instantly share code, notes, and snippets.

Avatar
👨‍🔬

Luján Fernaud lujanfernaud

👨‍🔬
View GitHub Profile
@lujanfernaud
lujanfernaud / html_spellcheck_feature.md
Last active Oct 12, 2021
HTML: Spellcheck Feature
View html_spellcheck_feature.md
@lujanfernaud
lujanfernaud / ruby_immutable_value_object_with_struct.md
Last active Jul 16, 2021
Ruby: Immutable Value Object with Struct
View ruby_immutable_value_object_with_struct.md

Ruby: Immutable Value Object with Struct

Freezing the initializer after passing the args to super makes the object immutable.

# frozen_string_literal: true

# Freezing the initializer after passing the args to `super` makes the object immutable.
#
# Example:
@lujanfernaud
lujanfernaud / heroku_reduce_slug_size_with_slugignore.md
Created May 12, 2021
Heroku: Reduce Slug Size With .slugignore
View heroku_reduce_slug_size_with_slugignore.md

Heroku: Reduce Slug Size With .slugignore

Adding a .slugignore file to the root folder of the project will make Heroku to remove the files and folders referenced after we push code to Heroku and the buildpack runs.

What is the Slug?

A compressed copy of the application comprising all files in the git repo along with packages installed during deployment.

Sources

View rails_format_names.md
@lujanfernaud
lujanfernaud / rails_permitting_arrays_in_strong_parameters.md
Created May 5, 2021
Rails: Permitting Arrays in Strong Parameters
View rails_permitting_arrays_in_strong_parameters.md

Rails: Permitting Arrays in Strong Parameters

We can do so by adding an array value to the param:

params.permit(:email, :name, sites: [])

We can even use nested arrays:

@lujanfernaud
lujanfernaud / ruby_require_all_files_within_a_directory.md
Created Mar 19, 2021
Ruby: Require All Files Within a Directory
View ruby_require_all_files_within_a_directory.md

Ruby: Require All Files Within a Directory

Dir[File.expand_path('../config/routes/*.rb', __dir__)].each do |file|
  require_relative file
end
View ruby_validate_email.md

Ruby: Validate Email

We can match against URI::MailTo::EMAIL_REGEXP.

  def valid_email?(email)
    email && email.match?(URI::MailTo::EMAIL_REGEXP)
  end
View ruby_validate_url.md

Ruby: Validate URL

We can match against %r{^(http|https)://[a-z0-9]+([\-.]{1}[a-z0-9]+)*\.[a-z]{2,6}(:[0-9]{1,5})?(/.*)?$}ix.

Non Rails version:

  VALID_URL_REGEXP = %r{^(http|https)://[a-z0-9]+([\-.]{1}[a-z0-9]+)*\.[a-z]{2,6}(:[0-9]{1,5})?(/.*)?$}ix.freeze

  def valid_url?(url)
@lujanfernaud
lujanfernaud / back_pain_stretches_with_stuart_mcgill.md
Last active Jan 11, 2021
Back Pain: Stretches with Stuart McGill
View back_pain_stretches_with_stuart_mcgill.md

Back Pain: Stretches with Stuart McGill

The Cat Camel

Get on all fours and slowly move back and forth from a downward spinal curve with the head looking up like a cat and then move into a rounded spine while the head looks down like a camel. Each cycle should take about three to four seconds. 7-8 cycles are all that is needed.

Gist: Only do 7-8 cycles. More than that could be bad.

Video: https://www.youtube.com/watch?t=96&v=bcbuhePZZj0

@lujanfernaud
lujanfernaud / log_interactor_execution.rb
Last active Aug 7, 2020
Debugging: LogInteractorExecution
View log_interactor_execution.rb
# Usage:
#
# class SomeInteractor
# include Interactor
# include LogInteractorExecution
#
# # ...
#
# private
#