Skip to content

Instantly share code, notes, and snippets.

View lujanfernaud's full-sized avatar
🦪
Working from home

Luján Fernaud lujanfernaud

🦪
Working from home
View GitHub Profile
@lujanfernaud
lujanfernaud / .rubocop.yml
Created August 2, 2017 18:10
Prevent RuboCop from checking the use of quotes
inherit_from: ../.rubocop.yml
# Checks if uses of quotes match the configured preference.
Style/StringLiterals:
Enabled: false
@lujanfernaud
lujanfernaud / rails_datetime_select_capybara.md
Last active April 20, 2021 00:39
Rails: Test datetime_select using Capybara

Rails: Test datetime_select using Capybara

# test_helper.rb

def select_date_and_time(date, **options)
  return nil unless date
  
 field = options[:from]
@lujanfernaud
lujanfernaud / seeds-faker-carrierwave.rb
Created September 7, 2017 21:00
Rails: Seed database with remote Faker images and CarrierWave
# We need to use 'remote_<object>_url' as attribute instead of '<object>'.
# Having Image, we would use 'remote_image_url: <url>'.
titles = [Faker::RockBand.name, Faker::BossaNova.artist, Faker::Book.title]
54.times do |n|
start_date = Faker::Date.between(1.day.from_now, 6.months.from_now)
end_date = start_date + 1.day
Event.create!(title: titles.sample + " ##{n}",
@lujanfernaud
lujanfernaud / testing_image_attachments_in_rails.md
Last active February 22, 2018 07:25
Testing image attachments or uploads in Rails

Testing Image Attachments/Uploads in Rails

Model

We need to use File.open(Rails.root.join("<image_path>")).

File.open(Rails.root.join("test/fixtures/files/sample.jpeg"))
@lujanfernaud
lujanfernaud / rolify_remove_all_roles_for_user_in_resource.md
Last active November 29, 2020 16:14
Rolify: Remove all roles for user

Rolify: Remove All Roles For User In a Specific Resource

We find all roles assigned to the user in the resource, a group in this case.

@user.roles.where(resource: @group)
=> [#<Role:0x00000004a80580
 id: 24,
@lujanfernaud
lujanfernaud / rails_pundit_custom_redirection_when_not_authorized.md
Last active April 30, 2018 17:56
Rails and Pundit: Custom Redirection When Not Authorized

Rails and Pundit: Custom Redirection When Not Authorized

To use a custom redirection when a resource is not authorized we only need to add an user_not_authorized method to the controller, and define the redirection.

Example:

class Groups::MembershipRequestsController < ApplicationController
  def new
 @membership_request = MembershipRequest.new
@lujanfernaud
lujanfernaud / running_rails5_in_production_locally.md
Last active May 24, 2018 10:50
Running a Rails 5 App in Production Locally

Running a Rails 5 App in Production Locally

This is what we need to do:

export RAILS_ENV=production
rake db:reset
rake assets:precompile
RAILS_SERVE_STATIC_FILES=true
SECRET_KEY_BASE=production rails s
@lujanfernaud
lujanfernaud / removing_trailing_spaces.md
Last active December 13, 2022 09:34
Ruby and Nokogiri: Removing trailing spaces

Ruby and Nokogiri: Removing trailing spaces

sample_input = "<div>Hi&nbsp; &nbsp; &nbsp;</div>"
parsed_input = Nokogiri::HTML.parse(sample_input).text #=> "Hi   "

parsed_input.gsub(/\p{Space}*\z/, "") #=> "Hi"

\p{Space} catches any whitespace character.

@lujanfernaud
lujanfernaud / rails_migrations.md
Last active June 19, 2018 07:06
Rails: Migrations

Rails: Migrations

Add reference:

# add_reference :table, :column_name, foreign_key: boolean
add_reference :bookings, :flight, foreign_key: true

Add index:

@lujanfernaud
lujanfernaud / rails_random_date_in_period.md
Last active June 19, 2018 16:55
Rails: Random Date in Period

Rails: Random Date in Period

def random_date_in_period(period)
  rand(period).seconds.ago
end

random_date_in_period 1.year #=> Tue, 22 May 2018 04:55:54 UTC +00:00
random_date_in_period 1.year #=> Mon, 06 Nov 2017 19:50:07 UTC +00:00